Udostępnij za pośrednictwem


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:

  1. 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.
  2. Upewnij się, że masz usługę GitHub, najnowszą wersję interfejsu wiersza polecenia platformy Azure i klienta programu Terraform zainstalowanego na maszynie deweloperskiej.
  3. 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ę:

  1. Otwórz sesję usługi Cloud Shell w przeglądarce.

  2. 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 
    
  3. 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

  1. Utwórz katalog, którego można użyć do przetestowania przykładowego kodu programu Terraform i utworzenia go w bieżącym katalogu.

  2. 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 
      } 
     } 
    }
    
  3. 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.

Następne kroki

Nawiązywanie połączenia z klastrem Kubernetes