Eine neue Version von Anthos-Cluster in AWS (GKE in AWS) wurde am 6. April veröffentlicht. Weitere Informationen siehe Versionshinweise.

Verwaltungsdienst installieren

Ein Verwaltungsdienst erstellt, aktualisiert und löscht Cluster von Anthos GKE on AWS (GKE on AWS). In diesem Thema wird erläutert, wie Sie einen Verwaltungsdienst innerhalb einer dedizierten AWS Virtual Private Cloud (VPC) erstellen. Wenn Sie bereits eine VPC haben, finden Sie entsprechende Informationen unter In vorhandene Infrastruktur einbinden.

Hinweis

Bevor Sie Anthos-Cluster auf AWS verwenden, führen Sie die folgenden Aufgaben aus:

  • Sie haben dafür gesorgt, dass die Voraussetzungen erfüllt sind.
  • Authentifizieren Sie sich mit dem gcloud-Befehlszeilentool.
    gcloud auth login &&\
        gcloud auth application-default login

Benötigte Elemente

Für dieses Thema benötigen Sie Folgendes aus den Voraussetzungen:

  • KMS-Schlüssel-ARNs oder Aliasse
  • Google Cloud-Dienstkontoschlüssel
  • Google Cloud-Projekt
  • Installierte und konfigurierte aws-, terraform- und anthos-gke-Befehlszeilentools
  • Die AWS-Region und Verfügbarkeitszonen, in denen Anthos-Cluster on AWS Ihren Verwaltungscluster erstellt.

Verwaltungsdienst konfigurieren

