Freigeben über


Erstellen von Kubernetes-Clustern mit Terraform (Vorschau)

In diesem Artikel wird beschrieben, wie Kubernetes-Cluster in Azure Local mithilfe von Terraform und dem Azure Verified-Modul erstellt werden. Der Workflow lautet wie folgt:

  • Erstellen Sie ein SSH-Schlüsselpaar.
  • Erstellen Sie einen Kubernetes-Cluster in Azure Local 23H2 mit Terraform. Standardmäßig ist der Cluster mit Azure Arc verbunden.
  • Überprüfen Sie die Bereitstellung, und stellen Sie eine Verbindung mit dem Cluster her.

Wichtig

Diese Vorschaufeatures sind auf Self-Service-, Opt-In-Basis verfügbar. Vorschauversionen werden „wie besehen“ und „wie verfügbar“ bereitgestellt und sind von Service Level Agreements und der Herstellergarantie ausgeschlossen. Azure Kubernetes Service, aktiviert durch Azure Arc Previews, werden teilweise vom Kundensupport auf Best-Effort-Basis abgedeckt.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

  1. Rufen Sie die folgenden Details von Ihrem lokalen Infrastrukturadministrator ab:
    • Azure-Abonnement-ID: die Azure-Abonnement-ID, die Azure Local für die Bereitstellung und Registrierung verwendet.
    • Name oder ID des benutzerdefinierten Standorts: die Azure Resource Manager-ID des benutzerdefinierten Speicherorts. Der benutzerdefinierte Speicherort wird während der Azure Local Cluster-Bereitstellung konfiguriert. Ihr Infrastrukturadministrator sollte Ihnen die Ressourcen-Manager-ID des benutzerdefinierten Speicherorts geben. Dieser Parameter ist erforderlich, um Kubernetes-Cluster zu erstellen. Sie können auch die Ressourcen-Manager-ID verwenden az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv, wenn der Infrastrukturadministrator einen benutzerdefinierten Standortnamen und Ressourcengruppennamen bereitstellt.
    • Logischer Netzwerkname oder die ID: Die Azure Resource Manager-ID des logischen Azure Stack HCI-Netzwerks, das mit diesen Schritten erstellt wurde. Ihr Administrator sollte Ihnen die ID des logischen Netzwerks geben. Dieser Parameter ist erforderlich, um Kubernetes-Cluster zu erstellen. Sie können auch die Azure Resource Manager-ID abrufen az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv , wenn Sie die Ressourcengruppe kennen, in der das logische Netzwerk erstellt wurde.
  2. Stellen Sie sicher, dass Sie GitHub, die neueste Version von Azure CLI und den Terraform-Client auf Ihrem Entwicklungscomputer installiert haben.
  3. Laden Sie Kubectl auf Ihrem Entwicklungscomputer herunter, und installieren Sie es.

Erstellen eines SSH-Schlüsselpaars

Verwenden Sie zum Erstellen eines SSH-Schlüsselpaars (identisch mit Azure AKS) das folgende Verfahren:

  1. Öffnen Sie eine Cloud Shell-Sitzung in Ihrem Browser.

  2. Erstellen Sie ein SSH-Schlüsselpaar mithilfe des az sshkey create command, from the portal, or the ssh-keygen command:

    az sshkey create --name "mySSHKey" --resource-group "myResourceGroup"
    

    or

    ssh-keygen -t rsa -b 4096 
    
  3. Rufen Sie den Wert Ihres öffentlichen Schlüssels aus Azure oder von Ihrem lokalen Computer unter "/.ssh/id_rsa.pub" ab.

Anmelden bei Azure

Terraform unterstützt nur die Authentifizierung bei Azure mithilfe der Azure CLI. Die Authentifizierung mit Azure PowerShell wird nicht unterstützt. Daher müssen Sie sich zuerst bei Azure authentifizieren, während Sie das Azure PowerShell-Modul bei Ihrer Terraform-Arbeit verwenden können.

Implementieren des Terraform-Codes

  1. Erstellen Sie ein Verzeichnis, in dem Sie den Terraform-Beispielcode testen können, und legen Sie es als aktuelles Verzeichnis fest.

  2. Erstellen Sie im selben Verzeichnis eine Datei mit dem Namen providers.tf , und fügen Sie den folgenden Code ein:

    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. Erstellen Sie eine weitere Datei mit dem Namen main.tf , die auf das neueste AKS Arc AVM-Modul verweist, und fügen Sie den folgenden Code ein. Sie können die Beschreibung und Eingabe des Moduls lesen und bei Bedarf optionale Parameter hinzufügen:

    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 = "" 
    }
    

Initialisieren von Terraform

Führen Sie zum Initialisieren der Terraform-Bereitstellung terraform init aus. Stellen Sie sicher, dass Sie das -upgrade Flag verwenden, um die erforderlichen Anbieter-Plug-Ins auf die neueste Version zu aktualisieren:

terraform init -upgrade

Erstellen eines Terraform-Ausführungsplans und Anwenden des Plans

Führen Sie terraform plan to create an execution plan, then run terraform apply to apply the output file to your cloud infrastructure:

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

Der Befehl wird ausgeführt, und es wird ein Erfolg zurückgegeben, nachdem die Ressource erfolgreich bereitgestellt wurde.

Überprüfen der Bereitstellung und Herstellen einer Verbindung mit dem Cluster

Sie können jetzt eine Verbindung mit Ihrem Kubernetes-Cluster herstellen, indem Sie von Ihrem Entwicklungscomputer aus ausgeführt werden az connectedk8s proxy . Sie können auch kubectl verwenden, um den Knoten- und Podstatus anzuzeigen. Führen Sie die gleichen Schritte aus, wie unter "Verbinden mit dem Kubernetes-Cluster" beschrieben.

Nächste Schritte

Herstellen einer Verbindung mit dem Kubernetes-Cluster