Руководство по настройке кластеров Служба 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
Необходимые компоненты
- Подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
- Субъект-служба Azure: создайте субъект-службу, записав следующие значения: appId, displayName, password и tenant.
Установите Ansible: выполните одно из указанных ниже действий.
- Установите и настройте Ansible на виртуальной машине Linux.
- Настройте Azure Cloud Shell и, если у вас нет доступа к виртуальной машине Linux, вы можете создать ее с помощью Ansible.
Создание управляемого кластера 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
определяется кластер AKSmyAKSCluster
в группе ресурсов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