Início Rápido: Configurar um host do AKS no Azure Stack HCI e implantar um cluster de carga de trabalho usando o PowerShell e um servidor proxy

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

Neste início rápido, você aprenderá a configurar um host Serviço de Kubernetes do Azure e criar o AKS em clusters Azure Stack HCI usando o PowerShell em um ambiente em que um servidor proxy filtra e examina o tráfego vinculado à Internet. Para usar o Windows Admin Center, consulte Configurar com o Windows Admin Center.

Observação

Se você tiver objetos de serviço de cluster pré-configuradas e registros DNS, consulte as etapas adicionais em Implantar um host do AKScom objetos de serviço de cluster pré-configuradas e registros DNS usando o PowerShell .

Antes de começar

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

  • Uma conta do Azure para registrar seu host do AKS para cobrança. Para obter mais informações, visite Requisitos do Azure.

  • Pelo menos um dos seguintes níveis de acesso à sua assinatura do Azure que você usa para o AKS Azure Stack HCI:

    • Uma conta de usuário com a função de Proprietário interna. Você pode verificar o nível de acesso navegando até sua assinatura, clicando em "Controle de acesso (IAM)" no lado esquerdo do portal do Azure e clicando em "Exibir meu acesso".
    • Uma entidade de serviço com a função interna cluster kubernetes – Azure Arc integração (mínimo), a função de Contribuidor interna ou a função de Proprietário interna.
  • Um grupo de recursos do Azure na região do Azure Leste dos EUA, Sudeste Asiático ou Europa Ocidental, disponível antes do registro, na assinatura mencionada acima.

  • Pelo menos um dos seguintes:

    • 2 a 4 nós Azure Stack HCI cluster
    • Windows cluster de failover do Datacenter server 2019

    Observação

    É recomendável ter um cluster de 2 a 4 nós Azure Stack HCI. Se você não tiver nenhuma das instruções acima, siga as instruções na página de Azure Stack HCI de registro.

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

    • URL HTTP e porta, como http://proxy.corp.contoso.com:8080 .
    • URL e porta HTTPS, 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 servidor proxy estiver configurado para interceptar o tráfego SSL. Essa cadeia de certificados será importada para todos os nós de trabalho e plano de controle do AKS, bem como para o cluster de gerenciamento, a fim de estabelecer uma conexão confiável com o servidor proxy.
    • Intervalos de endereços IP e nomes de domínio a excluir para que eles não sejam enviados ao proxy:
      • Pool de IP do nó do Kubernetes
      • Pool de VIP dos serviços do Kubernetes
      • Os endereços IP de rede do cluster
      • Endereços IP do servidor DNS
      • Endereços IP do serviço de horário
      • Nomes de domínio local
      • Nomes de host locais
      • A lista de exclusões padrão no AksHci PowerShell é mostrada abaixo:
        • 'localhost,127.0.0.1,.svc,10.0.0.0/8,172.16.0.0/12.192.168.0.0/16', o que isenta todas as sub-redes privadas de serem enviadas ao proxy:
          • 'localhost,127.0.0.1': exclusão de localhost padrão
          • '.svc': exclusão de curinga para todos os nomes de host dos Serviços de Kubernetes
          • '172.16.0.0/12': pool de endereços IP dos serviços do Kubernetes
          • '192.168.0.0/16': Pool de endereços IP do pod do Kubernetes

Instalar os módulos Azure PowerShell PowerShell do AksHci e do AksHci

Defina as configurações de proxy do sistema em cada um dos nós físicos no cluster e verifique se todos os nós têm acesso às URLs e portas descritas em Requisitos do sistema.

Se você estiver usando o PowerShell remoto, deverá usar CredSSP.

Observação

Se seu ambiente usar um servidor proxy para acessar a Internet, talvez seja necessário adicionar parâmetros de proxy ao comando Install-Module antes de instalar o AKS no Azure Stack HCI. Consulte a documentação Install-Module para obter detalhes e siga a Azure Stack HCI para definir as configurações de proxy nos nós de cluster físico.

Feche todas as janelas abertas do PowerShell. Se você removeu uma instalação mais antiga do sistema, exclua os diretórios existentes para AksHci, AksHci.Day2, Kva, Moc e MSK8sDownloadAgent localizados no caminho e instale os %systemdrive%\program files\windowspowershell\modules módulos Azure PowerShell a seguir.

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 do PowerShell e reabra uma nova sessão administrativa para verificar se você tem a versão mais recente do módulo do PowerShell.

Get-Command -Module AksHci

Para exibir a lista completa de comandos do AksHci PowerShell, consulte AksHci PowerShell.

Registrar o provedor de recursos em sua assinatura

Use o módulo Az PowerShell por trás de um proxy. Se um proxy for necessário para uma solicitação HTTP, a equipe Azure PowerShell recomenda a seguinte configuração de proxy para diferentes plataformas:

