Självstudie: Konfigurera Azure Kubernetes Service-kluster (AKS) i Azure med Ansible

Viktigt!

Ansible 2.8 (eller senare) krävs för att köra exempelspelböckerna i den här artikeln.

Azure Kubernetes Service (AKS) gör det enkelt att distribuera ett hanterat Kubernetes-kluster i Azure. AKS minskar komplexiteten och arbetet med att hantera Kubernetes genom att avlasta en stor del av det ansvaret till Azure. Som Kubernetes-värdtjänst hanterar Azure viktiga uppgifter som övervakning av hälsotillstånd och underhåll åt dig. Kubernetes-huvudservrar hanteras av Azure. Du kan endast hantera och underhålla agentnoderna. Som en hanterad Kubernetes-tjänst är AKS kostnadsfri – du betalar bara för agentnoderna i dina kluster. inte för mästarna.

AKS kan konfigureras för att använda Microsoft Entra-ID för användarautentisering. När du har konfigurerat använder du din Microsoft Entra-autentiseringstoken för att logga in på AKS-klustret. RBAC kan baseras på en användares identitets- eller kataloggruppsmedlemskap.

I den här artikeln kan du se hur du:

  • Skapa ett AKS-kluster
  • Konfigurera ett AKS-kluster

Förutsättningar

  • Azure-prenumeration: Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
  • Azure-tjänstens huvudnamn: Skapa ett huvudnamn för tjänsten och anteckna följande värden: appId, displayName, lösenord och klientorganisation.

Skapa ett hanterat AKS-kluster

Exempelspelboken skapar en resursgrupp och ett AKS-kluster i resursgruppen.

Spara följande spelbok som 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

Se följande anteckningar innan du kör spelboken:

  • Det första avsnittet i tasks definierar en resursgrupp med namnet myResourceGroupeastus platsen.
  • Det andra avsnittet i tasks definierar ett AKS-kluster med namnet myAKSCluster i myResourceGroup resursgruppen.
  • För platshållaren your_ssh_key anger du din offentliga RSA-nyckel i enradigt format – som ska börja med ”ssh-rsa” (utan citattecken).
  • aks_version Använd kommandot az aks get-versions för platshållaren.

Kör spelboken med ansible-playbook

ansible-playbook azure_create_aks.yml

När du kör spelboken visas resultat som liknar följande utdata:

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

Skala AKS-noder

Exempelspelboken i föregående avsnitt definierar två noder. Du justerar antalet noder genom att count ändra värdet i agent_pool_profiles blocket.

Spara följande spelbok som 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

Se följande anteckningar innan du kör spelboken:

  • För platshållaren your_ssh_key anger du din offentliga RSA-nyckel i enradigt format – som ska börja med ”ssh-rsa” (utan citattecken).

Kör spelboken med ansible-playbook

ansible-playbook azure_configure_aks.yml

När du kör spelboken visas resultat som liknar följande utdata:

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

Ta bort ett hanterat AKS-kluster

Exempelspelboken tar bort ett AKS-kluster.

Spara följande spelbok som 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

Kör spelboken med ansible-playbook

ansible-playbook azure_delete_aks.yml

När du kör spelboken visas resultat som liknar följande utdata:

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

Nästa steg