Quickstart: Crie um anfitrião AKS no Azure Stack HCI e implemente um cluster de carga de trabalho usando PowerShell e um servidor proxy

Aplica-se a: Azure Stack HCI, versões 21H2 e 20H2; Datacenter Windows Server 2022, Windows Server 2019 Datacenter

Neste arranque rápido, você vai aprender a configurar um anfitrião do Serviço Azure Kubernetes e criar clusters AKS em Azure Stack HCI usando PowerShell num ambiente onde um servidor proxy filtra e digitaliza o tráfego ligado à Internet. Em vez disso, para utilizar Windows Centro de Administração, consulte configurar com Windows Centro de Administração.

Nota

Se tiver colocado objetos de serviço de cluster e registos DNS, consulte os passos adicionais na implantação de um anfitrião AKS com objetos de serviço de cluster e registos DNS utilizando powerShell.

Antes de começar

  • Certifique-se de que satisfez todos os pré-requisitos na página de requisitos do sistema.

  • Uma conta Azure para registar o seu anfitrião AKS para faturação. Para mais informações, visite os requisitos do Azure.

  • Pelo menos um dos seguintes níveis de acesso à sua subscrição Azure que utiliza para AKS no Azure Stack HCI:

    • Uma conta de utilizador com a função proprietário incorporada. Pode verificar o seu nível de acesso navegando na sua subscrição, clicando em "Access control (IAM)" no lado esquerdo do portal Azure e, em seguida, clicando em "Ver o meu acesso".
    • Um diretor de serviço com o cluster de Kubernetes incorporado - função de Azure Arc Onboarding (mínimo), o papel de Contribuidor incorporado, ou o papel de Proprietário incorporado.
  • Um grupo de recursos Azure nos EUA, Sudeste Asiático ou Região Azure da Europa Ocidental, disponível antes do registo, na subscrição acima mencionada.

  • Pelo menos uma das seguintes seguintes:

    • Aglomerado HCI de 2-4 nó Azure Stack HCI
    • Windows Servidor 2019 Cluster de failover do Datacenter

    Nota

    Recomendamos ter um cluster HCI de 2-4 no nó Azure Stack HCI. Se não tiver nenhuma das instruções acima, siga as instruções na página de registo do HCI Azure Stack.

  • Informações de configuração do servidor proxy:

    • URL http e porta, tais como http://proxy.corp.contoso.com:8080 .
    • URL HTTPS e porta, tais como https://proxy.corp.contoso.com:8443 .
    • (Opcional) Credenciais válidas para autenticação no servidor proxy.
    • (Opcional) Cadeia de certificados válida se o seu servidor proxy estiver configurado para intercetar o tráfego SSL. Esta cadeia de certificados será importada em todos os aviões de controlo da AKS e nos nós dos trabalhadores, bem como no cluster de gestão para estabelecer uma ligação fidedigna ao servidor proxy.
    • Intervalos de endereços IP e nomes de domínio para excluir para que não sejam enviados para o representante:
      • Piscina IP do nó kubernetes
      • Kubernetes serviços VIP pool
      • Os endereços IP da rede de cluster
      • Endereços IP do servidor DNS
      • Endereços IP do serviço de tempo
      • Nomes de domínio locais
      • Nomes de hospedeiro local
      • A lista de exclusão predefinido no AksHci PowerShell é mostrada abaixo:
        • «localidade,127.0.0.1,svc,10.0.0.0/8.172.16.0.0/12.192.168.0.0/16', que isenta todos os subnetas privados de serem enviados para o representante:
          • «localidade,127.0.0.1': exclusão local padrão
          • '.svc': Exclusão de Wildcard para todos os nomes dos serviços Kubernetes
          • '172.16.0.0/12': Conjunto de endereços IP dos serviços kubernetes
          • '192.168.0.0/16': Piscina de endereços IP do casulo Kubernetes

Instale os módulos Azure PowerShell e AksHci PowerShell

Configure as definições de procuração do Sistema em cada um dos nós físicos do cluster e certifique-se de que todos os nós têm acesso aos URLs e portas descritos nos requisitos do Sistema.

Se estiver a utilizar o PowerShell remoto, tem de utilizar o CredSSP.

Nota

