Compartilhar via


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:

  1. 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.
  2. 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.
  3. 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:

  1. Abra uma sessão do Cloud Shell no navegador.

  2. 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 
    
  3. 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

  1. Crie um diretório que você possa usar para testar o código de amostra do Terraform e torne-o seu diretório atual.

  2. 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 
      } 
     } 
    }
    
  3. 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.

Próximas etapas

Conectar-se ao cluster do Kubernetes