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 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ługowej i wymagają aktywnego wyboru. 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, możliwa dzięki wersjom zapoznawczym Azure Arc, jest częściowo objęta wsparciem technicznym na zasadzie najlepszych starań.

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 niestandardowej lokalizacji w usłudze Azure Resource Manager. 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 lokalnej sieci logicznej platformy Azure, która została utworzona zgodnie z tymi krokami. 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

Utwórz parę kluczy SSH na platformie Azure i zapisz plik klucza prywatnego na potrzeby rozwiązywania problemów i zbierania dzienników. Aby uzyskać szczegółowe instrukcje, zobacz Tworzenie i przechowywanie kluczy SSH za pomocą interfejsu wiersza polecenia platformy Azure lub w witrynie Azure Portal.

  1. Otwórz sesję usługi Cloud Shell w przeglądarce internetowej lub uruchom terminal na komputerze lokalnym.

  2. Utwórz parę kluczy SSH przy użyciu polecenia az sshkey create :

    az sshkey create --name "mySSHKey" --resource-group $<resource_group_name>
    

    lub użyj ssh-keygen polecenia :

    ssh-keygen -t rsa -b 4096 
    
  3. Pobierz wartość klucza publicznego z platformy Azure lub z komputera lokalnego w obszarze /.ssh/id_rsa.pub.

Aby uzyskać więcej opcji, możesz postępować zgodnie z instrukcjami Konfigurowanie kluczy SSH dla klastra usługi AKS w celu utworzenia kluczy SSH lub użyć opcji Ogranicz dostęp SSH podczas tworzenia klastra. Aby uzyskać dostęp do węzłów później, zobacz Connect to Windows or Linux worker nodes with SSH (Nawiązywanie połączenia z węzłami roboczymi systemu Windows lub Linux przy użyciu protokołu SSH).

Logowanie się do platformy Azure

Program Terraform obsługuje tylko uwierzytelnianie na platformie Azure za pomocą interfejsu wiersza poleceń Azure CLI z użyciem az login. Uwierzytelnianie przy użyciu programu Azure PowerShell nie jest obsługiwane. W związku z tym pracując z narzędziem Terraform, możesz użyć modułu Azure PowerShell, ale musisz najpierw uwierzytelnić się w usłudze Azure.

az login 

Implementowanie kodu narzędzia Terraform

  1. Utwórz katalog, którego możesz użyć do przetestowania przykładowego kodu Terraform, i zrób z niego swój bieżący katalog.

  2. W tym samym katalogu utwórz plik o nazwie providers.tf i wklej następujący kod. Pamiętaj, aby zastąpić <subscription_ID> element identyfikatorem subskrypcji:

    terraform { 
     required_version = "~> 1.5" 
     required_providers { 
       azapi = { 
         source  = "azure/azapi" 
         version = "~> 2.0" 
       } 
       azurerm = { 
        source  = "hashicorp/azurerm" 
        version = "~> 4.0" 
       } 
      }
     }
    
     provider "azurerm" {
     subscription_id = "<subscription_ID>"
     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. Aby znaleźć identyfikator obiektu grupy administracyjnej, zobacz Włącz uwierzytelnianie Microsoft Entra dla klastrów Kubernetes. Możesz postępować zgodnie z poniższymi wskazówkami, aby znaleźć je w środowisku platformy Azure. Aby włączyć kontrolę dostępu opartą na rolach platformy Azure, zaktualizuj odpowiedni parametr i zobacz Włączanie Kontroli Dostępu Opartej na Rolach platformy Azure dla Autoryzacji Kubernetes w celu zapoznania się z wymaganiami wstępnymi.

    module "aks_arc" { 
    # Make sure to use the latest AVM module version
    source = "Azure/avm-res-hybridcontainerservice-provisionedclusterinstance/azurerm" 
    version = "~>2.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}] 
    ssh_public_key =  "Your_SSH_Key"
    
    # Optional parameters, update them as needed
    enable_azure_rbac = false
    enable_workload_identity = false 
    enable_oidc_issuer = false 
    rbac_admin_group_object_ids = ["<Admin_Group_Object_ID>"]
    }
    

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

Utwórz plan wykonania w Terraformie i zastosuj

Przed tym krokiem upewnij się, że uruchamiasz az login i uwierzytelniasz się na platformie Azure. W przeciwnym razie zastosowanie planu programu Terraform kończy się niepowodzeniem. Uruchom terraform plan, aby utworzyć plan wykonania, a następnie uruchom terraform apply, aby zastosować plik wyjściowy do infrastruktury chmury:

terraform plan -out main.tfplan 
terraform apply main.tfplan 

Polecenie jest wykonywane, a następnie zwraca sukces po pomyślnym udostępnieniu 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ć kubectl, aby wyświetlić stan węzła i podu. 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