Sie konfigurieren den Verwaltungsdienst von Anthos-Cluster on AWS mit einer YAML-Datei. Die Datei entspricht einer benutzerdefinierten Kubernetes-Ressourcenkonfiguration, ist jedoch keine Darstellung einer Ressource.

  1. Öffnen Sie ein Terminal auf dem Computer, auf dem Sie die Befehlszeilentools aws, terraform und anthos-gke installiert und konfiguriert haben.

  2. Erstellen Sie ein leeres Verzeichnis für Ihre Konfiguration von Anthos-Cluster on AWS und wechseln Sie in dieses Verzeichnis. In der Dokumentation von Anthos-Cluster on AWS wird anthos-aws als Beispielkonfigurationsverzeichnis verwendet.

    mkdir anthos-aws && \
    cd anthos-aws
    
  3. Erstellen Sie in einem Texteditor die Datei anthos-gke.yaml. Fügen Sie den folgenden Inhalt in die Datei ein.

     apiVersion: multicloud.cluster.gke.io/v1
     kind: AWSManagementService
     metadata:
       name: management
     spec:
       version: aws-1.7.1-gke.1
       region: AWS_REGION
       authentication:
         awsIAM:
           adminIdentityARNs:
           - ADMIN_AWS_IAM_ARN
       kmsKeyARN: KMS_KEY_ARN
       databaseEncryption:
         kmsKeyARN: DATABASE_KMS_KEY_ARN
       googleCloud:
         projectID: GCP_PROJECT_ID
         serviceAccountKeys:
           managementService: MANAGEMENT_KEY_PATH
           connectAgent: HUB_KEY_PATH
           node: NODE_KEY_PATH
       dedicatedVPC:
         vpcCIDRBlock: VPC_CIDR_BLOCK
         availabilityZones:
         - ZONE_1
         - ZONE_2
         - ZONE_3
         privateSubnetCIDRBlocks:
         - PRIVATE_CIDR_BLOCK_1
         - PRIVATE_CIDR_BLOCK_2
         - PRIVATE_CIDR_BLOCK_3
         publicSubnetCIDRBlocks:
         - PUBLIC_CIDR_BLOCK_1
         - PUBLIC_CIDR_BLOCK_2
         - PUBLIC_CIDR_BLOCK_3
       # Optional
       bastionHost:
         allowedSSHCIDRBlocks:
         - SSH_CIDR_BLOCK
       proxy: PROXY_JSON_FILE # optional
    

    Ersetzen Sie die folgenden Werte:

    • AWS_REGION durch die AWS-Region, in der Sie den Cluster ausführen möchten.

    • ADMIN_AWS_IAM_ARN durch den Amazon-Ressourcennamen des Nutzers mit AWS-IAM-Berechtigungen zum Erstellen eines Verwaltungsdienstes. Führen Sie aws sts get-caller-identity aus, um den ARN des Nutzers für das aws-Tool zu authentifizieren.

    • KMS_KEY_ARN durch den Amazon-Ressourcennamen des AWS-KMS-Schlüssels oder KMS-Schlüsselalias, der die Daten Ihres Verwaltungsdienstes während der Erstellung schützt. Beispiel: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. Wenn Sie den ARN nicht haben, führen Sie aws kms list-keys aus, um eine Liste der ARNs abzurufen.

    • DATABASE_KMS_KEY_ARN durch den Amazon-Ressourcennamen des AWS KMS-Schlüssels oder Schlüsselalias, der die etcd-Datenbanken Ihres Verwaltungsdienstes schützt, zum Beispiel: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    • GCP_PROJECT_ID durch die ID des Google Cloud-Projekts, das Ihre Anthos-Umgebung hostet.

    • MANAGEMENT_KEY_PATH durch den Speicherort Ihres Dienstkontoschlüssels für die Google Cloud-Verwaltung.

    • HUB_KEY_PATH durch den Speicherort Ihres Dienstkontoschlüssels für Google Cloud Connect.

    • NODE_KEY_PATH mit dem Standort Ihres Dienstkontoschlüssel für den Anthos-Cluster on AWS-Knoten.

    • VPC_CIDR_BLOCK mit dem gesamten CIDR-Bereich für die von anthos-gke erstellte AWS-VPC. Beispiel: 10.0.0.0/16. Weitere Informationen finden Sie unter VPC- und Subnetz-Grundlagen in der AWS-Dokumentation.

    • ZONE_1, ZONE_2 und ZONE_3 durch die AWS-EC2-Verfügbarkeitszonen, in denen Sie Knoten und Steuerungsebenen erstellen möchten. Anthos-Cluster on AWS erstellt Subnetze in diesen Zonen. Wenn Sie anthos-gke zum Generieren der Konfiguration für einen Nutzercluster verwenden, erstellt Anthos-Cluster on AWS Steuerungsebenen und Knotenpools in diesen Verfügbarkeitszonen, zum Beispiel: us-east-1a.
      Wenn Sie anthos-gke verwenden möchten, um Nutzercluster nur in einer Zone zu erstellen, können Sie ZONE_2 und ZONE_3 entfernen.

    • PRIVATE_CIDR_BLOCK_1, PRIVATE_CIDR_BLOCK_2 und PRIVATE_CIDR_BLOCK_3 durch den CIDR-Block für Ihr privates Subnetz. Anthos-Cluster on AWS-Komponenten wie der Verwaltungsdienst werden im privaten Subnetz ausgeführt. Dieses Subnetz muss sich innerhalb des in vpcCIDRBlock angegebenen CIDR-Bereichs der VPC befinden. Sie benötigen ein Subnetz für jede Verfügbarkeitszone, zum Beispiel: 10.0.1.0/24.

    • PUBLIC_CIDR_BLOCK_1, PUBLIC_CIDR_BLOCK_2 und PUBLIC_CIDR_BLOCK_3 durch die CIDR-Blöcke für Ihr öffentliches Subnetz. Sie benötigen ein Subnetz für jede Verfügbarkeitszone. Das öffentliche Subnetz stellt Clusterdienste wie Load-Balancer für die Sicherheits- und Adressbereiche bereit, die in den Netzwerk-ACLs und Sicherheitsgruppen von AWS angegeben werden., zum Beispiel: 10.0.100.0/24.

    • SSH_CIDR_BLOCK durch den CIDR-Block, der eingehende SSH-Verbindungen zu Ihrem Bastion Host ermöglicht, zum Beipsiel: 203.0.113.0/24. Wenn Sie SSH von jeder IP-Adresse zulassen möchten, verwenden Sie 0.0.0.0/0.

    • Optional: PROXY_JSON_FILE durch den relativen Pfad der Proxy-Konfigurationsdatei. Wenn Sie keinen Proxy verwenden, löschen Sie diese Zeile.

  4. Führen Sie anthos-gke aws management init aus, um eine anthos-gke.status.yaml-Datei mit zusätzlicher Konfiguration zu generieren. Mit dem Befehl init wird auch das Objekt AWSManagementService in der Datei anthos-gke.yaml validiert.

    anthos-gke aws management init
    
  5. Führen Sie anthos-gke aws management apply aus, um den Verwaltungsdienst in AWS zu erstellen.

    anthos-gke aws management apply
    

    Die Verarbeitung des Befehls anthos-gke aws management apply kann bis zu zehn Minuten dauern. Nach Ausführen des Befehls wird Ihr Verwaltungsdienst in AWS ausgeführt.