Plataforma Configurações de proxy recomendadas Comentário
Windows PowerShell 5.1 Configurações do proxy do sistema É recomendável não definir variáveis de HTTP_PROXY/HTTPS_PROXY ambiente.
PowerShell 7 no Windows Configurações do proxy do sistema Você pode configurar o proxy definindo as variáveis HTTP_PROXY e HTTPS_PROXY ambiente.
PowerShell 7 no macOS Configurações do proxy do sistema Você pode configurar o proxy definindo as variáveis HTTP_PROXY e HTTPS_PROXY ambiente.
PowerShell 7 no Linux Definir as HTTP_PROXY e HTTPS_PROXY de ambiente, além NO_PROXY (opcional) Você deve definir as variáveis de ambiente antes de iniciar o PowerShell; caso contrário, elas podem não ser respeitadas.

As variáveis de ambiente usadas incluem o seguinte:

  • HTTP_PROXY: o servidor proxy usado em solicitações HTTP.
  • HTTPS_PROXY: o servidor proxy usado em solicitações HTTPS.
  • NO_PROXY: uma lista separada por vírgulas de nomes de host e endereços IP que devem ser excluídos do proxy.

Observação

Em sistemas nos quais as variáveis de ambiente diferenciam maiúsculas de minúsculas, os nomes de variáveis podem apenas em minúsculas ou apenas em maiúsculas. Os nomes em minúsculas são verificados primeiro.

Antes do processo de registro, você precisa habilitar o provedor de recursos apropriado no Azure para AKS Azure Stack HCI registro. Para fazer isso, execute os comandos do PowerShell a seguir.

Para fazer logoff no Azure, execute o comando Conexão-AzAccount do PowerShell:

Connect-AzAccount

Se você quiser alternar para uma assinatura diferente, execute o comando Set-AzContext do PowerShell:

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

Execute o comando a seguir para registrar sua assinatura do Azure para Azure Arc de recursos do Kubernetes habilitados. Esse processo de registro pode levar até 10 minutos, mas só precisa ser executado uma vez em uma assinatura específica.

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

Para validar o processo de registro, execute o seguinte comando do PowerShell:

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

Etapa 1: Preparar seus computador para implantação

Execute verificações em cada nó físico para ver se todos os requisitos estão satisfeitos para instalar Serviço de Kubernetes do Azure no Azure Stack HCI. Abra o PowerShell como administrador e execute o seguinte comando Initialize-AksHciNode.

Initialize-AksHciNode

Etapa 2: Preparar o Active Directory e o servidor DNS para implantação

Se você não puder habilitar atualizações de DNS dinâmicas em seu ambiente DNS para permitir que o AKS no Azure Stack HCI registre o nome do cluster genérico CloudAgent no Active Directory e no sistema DNS para descoberta, você precisará pré-criar os respectivos registros no Active Directory e no DNS.

Crie um serviço de cluster genérico no Active Directory com o nome (ou um nome de sua escolha), mas não exceda ca-cloudagent 32 caracteres de comprimento. Você também precisa criar um registro DNS associado apontando para o FQDN do serviço de cluster genérico com o endereço cloudservicecidr fornecido. Mais detalhes sobre as etapas nesse processo podem ser encontrados na documentação do Clustering de Failover.

O AKS em Azure Stack HCI implantação tentará localizar o especificado no clusterRoleName Active Directory antes de prosseguir com a implantação.

Observação

Depois que o AKS Azure Stack HCI for implantado, essas informações não poderão ser alteradas.

Siga a Etapa 3a após a Etapa 2 para especificar o nome do objeto criado previamente em Set-AksHciConfig .

Etapa 3: Criar uma rede virtual

Para obter os nomes das opções disponíveis, execute o comando a seguir. Certifique-se SwitchType de que o da sua opção de VM seja "Externo".

Get-VMSwitch

Saída de exemplo:

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

Para criar uma rede virtual para os nós em sua implantação a serem usados, crie uma variável de ambiente com o comando New-AksHciNetworkSetting do PowerShell. Isso será usado posteriormente para configurar uma implantação que usa IP estático. Se você quiser configurar sua implantação do AKS com DHCP, visite New-AksHciNetworkSetting para obter exemplos. Você também pode examinar 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

Observação

Os valores fornecidos neste comando de exemplo precisarão ser personalizados para o seu ambiente.

Etapa 4: configurar sua implantação

Defina as definições de configuração para o host do serviço kubernetes do Azure usando o comando set-AksHciConfig . Você deve especificar os imageDirworkingDir parâmetros, e cloudConfigLocation . Se você quiser redefinir os detalhes de configuração, execute o comando novamente com novos parâmetros.

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

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"

Observação

Os valores fornecidos neste comando de exemplo precisarão ser personalizados para o seu ambiente.

Etapa 5: configurar sua implantação se você tiver objetos de serviço de cluster pré-configurado e registros DNS

Defina as definições de configuração para o host do serviço kubernetes do Azure usando o comando set-AksHciConfig . Você deve especificar os imageDirworkingDir parâmetros, clusterrolename , cloudservicecidr e cloudConfigLocation . Se você quiser redefinir os detalhes de configuração, execute o comando novamente com novos parâmetros.

Configure 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"

Observação

Os valores fornecidos neste comando de exemplo precisarão ser personalizados para o seu ambiente.

