Tutorial: Implementar um cluster de cargas de trabalho no AKS ativado pelo Arc

Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server

O Kubernetes dispõe de uma plataforma distribuída para aplicações em contentores.

Neste tutorial, parte três de sete, é implementado um cluster do Kubernetes no AKS no Azure Stack HCI. Vai aprender a:

  • Implementar um cluster do AKS no Azure Stack HCI
  • Instalar a CLI do Kubernetes (kubectl)
  • Configurar o kubectl para ligar ao cluster de cargas de trabalho

Nos tutoriais posteriores, a aplicação Azure Vote é implementada no cluster, dimensionada e atualizada.

Antes de começar

Nos tutoriais anteriores, foi criada e carregada uma imagem de contentor para uma instância do Azure Container Registry. Se ainda não efetuou estes passos, comece no Tutorial 1 – Criar imagens de contentor.

Este tutorial utiliza o módulo 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.

Instalar o anfitrião Azure Kubernetes Service

Primeiro, configure as definições de registo.

Set-AksHciRegistration -subscription mysubscription -resourceGroupName myresourcegroup

Tem de personalizar estes valores de acordo com a subscrição do Azure e o nome do grupo de recursos.

Em seguida, execute o seguinte comando para garantir que todos os requisitos em cada nó físico são cumpridos para instalar o AKS no Azure Stack HCI:

Initialize-AksHciNode

Em seguida, crie uma rede virtual. Precisará dos nomes dos comutadores externos disponíveis:

Get-VMSwitch

Resultado do exemplo:

Name        SwitchType    NetAdapterInterfaceDescription
----        ----------    ------------------------------
extSwitch   External      Mellanox ConnectX-3 Pro Ethernet Adapter

Execute o seguinte comando para criar uma rede virtual com IP estático:

$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -macPoolName myMacPool -k8sNodeIpPoolStart "172.16.10.0" -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

Em seguida, configure a implementação com o seguinte comando.

Set-AksHciConfig -imageDir c:\clusterstorage\volume1\Images -cloudConfigLocation c:\clusterstorage\volume1\Config -vnet $vnet -cloudservicecidr "172.16.10.10/16" 

Agora, está pronto para instalar o anfitrião do AKS:

Install-AksHCi

Criar um cluster do Kubernetes

Crie um cluster do Kubernetes com o comando New-AksHciCluster. O exemplo seguinte cria um cluster com o nome mycluster com um conjunto de nós do Linux chamado linuxnodepool, que tem uma contagem de nós de 1:

New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1

Para verificar se a implementação foi efetuada com êxito, execute o seguinte comando.

Get-AksHcicluster -name mycluster
ProvisioningState     : provisioned
KubernetesVersion     : v1.20.7
NodePools             : linuxnodepool
WindowsNodeCount      : 0
LinuxNodeCount        : 0
ControlPlaneNodeCount : 1
Name                  : mycluster

Nota

Se utilizar os novos conjuntos de parâmetros para implementar um cluster e, em New-AksHciCluster seguida, executar Get-AksHciCluster para obter as informações do cluster, os campos WindowsNodeCount e LinuxNodeCount na saída devolvem 0. Para obter o número preciso de nós em cada conjunto de nós, utilize o comando Get-AksHciNodePool com o nome de cluster especificado.

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

Instalar a CLI do Kubernetes

Para ligar ao cluster do Kubernetes a partir do seu computador local, utilize kubectl, o cliente de linha de comandos do Kubernetes.

Ligar ao cluster com o kubectl

Para configurar kubectl a ligação ao cluster do Kubernetes, utilize o comando Get-AksHciCredential . O exemplo seguinte obtém credenciais para o cluster com o nome mycluster:

Get-AksHciCredential -name mycluster

Para verificar a ligação ao cluster, execute o comando kubectl get nodes para devolver uma lista dos nós de cluster:

kubectl get nodes
NAME              STATUS   ROLES                  AGE     VERSION
moc-lbs6got5dqo   Ready    <none>                 6d20h   v1.20.7
moc-lel7tzxdt30   Ready    control-plane,master   6d20h   v1.20.7

Passos seguintes

Neste tutorial, um cluster do cluster do Kubernetes foi implementado no AKS e configurou kubectl para se ligar ao mesmo. Aprendeu a:

  • Implementar um cluster do AKS no Azure Stack HCI
  • Instalar a CLI do Kubernetes (kubectl)
  • Configurar o kubectl para ligar ao seu cluster do AKS

Prossiga para o próximo tutorial para saber como implementar uma aplicação no cluster.