Compartir a través de


Tutorial: Configuración de clústeres de Azure Kubernetes Service (AKS) en Azure mediante Ansible

Importante

Se requiere Ansible 2.8 (o posterior) para ejecutar los cuadernos de estrategias de ejemplo de este artículo.

Azure Kubernetes Service (AKS) facilita la implementación de un clúster de Kubernetes administrado en Azure. AKS reduce la complejidad y la carga operativa de gestionar Kubernetes al transferir gran parte de esa responsabilidad a Azure. Como servicio de Kubernetes hospedado, Azure controla tareas críticas, como la supervisión de estado y el mantenimiento. Azure administra los maestros de Kubernetes. Solo usted administra y mantiene los nodos del agente. Como servicio de Kubernetes administrado, AKS es gratuito; solo se paga por los nodos de los agentes dentro de sus clústeres, no por los nodos maestros.

AKS se puede configurar para usar microsoft Entra ID para la autenticación de usuario. Una vez configurado, se usa el token de autenticación de Microsoft Entra para iniciar sesión en el clúster de AKS. El RBAC se puede basar en la identidad o la pertenencia a grupos de directorios de un usuario.

En este artículo aprenderá a:

  • Creación de un clúster de AKS
  • Configuración de un clúster de AKS

Prerrequisitos

  • Suscripción de Azure: si no tiene una suscripción de Azure, cree una cuenta gratuita antes de comenzar.

Creación de un clúster de AKS administrado

La guía de ejemplo crea un grupo de recursos y un clúster de AKS dentro del grupo de recursos.

Guarde el siguiente cuaderno de estrategias 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 ejecutar el cuaderno de estrategias, consulte las notas siguientes:

  • La primera sección de tasks define un grupo de recursos denominado myResourceGroup dentro de la eastus ubicación.
  • La segunda sección de tasks define un clúster de AKS denominado myAKSCluster dentro del myResourceGroup grupo de recursos.
  • Para el marcador de posición, escriba la your_ssh_key clave pública RSA en el formato de una sola línea, empezando por "ssh-rsa" (sin las comillas).
  • Para el aks_version marcador de posición, utilice el comando az aks get-versions.

Ejecutar el playbook utilizando ansible-playbook

ansible-playbook azure_create_aks.yml

Al ejecutar el cuaderno de estrategias se muestran resultados similares a los siguientes:

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

Escalado de nodos de AKS

El cuaderno de estrategias de ejemplo de la sección anterior define dos nodos. Para ajustar el número de nodos, modifique el count valor del agent_pool_profiles bloque.

Guarde el siguiente cuaderno de estrategias 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 ejecutar el cuaderno de estrategias, consulte las notas siguientes:

  • Para el marcador de posición, escriba la your_ssh_key clave pública RSA en el formato de una sola línea, empezando por "ssh-rsa" (sin las comillas).

Ejecutar el playbook utilizando ansible-playbook

ansible-playbook azure_configure_aks.yml

Al ejecutar el cuaderno de estrategias se muestran resultados similares a los siguientes:

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

Eliminación de un clúster de AKS administrado

La guía de procedimientos de ejemplo elimina un clúster de AKS.

Guarde el siguiente cuaderno de estrategias 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

Ejecutar el playbook utilizando ansible-playbook

ansible-playbook azure_delete_aks.yml

Al ejecutar el cuaderno de estrategias se muestran resultados similares a los siguientes:

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

Pasos siguientes