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

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.

  1. 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.

  2. 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 imageDirparâmetros , workingDire 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 kubectlo .

Passos seguintes