Criar clusters do Kubernetes usando o Terraform (versão prévia)
Este artigo descreve como criar clusters do Kubernetes no Azure Local usando o Terraform e o Módulo Verificado do Azure. O fluxo de trabalho é o seguinte:
- Criar um par de chaves SSH.
- Crie um cluster do Kubernetes no Azure Local 23H2 usando o Terraform. Por padrão, o cluster está 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 são fornecidas "como estão" e "conforme disponíveis" e estão excluídas dos acordos de nível de serviço e da garantia limitada. O Serviço de Kubernetes do Azure, habilitado pelas versões prévias do Azure Arc, é parcialmente coberto pelo suporte ao cliente com base no melhor esforço.
Antes de começar
Antes de iniciar, verifique se você cumpre os seguintes pré-requisitos:
- Obtenha os seguintes detalhes do administrador de infraestrutura local:
- ID da assinatura do Azure: a ID da 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 de infraestrutura deve fornecer a ID do Resource Manager do local personalizado. Esse parâmetro é necessário para criar clusters do Kubernetes. Você também pode obter a ID do Resource Manager 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 do Azure Stack HCI que foi criada seguindo estas etapas. Seu administrador deve fornecer 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 instalados em seu computador de desenvolvimento.
- Baixe e instale o kubectl em seu computador 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 , no 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 chave pública do Azure ou do computador local em /.ssh/id_rsa.pub.
Entrar no Azure
O Terraform só dá suporte à autenticação no Azure com a CLI do Azure. Não há suporte para a autenticação usando o Azure PowerShell. Portanto, embora você possa usar o módulo do Azure PowerShell ao fazer o trabalho do Terraform, primeiro você deve se autenticar no Azure.
Implementar o código do Terraform
Crie um diretório que você possa usar para testar o código de amostra do Terraform e torne-o 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 AVM do AKS Arc mais recente e insira o código a seguir. Você pode ler a descrição e a entrada do módulo e adicionar parâmetros opcionais conforme necessário:
module "aks_arc" { # Make sure to use the latest AVM module version source = "Azure/avm-res-hybridcontainerservice-provisionedclusterinstance/azurerm" version = "0.5.0" # 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}] # Optional parameters ssh_public_key = "Your_SSH_Key" enable_workload_identity = true enable_oidc_issuer = true rbac_admin_group_object_ids = "" }
Inicializar 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 do Terraform e aplique-o
Execute terraform plan 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 ê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 do computador 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.