Öğretici: Ansible kullanarak Azure'da Azure Kubernetes Service (AKS) kümelerini yapılandırma

Önemli

Bu makaledeki örnek playbook'ları çalıştırmak için Ansible 2.8 (veya üzeri) gereklidir.

Azure Kubernetes Service (AKS), Azure'da yönetilen bir Kubernetes kümesi dağıtmayı kolaylaştırır. AKS, sorumluluğun çoğunu Azure'a devrederek Kubernetes yönetiminin karmaşıklığını ve işlemsel yükünü azaltır. Barındırılan bir Kubernetes hizmeti olarak, Azure sistem durumu izleme ve bakım gibi kritik görevleri sizin için gerçekleştirir. Kubernetes ana düğümler Azure tarafından yönetilir. Siz yalnızca aracı düğümlerini yönetir ve sürdürürsünüz. Yönetilen bir Kubernetes hizmeti olarak AKS ücretsizdir; yalnızca kümelerinizdeki aracı düğümleri için ödeme gerçekleştirirsiniz; Ustalar için değil.

AKS, kullanıcı kimlik doğrulaması için Microsoft Entra Id kullanacak şekilde yapılandırılabilir. Yapılandırıldıktan sonra, AKS kümesinde oturum açmak için Microsoft Entra kimlik doğrulama belirtecinizi kullanırsınız. RBAC, bir kullanıcının kimliğine veya dizin grubu üyeliğine dayalı olabilir.

Bu makalede şunları öğreneceksiniz:

  • AKS kümesi oluşturma
  • AKS kümesini yapılandırma

Önkoşullar

  • Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Yönetilen AKS kümesi oluşturma

Örnek playbook, kaynak grubu içinde bir kaynak grubu ve aks kümesi oluşturur.

Aşağıdaki playbook'u azure_create_aks.yml olarak kaydedin:

- 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

Playbook'u çalıştırmadan önce aşağıdaki notlara bakın:

  • içindeki ilk bölümtasks, konum içinde eastus adlı myResourceGroup bir kaynak grubunu tanımlar.
  • içindeki tasks ikinci bölüm, kaynak grubu içinde myResourceGroup adlı myAKSCluster bir AKS kümesini tanımlar.
  • Yer tutucu için your_ssh_key , RSA ortak anahtarınızı "ssh-rsa" ile (tırnak işaretleri olmadan) başlayarak tek satır biçiminde girin.
  • Yer tutucu için aks_version az aks get-versions komutunu kullanın.

Ansible-playbook kullanarak playbook'u çalıştırma

ansible-playbook azure_create_aks.yml

Playbook çalıştırılırken aşağıdaki çıkışa benzer sonuçlar gösterilir:

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 düğümlerini ölçeklendirme

Önceki bölümde yer alan örnek playbook, iki düğüm tanımlar. Bloktaki agent_pool_profiles değeri değiştirerek count düğüm sayısını ayarlarsınız.

Aşağıdaki playbook'u azure_configure_aks.yml olarak kaydedin:

- 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

Playbook'u çalıştırmadan önce aşağıdaki notlara bakın:

  • Yer tutucu için your_ssh_key , RSA ortak anahtarınızı "ssh-rsa" ile (tırnak işaretleri olmadan) başlayarak tek satır biçiminde girin.

Ansible-playbook kullanarak playbook'u çalıştırma

ansible-playbook azure_configure_aks.yml

Playbook çalıştırılırken aşağıdaki çıkışa benzer sonuçlar gösterilir:

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

Yönetilen AKS kümesini silme

Örnek playbook bir AKS kümesini siler.

Aşağıdaki playbook'u azure_delete_aks.yml olarak kaydedin:

- 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 kullanarak playbook'u çalıştırma

ansible-playbook azure_delete_aks.yml

Playbook çalıştırılırken aşağıdaki çıkışa benzer sonuçlar gösterilir:

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

Sonraki adımlar