Freigeben über


Erstellen von Kubernetes-Clustern mit Terraform (Vorschau)

Dieser Artikel beschreibt, wie Sie Kubernetes-Cluster in Azure Local mit Terraform und dem Azure Verified Modul erstellen. Der folgende Workflow wird verwendet:

  • 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 ID: Die Azure Resource Manager-ID des lokalen logischen Netzwerks von Azure, das gemäß 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 mit der Azure CLI mithilfe von az login. Die Authentifizierung mit Azure PowerShell wird nicht unterstützt. Obwohl Sie für Ihre Arbeit mit Terraform das Azure PowerShell-Modul verwenden können, müssen Sie sich daher zunächst bei Azure authentifizieren.

az login 

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. Wie Sie die Objekt-ID der Administratorgruppe finden, erfahren Sie unter Aktivieren der Microsoft Entra-Authentifizierung für Kubernetes-Cluster. Sie können diesem Leitfaden folgen, um sie in Ihrer Azure-Umgebung zu ermitteln.

    module "aks_arc" { 
    # Make sure to use the latest AVM module version
    source = "Azure/avm-res-hybridcontainerservice-provisionedclusterinstance/azurerm" 
    version = "~>0.6"
    
    # 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_workload_identity = false 
    enable_oidc_issuer = false 
    rbac_admin_group_object_ids = ["<Admin_Group_Object_ID>"]
    }
    

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 und Anwenden eines Terraform-Ausführungsplans

Stellen Sie sicher, dass Sie az login ausführen und sich vor diesem Schritt bei Azure authentifizieren, andernfalls schlägt die Anwendung des Terraform-Plans fehl. Führen Sie terraform plan aus, um einen Ausführungsplan zu erstellen, und führen Sie dann terraform apply aus, um die Ausgabedatei auf Ihre Cloudinfrastruktur anzuwenden:

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