Partilhar via


Tutorial: Configurar clusters do Serviço Kubernetes do Azure (AKS) no Azure usando o Ansible

Importante

O Ansible 2.8 (ou posterior) é necessário para executar os playbooks de exemplo neste artigo.

O Serviço Kubernetes do Azure (AKS) simplifica a implantação de um cluster Kubernetes gerenciado no Azure. O AKS reduz a complexidade e a sobrecarga operacional de gerir o Kubernetes ao descarregar grande parte dessa responsabilidade para o Azure. Enquanto serviço alojado do Kubernetes, o Azure lida com tarefas críticas para si, como a monitorização do estado de funcionamento e a manutenção. Os mestres do Kubernetes são geridos pelo Azure. Pode apenas gerir e manter os nós dos agentes. Como um serviço Kubernetes gerenciado, o AKS é gratuito - você paga apenas pelos nós do agente dentro de seus clusters; não para os mestres.

O AKS pode ser configurado para usar o Microsoft Entra ID para autenticação do usuário. Uma vez configurado, você usa seu token de autenticação do Microsoft Entra para entrar no cluster AKS. O RBAC pode ser baseado na identidade de um usuário ou na associação a um grupo de diretórios.

Neste artigo, vai aprender a:

  • Criar um cluster do AKS
  • Configurar um cluster do AKS

Pré-requisitos

  • Subscrição do Azure: se não tem uma subscrição do Azure, crie uma conta gratuita antes de começar.

Criar um cluster do AKS gerido

O manual de exemplo cria um grupo de recursos e um cluster AKS dentro do grupo de recursos.

Guarde o manual de procedimentos seguinte como azure_create_aks.yml:

- name: Create Azure Kubernetes Service
  hosts: localhost
  connection: local
  vars:
    resource_group: myResourceGroup
    location: eastus
    aks_name: myAKSCluster
    username: azureuser
    ssh_key: "your_ssh_key"
    client_id: "your_client_id"
    client_secret: "your_client_secret"
    aks_version: aks_version
  tasks:
  - name: Create resource group
    azure_rm_resourcegroup:
      name: "{{ resource_group }}"
      location: "{{ location }}"
  - name: Create a managed Azure Container Services (AKS) cluster
    azure_rm_aks:
      name: "{{ aks_name }}"
      location: "{{ location }}"
      resource_group: "{{ resource_group }}"
      dns_prefix: "{{ aks_name }}"
      kubernetes_version: "{{aks_version}}"
      linux_profile:
        admin_username: "{{ username }}"
        ssh_key: "{{ ssh_key }}"
      service_principal:
        client_id: "{{ client_id }}"
        client_secret: "{{ client_secret }}"
      agent_pool_profiles:
        - name: default
          count: 2
          vm_size: Standard_D2_v2
      tags:
        Environment: Production

Antes de executar o playbook, consulte as seguintes notas:

  • A primeira seção dentro define um grupo de recursos nomeado myResourceGroup dentro tasks do eastus local.
  • A segunda seção dentro define um cluster AKS nomeado myAKSCluster dentro tasks do myResourceGroup grupo de recursos.
  • Para o your_ssh_key espaço reservado, insira sua chave pública RSA no formato de linha única - começando com "ssh-rsa" (sem as aspas).
  • Para o espaço reservado, use o aks_versioncomando az aks get-versions .

Execute o playbook usando o ansible-playbook

ansible-playbook azure_create_aks.yml

A execução do playbook mostra resultados semelhantes à seguinte saída:

PLAY [Create AKS] 

TASK [Gathering Facts] 
ok: [localhost]

TASK [Create resource group] 
changed: [localhost]

TASK [Create an Azure Container Services (AKS) cluster] 
changed: [localhost]

PLAY RECAP 
localhost                  : ok=3    changed=2    unreachable=0    failed=0

Dimensionar nós do AKS

O manual de procedimentos de exemplo na secção anterior define dois nós. Você ajusta o número de nós modificando o count valor no agent_pool_profiles bloco .

Guarde o manual de procedimentos seguinte como azure_configure_aks.yml:

- name: Scale AKS cluster
  hosts: localhost
  connection: local
  vars:
    resource_group: myResourceGroup
    location: eastus
    aks_name: myAKSCluster
    username: azureuser
    ssh_key: "your_ssh_key"
    client_id: "your_client_id"
    client_secret: "your_client_secret"
  tasks:
  - name: Scaling an existed AKS cluster
    azure_rm_aks:
        name: "{{ aks_name }}"
        location: "{{ location }}"
        resource_group: "{{ resource_group }}"
        dns_prefix: "{{ aks_name }}"
        linux_profile:
          admin_username: "{{ username }}"
          ssh_key: "{{ ssh_key }}"
        service_principal:
          client_id: "{{ client_id }}"
          client_secret: "{{ client_secret }}"
        agent_pool_profiles:
          - name: default
            count: 3
            vm_size: Standard_D2_v2

Antes de executar o playbook, consulte as seguintes notas:

  • Para o your_ssh_key espaço reservado, insira sua chave pública RSA no formato de linha única - começando com "ssh-rsa" (sem as aspas).

Execute o playbook usando o ansible-playbook

ansible-playbook azure_configure_aks.yml

A execução do playbook mostra resultados semelhantes à seguinte saída:

PLAY [Scale AKS cluster] 

TASK [Gathering Facts] 
ok: [localhost]

TASK [Scaling an existed AKS cluster] 
changed: [localhost]

PLAY RECAP 
localhost                  : ok=2    changed=1    unreachable=0    failed=0

Eliminar um cluster do AKS gerido

O playbook de exemplo exclui um cluster AKS.

Guarde o manual de procedimentos seguinte como azure_delete_aks.yml:

- name: Delete a managed Azure Container Services (AKS) cluster
  hosts: localhost
  connection: local
  vars:
    resource_group: myResourceGroup
    aks_name: myAKSCluster
  tasks:
  - name:
    azure_rm_aks:
      name: "{{ aks_name }}"
      resource_group: "{{ resource_group }}"
      state: absent

Execute o playbook usando o ansible-playbook

ansible-playbook azure_delete_aks.yml

A execução do playbook mostra resultados semelhantes à seguinte saída:

PLAY [Delete a managed Azure Container Services (AKS) cluster] 

TASK [Gathering Facts] 
ok: [localhost]

TASK [azure_rm_aks] 

PLAY RECAP 
localhost                  : ok=2    changed=1    unreachable=0    failed=0

Próximos passos