Kurz: Konfigurace clusterů Azure Kubernetes Service (AKS) v Azure pomocí Ansible
Důležité
K spuštění ukázkových playbooků v tomto článku se vyžaduje Ansible 2.8 (nebo novější).
Azure Kubernetes Service (AKS) usnadňuje nasazení spravovaného clusteru Kubernetes v Azure. AKS zjednodušuje správu Kubernetes a snižuje provozní režii s tím spojenou díky přenášení většiny zodpovědnosti na Azure. Jako hostovaná služba Kubernetes se za vás Azure stará o důležité úlohy, jako je monitorování stavu a údržba. Hlavní servery Kubernetes spravuje Azure. Pouze spravujete a udržujete uzly agentů. Jako spravovaná služba Kubernetes je AKS bezplatná – platíte jenom za uzly agentů v rámci vašich clusterů; ne pro předlohy.
AKS je možné nakonfigurovat tak, aby pro ověřování uživatelů používalo ID Microsoft Entra. Po nakonfigurování se pomocí ověřovacího tokenu Microsoft Entra přihlásíte ke clusteru AKS. Řízení přístupu na základě role může být založeno na identitě uživatele nebo členství ve skupině adresářů.
V tomto článku získáte informace o těchto tématech:
- Vytvoření clusteru AKS
- Konfigurace clusteru AKS
Požadavky
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
- Instanční objekt Azure: Vytvořte instanční objekt a poznamenejte si následující hodnoty: appId, displayName, password a tenant.
Nainstalujte Ansible: Proveďte jednu z následujících možností:
- Instalace a konfigurace Ansible na virtuálním počítači s Linuxem
- Nakonfigurujte Azure Cloud Shell a – pokud nemáte přístup k virtuálnímu počítači s Linuxem – vytvořte virtuální počítač pomocí Ansible.
Vytvoření spravovaného clusteru AKS
Ukázkový playbook vytvoří skupinu prostředků a cluster AKS v rámci skupiny prostředků.
Uložte následující ukázkový playbook 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
Před spuštěním playbooku si přečtěte následující poznámky:
- První část v rámci
tasks
definuje skupinu prostředků pojmenovanoumyResourceGroup
eastus
v rámci umístění. - Druhá část v rámci
tasks
definuje cluster AKS pojmenovanýmyAKSCluster
myResourceGroup
v rámci skupiny prostředků. your_ssh_key
Jako zástupný symbol zadejte veřejný klíč RSA v jednořádkovém formátu – počínaje "ssh-rsa" (bez uvozovek).aks_version
Pro zástupný symbol použijte příkaz az aks get-versions.
Spuštění playbooku pomocí ansible-playbooku
ansible-playbook azure_create_aks.yml
Spuštění playbooku zobrazuje výsledky podobné následujícímu výstupu:
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
Škálování uzlů AKS
Ukázkový playbook v předchozí části definuje dva uzly. Počet uzlů upravíte úpravou count
hodnoty v agent_pool_profiles
bloku.
Uložte následující ukázkový playbook 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
Před spuštěním playbooku si přečtěte následující poznámky:
your_ssh_key
Jako zástupný symbol zadejte veřejný klíč RSA v jednořádkovém formátu – počínaje "ssh-rsa" (bez uvozovek).
Spuštění playbooku pomocí ansible-playbooku
ansible-playbook azure_configure_aks.yml
Spuštění playbooku zobrazuje výsledky podobné následujícímu výstupu:
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
Odstranění spravovaného clusteru AKS
Ukázkový playbook odstraní cluster AKS.
Uložte následující ukázkový playbook 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
Spuštění playbooku pomocí ansible-playbooku
ansible-playbook azure_delete_aks.yml
Spuštění playbooku zobrazuje výsledky podobné následujícímu výstupu:
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