Configurar um anfitrião Azure Kubernetes Service no Azure Stack HCI e no Windows Server e implementar um cluster de cargas de trabalho com o PowerShell
Aplica-se a: Azure Stack HCI ou Windows Server Datacenter
Este guia de início rápido orienta-o ao longo da configuração de um anfitrião Azure Kubernetes Service (AKS). Pode criar clusters do Kubernetes no Azure Stack HCI e no Windows Server com o PowerShell. Em vez disso, para utilizar Windows Admin Center, consulte Configurar com Windows Admin Center.
Nota
- Se tiver objetos de serviço de cluster pré-faseados e registos DNS, veja Implementar um anfitrião do AKS com objetos de serviço de cluster pré-configurados e registos DNS com o PowerShell.
- Se tiver um servidor proxy, veja Configurar um anfitrião do AKS e implementar um cluster de cargas de trabalho com o PowerShell e um servidor proxy.
- A instalação do AKS no Azure Stack HCI após a configuração das VMs do Arc não é suportada. Para obter mais informações, veja problemas conhecidos com VMs do Arc. Se quiser instalar o AKS no Azure Stack HCI, tem de desinstalar a Ponte de Recursos do Arc e, em seguida, instalar o AKS no Azure Stack HCI. Pode implementar novamente uma nova Ponte de Recursos do Arc depois de limpar e instalar o AKS, mas não se lembrará das entidades de VM que criou anteriormente.
Antes de começar
- Certifique-se de que cumpriu todos os pré-requisitos nos requisitos do sistema.
- Utilize uma conta do Azure para registar o anfitrião do AKS para faturação. Para obter mais informações, veja Requisitos do Azure.
Instalar o módulo do AksHci PowerShell
Siga estes passos em todos os nós no cluster do Azure Stack HCI ou no cluster do Windows Server:
Nota
Se estiver a utilizar o PowerShell remoto, tem de utilizar o CredSSP.
Feche todas as janelas abertas do PowerShell, abra uma nova sessão do PowerShell como administrador e execute o seguinte comando em todos os nós no cluster do Azure Stack HCI ou Windows Server:
Install-PackageProvider -Name NuGet -Force Install-Module -Name PowershellGet -Force -Confirm:$false
Tem de fechar novamente todas as janelas existentes do PowerShell para garantir que os módulos carregados são atualizados. Não avance para o passo seguinte até fechar todas as janelas do PowerShell abertas.
Instale o módulo AKS-HCI do PowerShell ao executar o seguinte comando em todos os nós no cluster do Azure Stack HCI ou Windows Server:
Install-Module -Name AksHci -Repository PSGallery -Force -AcceptLicense
Tem de fechar novamente todas as janelas existentes do PowerShell para garantir que os módulos carregados são atualizados. Não avance para o passo seguinte até fechar todas as janelas do PowerShell abertas.
Pode utilizar um script auxiliar para eliminar módulos antigos do PowerShell do AKS-HCI para evitar problemas relacionados com a versão do PowerShell na implementação do AKS.
Validar a instalação
Get-Command -Module AksHci
Para ver a lista completa dos comandos do PowerShell do AksHci, veja AksHci PowerShell.
Registar o fornecedor de recursos na sua subscrição
Antes do processo de registo, ative o fornecedor de recursos adequado no Azure para AKS ativado pelo registo do Arc. Para tal, execute os seguintes comandos do PowerShell:
Para iniciar sessão no Azure, execute o comando Connect-AzAccount powerShell:
Connect-AzAccount
Se quiser mudar para uma subscrição diferente, execute o comando Set-AzContext powerShell:
Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx"
Execute os seguintes comandos para registar a sua subscrição do Azure nos fornecedores de recursos do Kubernetes compatíveis com o Azure Arc. Este processo de registo pode demorar até 10 minutos, mas só tem de ser efetuado uma vez numa subscrição específica:
Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation
Para validar o processo de registo, execute os seguintes comandos do PowerShell:
Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Get-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation
Passo 1: Preparar as máquinas para implementação
Execute verificações em todos os nós físicos para ver se todos os requisitos para instalar o AKS ativado pelo Arc estão satisfeitos. Abra o PowerShell como administrador e execute o seguinte comando Initialize-AksHciNode em todos os nós no cluster do Azure Stack HCI e do Windows Server:
Initialize-AksHciNode
Passo 2: Criar uma rede virtual
Execute os seguintes comandos em qualquer nó no cluster do Azure Stack HCI e do Windows Server.
Para obter os nomes dos comutadores disponíveis, execute o seguinte comando. Certifique-se de que o SwitchType
comutador da VM é "Externo":
Get-VMSwitch
Resultado do exemplo:
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
extSwitch External Mellanox ConnectX-3 Pro Ethernet Adapter
Para criar uma rede virtual para os nós na implementação a utilizar, crie uma variável de ambiente com o comando New-AksHciNetworkSetting do PowerShell. Esta rede virtual é utilizada mais tarde para configurar uma implementação que utiliza IP estático. Se quiser configurar a implementação do AKS com o DHCP, veja New-AksHciNetworkSetting para obter exemplos. Também pode rever alguns conceitos de nó de rede.
#static IP
$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -k8sNodeIpPoolStart "172.16.10.1" -k8sNodeIpPoolEnd "172.16.10.255" -vipPoolStart "172.16.255.0" -vipPoolEnd "172.16.255.254" -ipAddressPrefix "172.16.0.0/16" -gateway "172.16.0.1" -dnsServers "172.16.0.1" -vlanId 9
Nota
Tem de personalizar os valores apresentados neste comando de exemplo para o seu ambiente.
Passo 3: Configurar a implementação
Execute os seguintes comandos em qualquer nó no cluster do Azure Stack HCI e do Windows Server.
Para criar as definições de configuração para o anfitrião do AKS, utilize o comando Set-AksHciConfig . Tem de especificar os imageDir
parâmetros , workingDir
e cloudConfigLocation
. Se quiser repor os detalhes de configuração, execute o comando novamente com novos parâmetros.
Configure a implementação com o seguinte comando:
$csvPath = 'C:\clusterstorage\volume01' # Specify your preferred CSV path
Set-AksHciConfig -imageDir $csvPath\Images -workingDir $csvPath\ImageStore -cloudConfigLocation $csvPath\Config -vnet $vnet
Nota
Tem de personalizar os valores apresentados neste comando de exemplo para o seu ambiente.
Passo 4: iniciar sessão no Azure e configurar as definições de registo
Opção 1: utilize a sua conta Microsoft Entra se tiver permissões de "Proprietário"
Execute o seguinte comando Set-AksHciRegistration do PowerShell com a sua subscrição e o nome do grupo de recursos para iniciar sessão no Azure. Tem de ter uma subscrição do Azure e um grupo de recursos do Azure existente nas regiões Leste da Austrália, E.U.A. Leste, Ásia Sudeste ou Europa Ocidental do Azure:
Set-AksHciRegistration -subscriptionId "<subscriptionId>" -resourceGroupName "<resourceGroupName>"
Opção 2: Utilizar um principal de serviço do Azure
Se não tiver acesso a uma subscrição na qual é um "Proprietário", pode registar o anfitrião do AKS no Azure para faturação com um principal de serviço. Para obter mais informações sobre como utilizar um principal de serviço, veja Registar o AKS no Azure Stack HCI e no Windows Server com um principal de serviço.
Passo 5: Iniciar uma nova implementação
Execute o seguinte comando em qualquer nó no cluster do Azure Stack HCI ou do Windows Server.
Depois de configurar a implementação, tem de a iniciar para instalar os agentes/serviços do AKS e o anfitrião do AKS. Para iniciar a implementação, execute o seguinte comando:
Dica
Para ver detalhes adicionais do estado durante a instalação, defina $VerbosePreference = "Continue"
antes de prosseguir.
Install-AksHci
Aviso
Durante a instalação do anfitrião do AKS, é criado um tipo de recurso Kubernetes – Azure Arc no grupo de recursos definido durante o registo. Não elimine este recurso, uma vez que representa o anfitrião do AKS. Pode identificar o recurso ao verificar o respetivo campo de distribuição quanto a um valor de aks_management
. Se eliminar este recurso, isso resultará numa implementação fora da política.
Passo 6: Criar um cluster do Kubernetes
Depois de instalar o anfitrião do AKS, pode implementar um cluster do Kubernetes. Abra o PowerShell como administrador e execute o seguinte comando New-AksHciCluster . Este comando de exemplo cria um novo cluster do Kubernetes com um conjunto de nós do Linux com o nome linuxnodepool
com uma contagem de nós de 1.
Para obter mais informações sobre conjuntos de nós, veja Utilizar conjuntos de nós no AKS.
New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType Linux
Verificar os clusters implementados
Para obter uma lista dos clusters do Kubernetes implementados, execute o seguinte comando Get-AksHciCluster PowerShell:
Get-AksHciCluster
ProvisioningState : provisioned
KubernetesVersion : v1.20.7
NodePools : linuxnodepool
WindowsNodeCount : 0
LinuxNodeCount : 0
ControlPlaneNodeCount : 1
Name : mycluster
Para obter uma lista dos conjuntos de nós no cluster, execute o seguinte comando Get-AksHciNodePool powerShell:
Get-AksHciNodePool -clusterName mycluster
ClusterName : mycluster
NodePoolName : linuxnodepool
Version : v1.20.7
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Passo 7: ligar o cluster ao Kubernetes compatível com o Arc
Ligue o cluster ao Kubernetes compatível com o Arc ao executar o comando Enable-AksHciArcConnection . O exemplo seguinte liga o cluster do Kubernetes ao Arc com os detalhes da subscrição e do grupo de recursos que passou no Set-AksHciRegistration
comando:
Connect-AzAccount
Enable-AksHciArcConnection -name mycluster
Nota
Se encontrar problemas ou mensagens de erro durante o processo de instalação, veja problemas conhecidos da instalação e erros para obter mais informações.
Dimensionar um cluster do Kubernetes
Se precisar de aumentar ou reduzir verticalmente o cluster, pode alterar o número de nós do plano de controlo com o comando Set-AksHciCluster . Para alterar o número de nós de trabalho do Linux ou do Windows no conjunto de nós, utilize o comando Set-AksHciNodePool .
Para dimensionar os nós do plano de controlo, execute o seguinte comando:
Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3
Para dimensionar os nós de trabalho no conjunto de nós, execute o seguinte comando:
Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3
Nota
Nas versões anteriores do AKS no Azure Stack HCI e no Windows Server, o comando Set-AksHciCluster também foi utilizado para dimensionar nós de trabalho. Agora que o AKS está a introduzir conjuntos de nós em clusters de cargas de trabalho, só pode utilizar este comando para dimensionar nós de trabalho se o cluster tiver sido criado com o parâmetro antigo definido em New-AksHciCluster.
Para dimensionar os nós de trabalho num conjunto de nós, utilize o comando Set-AksHciNodePool .
Aceder aos clusters com o kubectl
Para aceder aos clusters do Kubernetes com kubectl, execute o comando Get-AksHciCredential PowerShell. Esta ação irá utilizar o ficheiro kubeconfig do cluster especificado como o ficheiro kubeconfig predefinido para kubectl. Também pode utilizar o kubectl para implementar aplicações com o Helm:
Get-AksHciCredential -name mycluster
Eliminar um cluster do Kubernetes
Para eliminar um cluster do Kubernetes, execute o seguinte comando:
Remove-AksHciCluster -name mycluster
Nota
Confirme que o cluster é eliminado ao observar as VMs existentes no Gestor de Hyper-V. Se não forem eliminadas, pode eliminar manualmente as VMs. Em seguida, execute o comando Restart-Service wssdagent
. Execute este comando em cada nó no cluster de ativação pós-falha.
Obter registos
Para obter registos de todos os pods, execute o comando Get-AksHciLogs . Este comando cria uma pasta zipada de saída chamada akshcilogs.zip
no diretório de trabalho. O caminho completo para a akshcilogs.zip
pasta é o resultado depois de executar o seguinte comando:
Get-AksHciLogs
Neste início rápido, aprendeu a configurar um anfitrião do AKS e a criar clusters do Kubernetes com o PowerShell. Também aprendeu a utilizar o PowerShell para dimensionar um cluster do Kubernetes e para aceder a clusters com kubectl
o .