Aracılığıyla paylaş


Öğ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 işler. Kubernetes ana makineleri Azure tarafından yönetilir. Yalnızca ajan düğümlerini yönetir ve korursunuz. Yönetilen bir Kubernetes hizmeti olarak AKS ücretsizdir; yalnızca kümelerinizdeki aracı düğümler için ödeme yaparsınız, yönetici düğümler 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, bir kaynak grubu ve bu grup içinde bir 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 myResourceGroup adlı eastus bir kaynak grubunu tanımlar.
  • içindeki tasks ikinci bölüm, kaynak grubu içinde myAKSCluster adlı myResourceGroup 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_versionaz aks get-versions komutunu kullanın.

Ansible-playbook kullanarak playbook'u çalıştırın

ansible-playbook azure_create_aks.yml

Playbook çalıştığında aşağıdaki çıktıya benzer sonuçlar alınabilir.

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ümdeki örnek playbook iki düğümü tanımlar. Bloktaki count değeri değiştirerek agent_pool_profiles 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ırın

ansible-playbook azure_configure_aks.yml

Playbook'un çalıştırılması, aşağıdaki çıktıya benzer sonuçlar gösterir.

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ırın

ansible-playbook azure_delete_aks.yml

Playbook çalıştırıldığında aşağıdakine 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