Verbindung zum Verwaltungsdienst herstellen

Als Nächstes stellen Sie mit anthos-gke eine Verbindung zu Ihren Anthos-Clustern im AWS-Verwaltungsdienst her und authentifizieren diese.

Wenn Sie einen Verwaltungsdienst mithilfe der Standardeinstellungen erstellen, hat die Steuerungsebene eine private IP-Adresse. Auf diese IP-Adresse kann von außerhalb der AWS-VPC nicht zugegriffen werden. Sie können auf den Verwaltungsdienst mit einem Bastion-Host oder über eine andere Verbindung zur AWS VPC wie ein VPN oder AWS Direct Connect zugreifen.

Wenn Sie einen Verwaltungsdienst in einer dedizierten VPC erstellen, enthält Anthos-Cluster on AWS einen Bastion-Host in einem öffentlichen Subnetz.

So stellen Sie eine Verbindung zu Ihrem Verwaltungsdienst her:

  1. Generieren Sie mit dem terraform-Tool das Skript, mit dem ein SSH-Tunnel zum Bastion Host geöffnet wird. Wählen Sie Ihre Terraform-Version aus und führen Sie dann die folgenden Befehle aus:

    Terraform 0.12, 0.13

    terraform output bastion_tunnel > bastion-tunnel.sh
    chmod 755 bastion-tunnel.sh
    

    Terraform 0.14.3+

    terraform output -raw bastion_tunnel > bastion-tunnel.sh
    chmod 755 bastion-tunnel.sh
    

    Terraform erstellt das Skript bastion-tunnel.sh, das auf den SSH-Schlüssel des Bastion Host unter ~/.ssh/anthos-gke verweist.

  2. Führen Sie das Skript bastion-tunnel.sh aus, um den Tunnel zu öffnen. Der Tunnel sorgt für eine Weiterleitung von localhost:8118 an den Bastion Host.

    Führen Sie den folgenden Befehl aus, um einen Tunnel zum Bastion Host zu öffnen:

    ./bastion-tunnel.sh -N -4
    

    In diesem Fenster werden Nachrichten aus dem SSH-Tunnel angezeigt. Wenn die Verbindung geschlossen werden kann, beenden Sie den Vorgang mit Strg + C oder durch Schließen des Fensters.

  3. Öffnen Sie ein neues Terminal und wechseln Sie in das Verzeichnis mit Ihren Anthos-Clustern in der AWS-Konfiguration.

  4. Generieren Sie eine kubeconfig für die Authentifizierung. Verwenden Sie anthos-gke, um Anmeldedaten an Ihre in ~/.kube/config gespeicherte Konfiguration anzuhängen.

    anthos-gke aws management get-credentials
    
  5. Prüfen Sie, ob Sie mit kubectl eine Verbindung zum Verwaltungsdienst herstellen können.

    env HTTP_PROXY=http://localhost:8118 \
      kubectl cluster-info
    

    Die Ausgabe enthält die URL für den API-Server des Verwaltungsdiensts.

Nächste Schritte