Se o seu ambiente utilizar um servidor proxy para aceder à internet, poderá ter de adicionar parâmetros de procuração ao comando Do Módulo de Instalação antes de instalar aKS no Azure Stack HCI. Consulte a documentação do Módulo de Instalação para obter mais detalhes e siga a documentação do Azure Stack HCI para configurar as definições de procuração nos nós de cluster físico.

Feche todas as janelas abertas da PowerShell. Se remover uma instalação mais antiga do sistema, elimine quaisquer diretórios existentes para AksHci, AksHci.Day2, Kva, Moc e MSK8sDownloadAgent localizados no caminho e, em %systemdrive%\program files\windowspowershell\modules seguida, instale os seguintes módulos Azure PowerShell.

Install-Module -Name Az.Accounts -Repository PSGallery -RequiredVersion 2.2.4
Install-Module -Name Az.Resources -Repository PSGallery -RequiredVersion 3.2.0
Install-Module -Name AzureAD -Repository PSGallery -RequiredVersion 2.0.2.128
Install-Module -Name AksHci -Repository PSGallery
Import-Module Az.Accounts
Import-Module Az.Resources
Import-Module AzureAD
Import-Module AksHci

Feche todas as janelas PowerShell e reabra uma nova sessão administrativa para verificar se tem a versão mais recente do módulo PowerShell.

Get-Command -Module AksHci

Para ver a lista completa dos comandos AksHci PowerShell, consulte a AksHci PowerShell.

Registe o fornecedor de recursos da sua subscrição

Utilize o módulo Az PowerShell atrás de um representante. Se for necessário um pedido de procuração para um pedido HTTP, a equipa Azure PowerShell recomenda a seguinte configuração proxy para diferentes plataformas:

Plataforma Definições de procuração recomendado Comentário
Windows PowerShell 5.1 Definições de procuração de sistema Recomendamos que não desemende variáveis ambientais HTTP_PROXY/HTTPS_PROXY.
PowerShell 7 na Windows Definições de procuração de sistema Pode configurar o proxy definindo variáveis ambientais HTTP_PROXY e HTTPS_PROXY.
PowerShell 7 em macOS Definições de procuração de sistema Pode configurar o proxy definindo variáveis ambientais HTTP_PROXY e HTTPS_PROXY.
PowerShell 7 em Linux Definir variáveis ambientais HTTP_PROXY e HTTPS_PROXY, mais NO_PROXY(opcional) Deve definir as variáveis ambientais antes de iniciar o PowerShell, caso contrário, podem não ser respeitadas.

As variáveis ambientais utilizadas incluem:

  • HTTP_PROXY: o servidor proxy utilizado em pedidos HTTP.
  • HTTPS_PROXY: o servidor proxy utilizado em pedidos HTTPS.
  • NO_PROXY: uma lista separada por vírgula de nomes de hospedeiros e endereços IP que devem ser excluídos do representante.

Nota

Nos sistemas em que as variáveis ambientais são sensíveis a casos, os nomes variáveis podem ser todos maiúsculas ou maiúsculas. Os nomes minúsculos são verificados primeiro.

Antes do processo de registo, você precisa ativar o fornecedor de recursos apropriado em Azure para AKS no registo HCI Azure Stack. Para isso, executar os seguintes comandos PowerShell.

Para iniciar sessão em Azure, execute o comando powershell Ligação-AzAccount:

Connect-AzAccount

Se pretender mudar para uma subscrição diferente, execute o comando Set-AzContext PowerShell:

Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx"

Executar o seguinte comando para registar a sua subscrição Azure para Azure Arc habilitado fornecedores de recursos Kubernetes. Este processo de registo pode demorar até 10 minutos, mas só precisa de ser realizado uma vez numa subscrição específica.

Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration

Para validar o processo de registo, executar o seguinte comando PowerShell:

Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration

Passo 1: Prepare a sua máquina para implantação

Verifique todos os nós físicos para ver se todos os requisitos estão satisfeitos para instalar o Serviço Azure Kubernetes no Azure Stack HCI. Open PowerShell como administrador e executar o seguinte comando Initialize-AksHciNode.

Initialize-AksHciNode

Passo 2: Prepare o seu Diretório Ativo e o servidor DNS para implementação

