Sdílet prostřednictvím


Kurz: Konfigurace clusterů Azure Kubernetes Service (AKS) v Azure pomocí Ansible

Důležité

K spuštění ukázkových playbooků v tomto článku se vyžaduje Ansible 2.8 (nebo novější).

Azure Kubernetes Service (AKS) usnadňuje nasazení spravovaného clusteru Kubernetes v Azure. AKS zjednodušuje správu Kubernetes a snižuje provozní režii s tím spojenou díky přenášení většiny zodpovědnosti na Azure. Jako hostovaná služba Kubernetes se za vás Azure stará o důležité úlohy, jako je monitorování stavu a údržba. Hlavní servery Kubernetes spravuje Azure. Pouze spravujete a udržujete uzly agentů. Jako spravovaná služba Kubernetes je AKS bezplatná – platíte jenom za uzly agentů v rámci vašich clusterů; ne pro předlohy.

AKS je možné nakonfigurovat tak, aby pro ověřování uživatelů používalo ID Microsoft Entra. Po nakonfigurování se pomocí ověřovacího tokenu Microsoft Entra přihlásíte ke clusteru AKS. Řízení přístupu na základě role může být založeno na identitě uživatele nebo členství ve skupině adresářů.

V tomto článku získáte informace o těchto tématech:

  • Vytvoření clusteru AKS
  • Konfigurace clusteru AKS

Požadavky

  • Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.

Vytvoření spravovaného clusteru AKS

Ukázkový playbook vytvoří skupinu prostředků a cluster AKS v rámci skupiny prostředků.

Uložte následující ukázkový playbook jako 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

Před spuštěním playbooku si přečtěte následující poznámky:

  • První část v rámci tasks definuje skupinu prostředků pojmenovanou myResourceGroupeastus v rámci umístění.
  • Druhá část v rámci tasks definuje cluster AKS pojmenovaný myAKSClustermyResourceGroup v rámci skupiny prostředků.
  • your_ssh_key Jako zástupný symbol zadejte veřejný klíč RSA v jednořádkovém formátu – počínaje "ssh-rsa" (bez uvozovek).
  • aks_version Pro zástupný symbol použijte příkaz az aks get-versions.

Spuštění playbooku pomocí ansible-playbooku

ansible-playbook azure_create_aks.yml

Spuštění playbooku zobrazuje výsledky podobné následujícímu výstupu:

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

Škálování uzlů AKS

Ukázkový playbook v předchozí části definuje dva uzly. Počet uzlů upravíte úpravou count hodnoty v agent_pool_profiles bloku.

Uložte následující ukázkový playbook jako 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

Před spuštěním playbooku si přečtěte následující poznámky:

  • your_ssh_key Jako zástupný symbol zadejte veřejný klíč RSA v jednořádkovém formátu – počínaje "ssh-rsa" (bez uvozovek).

Spuštění playbooku pomocí ansible-playbooku

ansible-playbook azure_configure_aks.yml

Spuštění playbooku zobrazuje výsledky podobné následujícímu výstupu:

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

Odstranění spravovaného clusteru AKS

Ukázkový playbook odstraní cluster AKS.

Uložte následující ukázkový playbook jako 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

Spuštění playbooku pomocí ansible-playbooku

ansible-playbook azure_delete_aks.yml

Spuštění playbooku zobrazuje výsledky podobné následujícímu výstupu:

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

Další kroky