Udostępnij za pośrednictwem


Samouczek: konfigurowanie klastrów usługi Azure Kubernetes Service (AKS) na platformie Azure przy użyciu rozwiązania Ansible

Ważne

Rozwiązanie Ansible w wersji 2.8 (lub nowszej) jest wymagane do uruchomienia przykładowych podręczników w tym artykule.

Usługa Azure Kubernetes Service (AKS) ułatwia wdrażanie zarządzanego klastra Kubernetes na platformie Azure. Usługa AKS zmniejsza złożoność i nakłady operacyjne związane z zarządzaniem rozwiązaniem Kubernetes, przenosząc znaczną część tej odpowiedzialności na platformę Azure. Jako hostowana usługa Kubernetes, platforma Azure obsługuje krytyczne zadania, takie jak monitorowanie kondycji i konserwacja. Wzorce rozwiązania Kubernetes są zarządzane przez platformę Azure. Zarządzasz tylko węzłami agentów i obsługujesz je. Jako zarządzana usługa Kubernetes usługa AKS jest bezpłatna — płacisz tylko za węzły agenta w klastrach; nie dla mistrzów.

Usługę AKS można skonfigurować do używania identyfikatora Entra firmy Microsoft do uwierzytelniania użytkownika. Po skonfigurowaniu token uwierzytelniania entra firmy Microsoft jest używany do logowania się do klastra usługi AKS. Kontrola dostępu oparta na rolach może być oparta na tożsamości użytkownika lub członkostwie w grupie katalogów.

W tym artykule omówiono sposób wykonywania następujących zadań:

  • Tworzenie klastra AKS
  • Konfigurowanie klastra usługi AKS

Wymagania wstępne

  • Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
  • Jednostka usługi platformy Azure: Utwórz jednostkę usługi, zanotuj następujące wartości: appId, displayName, password i tenant.

Tworzenie zarządzanego klastra usługi AKS

Przykładowy podręcznik tworzy grupę zasobów i klaster AKS w grupie zasobów.

Zapisz następujący podręcznik 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

Przed uruchomieniem podręcznika zapoznaj się z następującymi uwagami:

  • Pierwsza sekcja w ramach tasks definiuje grupę zasobów o nazwie myResourceGroup w obrębie eastus lokalizacji.
  • Druga sekcja w ramach tasks definiuje klaster usługi AKS o nazwie myAKSCluster w myResourceGroup grupie zasobów.
  • Dla symbolu zastępczego your_ssh_key wprowadź swój klucz publiczny RSA w formacie jednowierszowym — rozpoczynając od „ssh-rsa” (bez cudzysłowu).
  • W przypadku symbolu zastępczego aks_versionużyj polecenia az aks get-versions .

Uruchamianie podręcznika przy użyciu podręcznika ansible-playbook

ansible-playbook azure_create_aks.yml

Uruchomienie podręcznika powoduje wyświetlenie wyników podobnych do następujących danych wyjściowych:

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

Skalowanie węzłów usługi AKS

Przykładowy podręcznik w poprzedniej sekcji definiuje dwa węzły. Liczbę węzłów można dostosować, modyfikując count wartość w agent_pool_profiles bloku.

Zapisz następujący podręcznik 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

Przed uruchomieniem podręcznika zapoznaj się z następującymi uwagami:

  • Dla symbolu zastępczego your_ssh_key wprowadź swój klucz publiczny RSA w formacie jednowierszowym — rozpoczynając od „ssh-rsa” (bez cudzysłowu).

Uruchamianie podręcznika przy użyciu podręcznika ansible-playbook

ansible-playbook azure_configure_aks.yml

Uruchomienie podręcznika powoduje wyświetlenie wyników podobnych do następujących danych wyjściowych:

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

Usuwanie zarządzanego klastra usługi AKS

Przykładowy podręcznik usuwa klaster usługi AKS.

Zapisz następujący podręcznik 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

Uruchamianie podręcznika przy użyciu podręcznika ansible-playbook

ansible-playbook azure_delete_aks.yml

Uruchomienie podręcznika powoduje wyświetlenie wyników podobnych do następujących danych wyjściowych:

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

Następne kroki