Delen via


Zelfstudie: AKS-clusters (Azure Kubernetes Service) configureren in Azure met behulp van Ansible

Belangrijk

Ansible 2.8 (of hoger) is vereist om de voorbeeldplaybooks in dit artikel uit te voeren.

Met Azure Kubernetes Service (AKS) kunt u eenvoudig een beheerd Kubernetes-cluster implementeren in Azure. AKS verkleint de complexiteit en de operationele overhead die gepaard gaan met het beheer van Kubernetes door veel van deze taken naar Azure over te hevelen. Azure handelt als een gehoste Kubernetes-service cruciale taken voor u af zoals statuscontrole en onderhoud. De Kubernetes-modellen worden beheerd door Azure. U beheert en onderhoudt alleen de agentknooppunten. Als beheerde Kubernetes-service is AKS gratis. U betaalt alleen voor de agentknooppunten binnen uw clusters; niet voor de masters.

AKS kan worden geconfigureerd voor het gebruik van Microsoft Entra-id voor gebruikersverificatie. Zodra dit is geconfigureerd, gebruikt u uw Microsoft Entra-verificatietoken om u aan te melden bij het AKS-cluster. De RBAC kan zijn gebaseerd op de identiteit of het lidmaatschap van een directorygroep van een gebruiker.

In dit artikel leert u het volgende:

  • Een AKS-cluster maken
  • Een AKS-cluster configureren

Vereisten

  • Azure-abonnement: als u nog geen abonnement op Azure hebt, maakt u een gratis Azure-account aan voordat u begint.

Een beheerd AKS-cluster maken

Het voorbeeldplaybook maakt een resourcegroep en een AKS-cluster binnen de resourcegroep.

Sla het volgende playbook op als 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

Zie de volgende notities voordat u het playbook uitvoert:

  • De eerste sectie binnen tasks definieert een resourcegroep met de naam myResourceGroup binnen de eastus locatie.
  • De tweede sectie binnen tasks definieert een AKS-cluster met de naam myAKSCluster binnen de myResourceGroup resourcegroep.
  • Voor de tijdelijke aanduiding your_ssh_key voert u uw openbare RSA-sleutel in in de indeling met één regel, beginnend met 'ssh-rsa' (zonder aanhalingstekens).
  • Gebruik voor de aks_version tijdelijke aanduiding de opdracht az aks get-versions .

Het playbook uitvoeren met ansible-playbook

ansible-playbook azure_create_aks.yml

Als u het playbook uitvoert, ziet u resultaten die vergelijkbaar zijn met de volgende uitvoer:

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-knooppunten schalen

Het voorbeeld-playbook in de vorige sectie definieert twee knooppunten. U past het aantal knooppunten aan door de count waarde in het agent_pool_profiles blok te wijzigen.

Sla het volgende playbook op als 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

Zie de volgende notities voordat u het playbook uitvoert:

  • Voor de tijdelijke aanduiding your_ssh_key voert u uw openbare RSA-sleutel in in de indeling met één regel, beginnend met 'ssh-rsa' (zonder aanhalingstekens).

Het playbook uitvoeren met ansible-playbook

ansible-playbook azure_configure_aks.yml

Als u het playbook uitvoert, ziet u resultaten die vergelijkbaar zijn met de volgende uitvoer:

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

Wis een beheerd AKS-cluster

In het voorbeeldplaybook wordt een AKS-cluster verwijderd.

Sla het volgende playbook op als 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

Het playbook uitvoeren met ansible-playbook

ansible-playbook azure_delete_aks.yml

Als u het playbook uitvoert, ziet u resultaten die vergelijkbaar zijn met de volgende uitvoer:

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

Volgende stappen