Поделиться через


Руководство по настройке кластеров Служба Azure Kubernetes (AKS) в Azure с помощью Ansible

Важно!

Для выполнения примеров сборников схем из этой статьи требуется Ansible 2.8 (или последующей версии).

Служба Azure Kubernetes (AKS) упрощает развертывание управляемого кластера Kubernetes в Azure. AKS снижает сложность управления службой Kubernetes и связанные временные затраты, делегируя ответственность за большую их часть облаку Azure. Размещенная в Azure служба Kubernetes отвечает за критические задачи, в частности за мониторинг работоспособности и техническое обслуживание. Azure управляет мастером Kubernetes. Управление и обслуживание приходится вести только для узлов агентов. Как управляемая среда Kubernetes, AKS предоставляется бесплатно, оплачиваются только узлы агента в кластерах, а не мастера.

AKS можно настроить для использования идентификатора Microsoft Entra для проверки подлинности пользователей. После настройки маркер проверки подлинности Microsoft Entra используется для входа в кластер AKS. Управление доступом на основе ролей может основываться на удостоверении пользователя или членстве в группах каталога.

Вы узнаете, как выполнять следующие задачи:

  • Создание кластера AKS
  • Настройка кластера AKS

Необходимые компоненты

Создание управляемого кластера AKS

Пример сборника схем создает группу ресурсов и кластер AKS, который находится в этой группе ресурсов.

Сохраните следующий сборник схем как 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

Перед выполнением сборника схем ознакомьтесь со следующими указаниями.

  • В первом разделе в tasks определяется группа ресурсов myResourceGroup в расположении eastus.
  • Во втором разделе в tasks определяется кластер AKS myAKSCluster в группе ресурсов myResourceGroup.
  • Для заполнителя your_ssh_key укажите свой открытый ключ RSA в однострочном формате, начиная с ssh-rsa.
  • Для заполнителя aks_version примените команду az aks get-versions.

Запустите сборник схем с помощью команды ansible-playbook.

ansible-playbook azure_create_aks.yml

После выполнения сборника схем отобразятся результаты, как показано ниже.

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

Масштабирование узлов AKS

Сборник схем из предыдущего раздела определяет два узла. Измените число узлов, изменив значение count в блоке agent_pool_profiles.

Сохраните следующий сборник схем как 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

Перед выполнением сборника схем ознакомьтесь со следующими указаниями.

  • Для заполнителя your_ssh_key укажите свой открытый ключ RSA в однострочном формате, начиная с ssh-rsa.

Запустите сборник схем с помощью команды ansible-playbook.

ansible-playbook azure_configure_aks.yml

После выполнения сборника схем отобразятся результаты, как показано ниже.

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

Удаление управляемого кластера AKS

Пример сборника схем удаляет кластер AKS.

Сохраните следующий сборник схем как 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

Запустите сборник схем с помощью команды ansible-playbook.

ansible-playbook azure_delete_aks.yml

После выполнения сборника схем отобразятся результаты, как показано ниже.

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

Следующие шаги