Etapa 6: fazer logon no Azure e definir configurações de registro

Execute o seguinte comando set-AksHciRegistration do PowerShell com sua assinatura e o nome do grupo de recursos para fazer logon no Azure. Você deve ter uma assinatura do Azure e um grupo de recursos do Azure existente nas regiões leste dos EUA, sudeste asiático ou Europa Ocidental do Azure para continuar.

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

Etapa 7: iniciar uma nova implantação

Depois de configurar sua implantação, você deve iniciá-la. Isso instalará o serviço kubernetes do Azure em Azure Stack agentes/serviços do HCI e o host do serviço kubernetes do Azure. Para iniciar a implantação, execute o comando a seguir.

Install-AksHci

Aviso

Durante a instalação do host do serviço Kuberenetes do Azure, um tipo de recurso de arco do Azure kubernetes é criado no grupo de recursos definido durante o registro. Não exclua esse recurso, pois ele representa o host do serviço Kuberenetes do Azure. Você pode identificar o recurso verificando seu campo de distribuição para obter um valor de aks_management . A exclusão desse recurso resultará em uma implantação fora da política.

Etapa 8: criar um cluster kubernetes

Depois de instalar o host do serviço kubernetes do Azure, você estará pronto para implantar um cluster do kubernetes. Abra o PowerShell como administrador e execute o seguinte comando New-AksHciCluster . Este comando de exemplo criará um novo cluster kubernetes com um pool de nós do Linux chamado linuxnodepool com uma contagem de nós de 1. Para ler mais informações sobre pools de nós, confira usar pools de nós em AKS em Azure Stack HCI.

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

Verifique os clusters implantados

Para obter uma lista dos clusters kubernetes implantados, execute o seguinte comando Get-AksHciCluster do 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 dos pools de nós no cluster, execute o seguinte comando Get-AksHciNodePool do PowerShell.

Get-AksHciNodePool -clusterName mycluster
ClusterName  : mycluster
NodePoolName : linuxnodepool
Version      : v1.20.7
OsType       : Linux
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed

etapa 9: Conexão seu cluster para o Arc habilitado Kubernetes

Conexão o cluster para o Arc habilitou o Kubernetes executando o comando Enable-AksHciArcConnection . O exemplo abaixo conecta seu AKS em Azure Stack cluster HCI ao Arc usando os detalhes de assinatura e grupo de recursos que você passou no Set-AksHciRegistration comando.

Connect-AzAccount
Enable-AksHciArcConnection -name mycluster

Observação

Se você encontrar problemas ou mensagens de erro durante o processo de instalação, consulte problemas conhecidos de instalação e erros para obter mais informações.

Dimensionar um cluster kubernetes

se você precisar dimensionar o cluster para cima ou para baixo, poderá alterar o número de nós de plano de controle usando o comando set-AksHciCluster , e poderá alterar o número de nós de trabalho do Linux ou do Windows no pool de nós usando o comando set-AksHciNodePool .

Para dimensionar os nós do plano de controle, execute o comando a seguir.

Set-AksHciCluster –name mycluster -controlPlaneNodeCount 3

Para dimensionar os nós de trabalho no pool de nós, execute o comando a seguir.

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

Observação

Nas versões anteriores do AKS em Azure Stack HCI, o comando set-AksHciCluster também era usado para dimensionar nós de trabalho. AKS em Azure Stack HCI está apresentando pools de nós em clusters de carga de trabalho agora, portanto, esse comando só poderá ser usado para dimensionar nós de trabalhador se o cluster tiver sido criado com o parâmetro antigo definido em New-AksHciCluster. Para dimensionar nós de trabalho em um pool de nós, use o comando set-AksHciNodePool .

Acessar seus clusters usando o kubectl

Para acessar os clusters do kubernetes usando o kubectl, execute o comando Get-AksHciCredential do PowerShell. Isso usará o arquivo kubeconfig do cluster especificado como o arquivo kubeconfig padrão para kubectl. Você também pode usar o kubectl para implantar aplicativos usando o Helm.

Get-AksHciCredential -name mycluster

Excluir um cluster kubernetes

Se você precisar excluir um cluster kubernetes, execute o comando a seguir.

Remove-AksHciCluster -name mycluster

Observação

Verifique se o cluster foi excluído examinando as VMs existentes no Gerenciador do Hyper-V. Se elas não forem excluídas, você poderá excluir as VMs manualmente. Em seguida, execute o comando Restart-Service wssdagent . Isso deve ser feito em cada nó no cluster de failover.

Obter logs

Para obter logs de todos os seus pods, execute o comando Get-AksHciLogs . Este comando criará uma pasta compactada de saída chamada akshcilogs.zip em seu diretório de trabalho. O caminho completo para a akshcilogs.zip pasta será a saída após a execução do comando a seguir.

Get-AksHciLogs

Neste guia de início rápido, você aprendeu como configurar um host do serviço kubernetes do Azure e criar AKS em Azure Stack clusters HCI usando o PowerShell. Você também aprendeu a usar o PowerShell para dimensionar um cluster kubernetes e para acessar clusters com o kubectl .

Próximas etapas