Criar clusters Kubernetes usando Terraform (visualização)
Este artigo descreve como criar clusters Kubernetes no Azure Local usando o Terraform e o Módulo Verificado do Azure. O fluxo de trabalho é o seguinte:
- Crie um par de chaves SSH.
- Crie um cluster Kubernetes no Azure Local 23H2 usando o Terraform. Por padrão, o cluster é conectado ao Azure Arc.
- Valide a implantação e conecte-se ao cluster.
Importante
Esses recursos de visualização estão disponíveis em uma base de autoatendimento e aceitação. As visualizações prévias são fornecidas "como estão" e "conforme disponíveis" e são excluídas dos contratos de nível de serviço e da garantia limitada. O Serviço Kubernetes do Azure, habilitado pelas visualizações do Azure Arc, é parcialmente coberto pelo suporte ao cliente com base no melhor esforço.
Antes de começar
Antes de começar, certifique-se de que tem os seguintes pré-requisitos:
- Obtenha os seguintes detalhes do administrador de infraestrutura local:
- ID de assinatura do Azure: a ID de assinatura do Azure que usa o Azure Local para implantação e registro.
- Nome ou ID do local personalizado: a ID do Azure Resource Manager do local personalizado. O local personalizado é configurado durante a implantação do cluster Local do Azure. O administrador da infraestrutura deve fornecer a ID do Gerenciador de Recursos do local personalizado. Esse parâmetro é necessário para criar clusters do Kubernetes. Você também pode obter a ID do Gerenciador de Recursos usando
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
, se o administrador de infraestrutura fornecer um nome de local personalizado e um nome de grupo de recursos. - Nome ou ID da rede lógica: a ID do Azure Resource Manager da rede lógica local do Azure que foi criada seguindo estas etapas. O administrador deve fornecer-lhe o ID da rede lógica. Esse parâmetro é necessário para criar clusters do Kubernetes. Você também pode obter a ID do Azure Resource Manager usando
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
se souber o grupo de recursos no qual a rede lógica foi criada.
- Verifique se você tem o GitHub, a versão mais recente da CLI do Azure e o cliente Terraform instalado em sua máquina de desenvolvimento.
- Baixe e instale o kubectl em sua máquina de desenvolvimento.
Criar um par de chaves SSH
Para criar um par de chaves SSH (igual ao Azure AKS), use o seguinte procedimento:
Abra uma sessão do Cloud Shell no navegador.
Crie um par de chaves SSH usando o comando az sshkey create , a partir do portal, ou o
ssh-keygen
comando:az sshkey create --name "mySSHKey" --resource-group "myResourceGroup"
ou
ssh-keygen -t rsa -b 4096
Recupere o valor da sua chave pública do Azure ou da sua máquina local em /.ssh/id_rsa.pub.
Iniciar sessão no Azure
O Terraform só dá suporte à autenticação no Azure com a CLI do Azure. Não há suporte para autenticação usando o Azure PowerShell. Portanto, embora você possa usar o módulo do Azure PowerShell ao fazer seu trabalho Terraform, você deve primeiro autenticar no Azure.
Implementar o código Terraform
Crie um diretório que você pode usar para testar o código Terraform de exemplo e torná-lo seu diretório atual.
No mesmo diretório, crie um arquivo chamado providers.tf e cole o seguinte código:
terraform { required_version = "~> 1.5" required_providers { azapi = { source = "azure/azapi" version = "~> 1.13" } azurerm = { source = "hashicorp/azurerm" version = "~> 3.74" } } } provider "azurerm" { features { resource_group { prevent_deletion_if_contains_resources = false } } }
Crie outro arquivo chamado main.tf que aponte para o módulo AKS Arc AVM mais recente e insira o código a seguir. Você pode ler a descrição e entrada do módulo e adicionar parâmetros opcionais conforme necessário. Para localizar o ID do objeto do grupo de administradores, consulte Ativar a autenticação Microsoft Entra para clusters Kubernetes. Você pode seguir esta orientação para encontrá-lo no seu ambiente do Azure.
module "aks_arc" { # Make sure to use the latest AVM module version source = "Azure/avm-res-hybridcontainerservice-provisionedclusterinstance/azurerm" version = "~>0.6" # Make sure to provide all required parameters resource_group_id = "<Resource_Group>" location = "<Region>" name = "<Cluster_Name>" logical_network_id = "<LNet_ID>" custom_location_id = "<CustomLocation_ID>" agent_pool_profiles = [{count=1}] ssh_public_key = "Your_SSH_Key" # Optional parameters, update them as needed enable_workload_identity = false enable_oidc_issuer = false rbac_admin_group_object_ids = ["<Admin_Group_Object_ID>"] }
Inicializar o Terraform
Execute terraform init
para inicializar a implantação do Terraform. Certifique-se de usar o -upgrade
sinalizador para atualizar os plug-ins de provedor necessários para a versão mais recente:
terraform init -upgrade
Crie um plano de execução Terraform e aplique o plano
Execute o plano terraform para criar um plano de execução e, em seguida, execute terraform apply para aplicar o arquivo de saída à sua infraestrutura de nuvem:
terraform plan -out main.tfplan
terraform apply main.tfplan
O comando é executado e, em seguida, retorna o êxito depois que o recurso é provisionado com êxito.
Validar a implantação e conectar-se ao cluster
Agora você pode se conectar ao cluster do Kubernetes executando az connectedk8s proxy
a partir da sua máquina de desenvolvimento. Você também pode usar kubectl para ver o status do nó e do pod. Siga as mesmas etapas descritas em Conectar-se ao cluster do Kubernetes.