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.
Zainstaluj oprogramowanie Ansible: Wykonaj jedną z następujących opcji:
- Instalowanie i konfigurowanie rozwiązania Ansible na maszynie wirtualnej z systemem Linux
- Skonfiguruj usługę Azure Cloud Shell i — jeśli nie masz dostępu do maszyny wirtualnej z systemem Linux — utwórz maszynę wirtualną za pomocą rozwiązania Ansible.
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 nazwiemyResourceGroup
w obrębieeastus
lokalizacji. - Druga sekcja w ramach
tasks
definiuje klaster usługi AKS o nazwiemyAKSCluster
wmyResourceGroup
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_version
uż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