Se não conseguir ativar atualizações dinâmicas de DNS no seu ambiente DNS para permitir que a AKS no Azure Stack HCI registe o nome do cluster genérico CloudAgent no Ative Directory e no sistema DNS para a descoberta, tem de pré-criar os respetivos registos em Ative Directory e DNS.

Crie um serviço de cluster genérico em Ative Directory com o nome ca-cloudagent (ou um nome à sua escolha), mas não exceda 32 caracteres de comprimento. Também precisa de criar um registo de DNS associado que indique o FQDN do serviço genérico de cluster com o cloudservicecidr endereço fornecido. Mais detalhes sobre os passos neste processo podem ser encontrados na documentação do Clustering failover.

A implantação de HCI AKS on Azure Stack tentará localizar o especificado clusterRoleName no Ative Directory antes de prosseguir com a implantação.

Nota

Uma vez implementada a AKS no Azure Stack HCI, esta informação não pode ser alterada.

Siga o Passo 3a após o passo 2 para especificar o nome do objeto pré-criado em Set-AksHciConfig .

Passo 3: Criar uma rede virtual

Para obter os nomes dos seus interruptores disponíveis, execute o seguinte comando. Certifique-se de que o SwitchType interruptor VM é "Externo".

Get-VMSwitch

Saída da amostra:

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

Para criar uma rede virtual para os nós na sua implementação utilizar, crie uma variável ambiental com o comando PowerShell de New-AksHciNetwork. Isto será usado mais tarde para configurar uma implementação que utiliza IP estático. Se quiser configurar a sua implementação AKS com o DHCP, visite a New-AksHciNetworkSetting por exemplo. Também pode rever alguns conceitos de nó de rede.

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

Os valores indicados neste comando de exemplo terão de ser personalizados para o seu ambiente.

Passo 4: Configurar a sua implantação

Defina as definições de configuração para o anfitrião do Serviço Azure Kubernetes utilizando o comando Set-AksHciConfig. Tem de especificar os imageDirworkingDir parâmetros e cloudConfigLocation os parâmetros. Se pretender redefinir os seus dados de configuração, volte a executar o comando com novos parâmetros.

Configure a sua implantação com o seguinte comando.

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

Nota

Os valores indicados neste comando de exemplo terão de ser personalizados para o seu ambiente.

Passo 5: Configurar a sua implantação se tiver objetos de serviço de cluster e registos DNS

Defina as definições de configuração para o anfitrião do Serviço Azure Kubernetes utilizando o comando Set-AksHciConfig. Deve especificar os imageDirworkingDirclusterrolenamecloudservicecidr parâmetros e cloudConfigLocation os parâmetros. Se pretender redefinir os seus dados de configuração, volte a executar o comando com novos parâmetros.

Configure a sua implantação com o seguinte comando:

PS C:\> $vnet = New-AksHciNetworkSetting -name newNetwork -vswitchName "DefaultSwitch" -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 7

Set-AksHciConfig -workingDir c:\ClusterStorage\Volume1\workingDir -cloudConfigLocation c:\clusterstorage\volume1\Config -vnet $vnet -cloudservicecidr "172.16.10.10/16" -clusterRoleName "ca-cloudagent"

Nota

Os valores indicados neste comando de exemplo terão de ser personalizados para o seu ambiente.

Passo 6: Iniciar sessão no Azure e configurar as definições de registo

Executar o seguinte comando Set-AksHciRegistration PowerShell com o nome do seu grupo de subscrição e recursos para iniciar sessão no Azure. Você deve ter uma assinatura Azure, e um grupo de recursos Azure existente nas regiões leste dos EUA, Sudeste Asiático ou Azure da Europa Ocidental para prosseguir.

Set-AksHciRegistration -subscriptionId "<subscriptionId>" -resourceGroupName "<resourceGroupName>"

Passo 7: Iniciar uma nova implantação

Depois de configurar o seu destacamento, deve ligá-lo. Isto instalará o Serviço Azure Kubernetes em agentes/serviços HCI Azure Stack e no anfitrião do Serviço Azure Kubernetes. Para iniciar a implantação, executar o seguinte comando.

Install-AksHci

Aviso

