Usar o Serviço Kubernetes do Azure no Azure Stack Hub com a CLI
Este artigo é um guia para você começar a usar o serviço Serviço Kubernetes do Azure (AKS) no Azure Stack Hub. Ele descreve o principal conjunto de cenários para você se familiarizar com o AKS no Azure Stack Hub. A funcionalidade disponível no Azure Stack Hub é um subconjunto do que está disponível no Azure global.
Nas seguintes seções, você:
Conclua os pré-requisitos para usar o AKS no Azure Stack Hub.
Conclua as operações do ciclo de vida de um cluster AKS usando a CLI do Azure e o portal do usuário do Azure Stack Hub.
Instalar a CLI do Azure
Você deve instalar a CLI do Azure com suporte AKS para sua máquina. Prepare uma máquina limpa Linux ou Windows para instalar a versão de visualização da CLI do Azure com suporte AKS. Certifique-se de que a máquina não tem a CLI do Azure instalada para evitar conflitos com a pré-visualização da CLI do Azure que se instala a seguir. A maioria das instruções a seguir pressupõe que você esteja usando uma VM Linux, mas você pode encontrar as etapas equivalentes no Windows na documentação do produto.
Não atualize a CLI do Azure depois de instalar a CLI do Azure com suporte AKS. Se você fizer a atualização, ela será substituída pela versão pronta para produção que não tem suporte ao AKS.
Para uma máquina Ubuntu, siga as instruções em Instalar a CLI do Azure no Linux.
Depois de instalar a CLI do Azure com suporte AKS, verifique se a instalação está correta executando o seguinte comando da CLI do Azure:
az --version
Aqui está uma saída de exemplo de uma máquina Linux:
A CLI do Azure deve ser 2.28.0 ou posterior.
Conectar-se ao Azure Stack Hub
Conecte-se ao seu ponto de extremidade do Azure Stack Hub. Você precisa usar a CLI do Azure para estabelecer o ambiente específico do Azure Stack Hub ao qual você está se conectando. Você pode encontrar as instruções em Connect to Azure Stack Hub.
Registe o seu ambiente para que a CLI do Azure possa ligar-se ao endpoint do "Azure Stack Hub Resource Manager" para a sua instância. Atualize as URLs no seguinte trecho e execute o seguinte comando:
az cloud register \ -n aks-preview-test \ --endpoint-resource-manager "https://management.redmond.xbx.nxn.microsoft.com" \ --suffix-storage-endpoint "redmond.xbx.nxn.microsoft.com" \ --suffix-keyvault-dns ".vault.redmond.xbx.nxn.microsoft.com"
Defina o ambiente ativo.
az cloud set -n aks-preview-test
Atualize a configuração do seu ambiente.
az cloud update --profile 2020-09-01-hybrid
Conecte-se ao ambiente.
az login -u 'user@contoso.onmicrosoft.com' -p 'xxxxxxx' --tenant 'contoso.onmicrosoft.com'
Observação
Se acionar um erro de falha de verificação de certificado , pode ser que o certificado usado para o ponto de extremidade do Azure Resource Manager não seja confiável pelo seu computador cliente. Em caso afirmativo, você precisa exportar o certificado usado nos pontos de extremidade do Azure Stack Hub e confiar nele. Você pode encontrar instruções em Exportar o Certificado Raiz da CA do Azure Stack Hub.
Em particular, para máquinas Linux, consulte: Microsoft Entra ID no Linux
Use o seguinte comando para definir a assinatura em sua sessão da CLI do Azure como padrão:
az account set --subscription <subscription-id>
Registre o provedor de recursos do Serviço Kubernetes do Azure. Liste os provedores de recursos disponíveis em sua assinatura.
az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
A saída deve ser semelhante a:
Tome nota do fornecedor de recursos Microsoft.ContainerService e, em seguida, registe o fornecedor:
az provider register --namespace Microsoft.ContainerService
Execute novamente a etapa 7 para verificar o status de registro do provedor de recursos. O registo pode demorar vários minutos a concluir.
Depois que essas etapas de pré-requisito forem concluídas, você poderá testar os seguintes cenários.
Criar um cluster AKS
Você pode encontrar as instruções globais do Azure em Implantar um cluster do Serviço Kubernetes do Azure usando a CLI do Azure. As instruções aqui refletem as limitações do uso do AKS no Azure Stack Hub. Você pode usar a CLI do Azure para criar um cluster AKS para contêineres Linux ou Windows.
Crie um grupo de recursos:
az group create --name myResourceGroup --location <Azure Stack Hub location>
Certifique-se de ter um ID de principal de serviço pronto, com permissão de colaborador na sua subscrição, para criar clusters nela.
- Para criar um principal de serviço (SPN) usando o Microsoft Entra ID, siga estas instruções .
- Para criar um SPN usando os Serviços Federados do Ative Directory (AD FS), siga estas instruções .
- Para atribuir o papel de "Colaborador" ao SPN, consulte as instruções . Certifique-se de selecionar a função "Colaborador".
Crie um cluster AKS de três nós de agente. Forneça valores para os seguintes parâmetros, exemplos são fornecidos. Executar:
az aks create \ --resource-group myResourceGroup \ --name myakscluster \ --dns-name-prefix myakscluster \ --nodepool-name mynodepool \ --admin-username azureuser \ --service-principal xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --node-count 3 \ --generate-ssh-keys \ --load-balancer-sku basic \ --vm-set-type VirtualMachineScaleSets \ --location <Azure Stack Hub location> \ --kubernetes-version 1.20.7
A saída desta operação está no formato json e contém uma especificação do cluster, incluindo a chave pública ssh gerada, nome de domínio totalmente qualificado (FQDN) usado no cluster entre outras propriedades. Observe que o comando gera texto assim, destacando o local da chave privada:
SSH key files '/home/azureuser/.ssh/id_rsa'
e'/home/azureuser/.ssh/id_rsa.pub'
são geradas em\~/.ssh
para permitir o acesso SSH à VM. Armazene essas chaves em um local seguro para ser usado no caso de haver necessidade de ssh nas VMs, como é o caso ao solucionar problemas.Agora você pode continuar a repetir os testes para Scale, implantar um aplicativoe Excluir.
Conectar-se ao cluster
Para gerenciar um cluster Kubernetes, use kubectl, o cliente de linha de comando Kubernetes. Para instalar kubectl localmente, use o comando
az aks install-cli
(você pode precisar usar 'sudo' no início para ter permissão para instalá-lo):az aks install-cli
Para configurar kubectl para se conectar ao cluster do Kubernetes, use o comando
az aks get-credentials
. Este comando baixa credenciais e configura a CLI do Kubernetes para usá-las.az aks get-credentials --resource-group myResourceGroup --name myakscluster --admin
Para verificar a conexão com o cluster, use o comando kubectl get para retornar uma lista dos nós do cluster.
kubectl get nodes
Cluster escalável
Outra tarefa de gerenciamento de cluster é dimensionar um cluster. Você pode dimensionar um cluster a qualquer momento após sua criação usando o comando az aks scale
. Para dimensionar o cluster dos três nós iniciais para 4, execute:
az aks scale --resource-group myResourceGroup --name myakscluster --node-count 4
Quando o cluster é dimensionado com êxito, a saída contém um "agentPoolProfiles" semelhante ao exemplo a seguir:
"agentPoolProfiles": [
{
"availabilityZones": null,
"count": 4,
"enableAutoScaling": null,
"enableNodePublicIp": false,
"maxCount": null,
"maxPods": 110,
"minCount": null,
"mode": "System",
"name": "mynodepool",
"nodeLabels": {},
"nodeTaints": null,
"orchestratorVersion": "1.20.7",
"osDiskSizeGb": 100,
"osType": "Linux",
"provisioningState": "Succeeded",
"scaleSetEvictionPolicy": null,
"scaleSetPriority": null,
"spotMaxPrice": null,
"tags": null,
"type": "VirtualMachineScaleSets",
"vmSize": " Standard_DS2_v2",
"vnetSubnetId": null
}
]
Excluir cluster
Depois que as operações anteriores forem executadas, você poderá excluir o cluster. Executar:
az aks delete --name myakscluster --resource-group myResourceGroup
Criar cluster AKS com rede virtual personalizada
Criar um cluster a ser implantado em uma rede fornecida pelo usuário é um cenário comum. Planejar a configuração da rede requer alguma preparação. Além disso, observe que com o AKS o plug-in de rede padrão é o Azure CNI, não o Kubenet como é o caso do mecanismo AKS.
Com o Azure CNI, cada pod obtém um endereço IP da sub-rede e pode ser acessado diretamente (sem a necessidade de uma tabela de roteamento, como é o caso do Kubenet). Esses endereços IP devem ser exclusivos em todo o espaço de rede e devem ser planejados.
O artigo a seguir orienta você pelo processo de planejamento para sua implantação de rede virtual personalizada. Você pode encontrar várias configurações de rede que funcionam para suas necessidades e testá-las. Para um teste inicial, as duas etapas a seguir mostram o processo básico:
Siga as instruções em este artigo para planear a implementação usando Azure CNI. Por exemplo, você pode usar o portal para criar uma rede virtual chamada "myAKSVnet" com intervalo de IP 10.0.0.0/8 com sub-rede "myAKSSubnet" e intervalo de IP 10.240.0.0/16 em um Grupo de Recursos chamado "myTest-rg". Em seguida, use a próxima etapa para a criação do cluster.
az network vnet create \ --resource-group myTest-rg \ --name myAKSVnet \ --address-prefixes 10.0.0.0/8 \ --subnet-name myAKSSubnet \ --subnet-prefix 10.240.0.0/16
Observe que o comando cluster fornecido no artigo do Azure funciona bem ao implantar no Azure, para implantar no Azure Stack Hub, você precisa especificar parâmetros extras, como no exemplo a seguir. O ID da sub-rede de rede virtual deve ser semelhante a '/subscriptions/dfdfdff-5dfdf-dfdf-dfdf-dfdfdfdfd/resourceGroups/myTest-rg/providers/Microsoft.Network/virtualNetworks/myAKSVnet/subnets/myAKSSubnet':
az aks create \ --resource-group myTest-rg \ --name aksvnet \ --dns-name-prefix aksvnet \ --nodepool-name mynodepool \ --admin-username azureuser \ --service-principal xvxvxvxvx-ffff-ffff-xvxvxvx-8xbxbxbx8 \ --client-secret dccbcbcbcbcbcbcbcbbcbcbcbcbcbcbc-LNX \ --node-count 3 \ --generate-ssh-keys \ --load-balancer-sku basic \ --vm-set-type VirtualMachineScaleSets \ --network-plugin azure \ --vnet-subnet-id '<subnet-resource-id>' \ --skip-subnet-role-assignment \ --docker-bridge-address 172.17.0.1/16 \ --dns-service-ip 10.0.0.10 \ --location redmond
Siga as instruções na seção "Conectar-se ao cluster" para se conectar ao cluster do Kubernetes e implantar seus aplicativos.
Verificação da consistência
Verificação de consistência entre o Azure e o Azure Stack Hub
Selecione uma combinação de comandos entre os testados acima, na seção "Referência de comando" ou em seus próprios scripts do dia a dia.
Aplique-os ao Azure e, posteriormente, ao Azure Stack Hub. Observe quaisquer discrepâncias não esperadas e forneça feedback.