Tworzenie klastrów Kubernetes przy użyciu narzędzia Terraform (wersja zapoznawcza)
W tym artykule opisano sposób tworzenia klastrów Kubernetes w usłudze Azure Local przy użyciu narzędzia Terraform i modułu zweryfikowanego platformy Azure. Przepływ pracy wygląda następująco:
- Utwórz parę kluczy SSH.
- Utwórz klaster Kubernetes na platformie Azure Local 23H2 przy użyciu narzędzia Terraform. Domyślnie klaster jest połączony z usługą Azure Arc.
- Zweryfikuj wdrożenie i połącz się z klastrem.
Ważne
Te funkcje w wersji zapoznawczej są dostępne na zasadzie samoobsługi. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Usługa Azure Kubernetes Service włączona przez wersje zapoznawcze usługi Azure Arc jest częściowo objęta pomocą techniczną w oparciu o najlepsze wysiłki.
Zanim rozpoczniesz
Przed rozpoczęciem upewnij się, że masz następujące wymagania wstępne:
- Uzyskaj następujące informacje od administratora infrastruktury lokalnej:
- Identyfikator subskrypcji platformy Azure: identyfikator subskrypcji platformy Azure, który używa usługi Azure Local do wdrożenia i rejestracji.
- Nazwa lub identyfikator lokalizacji niestandardowej: identyfikator usługi Azure Resource Manager lokalizacji niestandardowej. Lokalizacja niestandardowa jest konfigurowana podczas wdrażania klastra lokalnego platformy Azure. Administrator infrastruktury powinien podać identyfikator usługi Resource Manager lokalizacji niestandardowej. Ten parametr jest wymagany do tworzenia klastrów Kubernetes. Identyfikator usługi Resource Manager można również uzyskać przy użyciu polecenia
az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv
, jeśli administrator infrastruktury udostępnia niestandardową nazwę lokalizacji i nazwę grupy zasobów. - Nazwa lub identyfikator sieci logicznej: identyfikator usługi Azure Resource Manager sieci logicznej Azure Stack HCI, która została utworzona, wykonując następujące kroki. Administrator powinien podać identyfikator sieci logicznej. Ten parametr jest wymagany w celu utworzenia klastrów Kubernetes. Identyfikator usługi Azure Resource Manager można również uzyskać przy użyciu polecenia
az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv
, jeśli znasz grupę zasobów, w której została utworzona sieć logiczna.
- Upewnij się, że masz usługę GitHub, najnowszą wersję interfejsu wiersza polecenia platformy Azure i klienta programu Terraform zainstalowanego na maszynie deweloperskiej.
- Pobierz i zainstaluj narzędzie kubectl na maszynie deweloperów.
Tworzenie pary kluczy SSH
Aby utworzyć parę kluczy SSH (taką samą jak usługa Azure AKS), wykonaj następującą procedurę:
Otwórz sesję usługi Cloud Shell w przeglądarce.
Utwórz parę kluczy SSH przy użyciu polecenia az sshkey create z poziomu portalu lub
ssh-keygen
polecenia:az sshkey create --name "mySSHKey" --resource-group "myResourceGroup"
lub
ssh-keygen -t rsa -b 4096
Pobierz wartość klucza publicznego z platformy Azure lub z komputera lokalnego w obszarze /.ssh/id_rsa.pub.
Logowanie się do platformy Azure
Narzędzie Terraform obsługuje tylko uwierzytelnianie na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure. Uwierzytelnianie przy użyciu programu Azure PowerShell nie jest obsługiwane. W związku z tym podczas wykonywania pracy narzędzia Terraform możesz użyć modułu Azure PowerShell, ale musisz najpierw uwierzytelnić się na platformie Azure.
Implementowanie kodu narzędzia Terraform
Utwórz katalog, którego można użyć do przetestowania przykładowego kodu programu Terraform i utworzenia go w bieżącym katalogu.
W tym samym katalogu utwórz plik o nazwie providers.tf i wklej następujący kod:
terraform { required_version = "~> 1.5" required_providers { azapi = { source = "azure/azapi" version = "~> 1.13" } azurerm = { source = "hashicorp/azurerm" version = "~> 3.74" } } } provider "azurerm" { features { resource_group { prevent_deletion_if_contains_resources = false } } }
Utwórz inny plik o nazwie main.tf wskazujący najnowszy moduł AVM usługi AKS Arc i wstaw następujący kod. Możesz przeczytać opis i dane wejściowe modułu oraz dodać opcjonalne parametry zgodnie z potrzebami:
module "aks_arc" { # Make sure to use the latest AVM module version source = "Azure/avm-res-hybridcontainerservice-provisionedclusterinstance/azurerm" version = "0.5.0" # Make sure to provide all required parameters resource_group_id = "<Resource_Group>" location = "<Region>" name = "<Cluster_Name>" logical_network_id = "<LNet_ID>" custom_location_id = "<CustomLocation_ID>" agent_pool_profiles = [{count=1}] # Optional parameters ssh_public_key = "Your_SSH_Key" enable_workload_identity = true enable_oidc_issuer = true rbac_admin_group_object_ids = "" }
Inicjowanie narzędzia Terraform
Uruchom polecenie terraform init
, aby zainicjować wdrożenie programu Terraform. Pamiętaj, aby uaktualnić niezbędne wtyczki dostawcy do najnowszej wersji za pomocą -upgrade
flagi:
terraform init -upgrade
Tworzenie planu wykonania programu Terraform i stosowanie planu
Uruchom plan terraform, aby utworzyć plan wykonania, a następnie uruchom narzędzie terraform zastosuj, aby zastosować plik wyjściowy do infrastruktury chmury:
terraform plan -out main.tfplan
terraform apply main.tfplan
Polecenie jest wykonywane, a następnie zwraca powodzenie po pomyślnym aprowizacji zasobu.
Weryfikowanie wdrożenia i nawiązywanie połączenia z klastrem
Teraz możesz nawiązać połączenie z klastrem Kubernetes, uruchamiając polecenie az connectedk8s proxy
na komputerze deweloperskim. Możesz również użyć narzędzia kubectl , aby wyświetlić stan węzła i zasobnika. Wykonaj te same kroki, co opisano w temacie Nawiązywanie połączenia z klastrem Kubernetes.