Durante a instalação do seu anfitrião Azure Kuberenetes Service, um tipo de recurso Kubernetes - Azure Arc é criado no grupo de recursos que é definido durante o registo. Não elimine este recurso, pois representa o seu anfitrião de Serviço Azure Kuberenetes. Pode identificar o recurso verificando o seu campo de distribuição por um valor de aks_management . A eliminação deste recurso resultará numa implantação fora da política.

Passo 8: Criar um cluster Kubernetes

Depois de instalar o seu anfitrião de Serviço Azure Kubernetes, está pronto para implantar um cluster Kubernetes. Open PowerShell como administrador e executar o seguinte comando New-AksHciCluster. Este comando de exemplo criará um novo cluster Kubernetes com uma piscina de nó Linux chamada linuxnodepool com uma contagem de nó de 1. Para ler mais informações sobre piscinas de nó, consulte use piscinas de nó em AKS em Azure Stack HCI.

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

Verifique os seus clusters implantados

Para obter uma lista dos seus clusters Kubernetes implantados, execute o seguinte comando Get-AksHciCluster PowerShell.

Get-AksHciCluster

Saída

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

Para obter uma lista das piscinas de nó 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 9: Ligação o seu cluster ao Arc permitiu que Kubernetes

Ligação o seu cluster para o Arc permitiu que kubernetes executasse o comando Enable-AksHciArcConnection. O exemplo abaixo liga o seu AKS no cluster HCI da Azure Stack ao Arc utilizando os detalhes do grupo de subscrição e 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, consulte os problemas e erros conhecidos da instalação para obter mais informações.

Escalar um aglomerado de Kubernetes

Se precisar de escalar o seu cluster para cima ou para baixo, pode alterar o número de nós do plano de controlo utilizando o comando Set-AksHciCluster, e pode alterar o número de nós de trabalhador linux ou Windows no seu conjunto de nós utilizando o comando Set-AksHciNodePool.

Para escalar os nós do avião de controlo, executar o seguinte comando.

Set-AksHciCluster –name mycluster -controlPlaneNodeCount 3

Para escalar os nós de trabalhadores na sua piscina de nó, executar o seguinte comando.

Set-AksHciNodePool –clusterName mycluster -name linuxnodepool -count 3

Nota

Em versões anteriores de AKS em Azure Stack HCI, o comando Set-AksHciCluster também foi usado para escalar nós de trabalhadores. A AKS on Azure Stack HCI está introduzindo piscinas de nós em clusters de carga de trabalho agora, por isso este comando só pode ser usado para escalar nós de trabalhadores se o seu cluster foi criado com o parâmetro antigo definido em New-AksHciCluster. Para escalar os nós dos trabalhadores numa piscina de nós, utilize o comando Set-AksHciNodePool.

Aceda aos seus clusters usando kubectl

Para aceder aos seus clusters Kubernetes utilizando kubectl, executar o comando Get-AksHciCredential PowerShell. Isto utilizará o ficheiro kubeconfig do cluster especificado como o ficheiro kubeconfig padrão para kubectl. Também pode utilizar kubectl para implementar aplicações utilizando o Helm.

Get-AksHciCredential -name mycluster

Excluir um cluster Kubernetes

Se precisar de eliminar um cluster Kubernetes, executar o seguinte comando.

Remove-AksHciCluster -name mycluster

Nota

Certifique-se de que o seu cluster é eliminado olhando para os VM existentes no Gestor de Hiper-V. Se não forem apagadas, pode eliminar manualmente os VM. Então, executar o Restart-Service wssdagent comando. Isto deve ser feito em cada nó no aglomerado de failover.

Obter registos

Para obter registos de todas as suas cápsulas, execute o comando Get-AksHciLogs. Este comando criará uma pasta com fecho de saída chamada akshcilogs.zip no seu diretório de trabalho. O caminho completo para a akshcilogs.zip pasta será a saída depois de executar o comando abaixo.

Get-AksHciLogs

Neste quickstart, aprendeu a configurar um anfitrião de Serviço Azure Kubernetes e criar clusters AKS em Azure Stack HCI usando PowerShell. Também aprendeu a usar o PowerShell para escalar um cluster Kubernetes e aceder a clusters com kubectl .

Passos seguintes