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:

  • Schließen Sie die Voraussetzungen ab.
  • Authentifizieren Sie sich mit dem Google Cloud CLI:
    gcloud auth login && \
        gcloud auth application-default login

Benötigte Werte

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.14.1-gke.0
       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.

Optionale Felder

Die obige Datei anthos-gke.yaml zeigt einen typischen Satz von Feldern, die von den meisten Kunden benötigt werden. Die Konfiguration in anthos-gke.yaml unterstützt auch eine Reihe optionaler Felder. Dazu gehören:

  • spec.bootstrapS3Bucket, um einen AWS S3-Bucket für Konfigurationsdaten von Anthos-Cluster auf AWS anzugeben.
  • spec.tags zum Taggen clusterbezogener AWS-Ressourcen
  • spec.securityGroupIDs, um dem Verwaltungscluster zusätzliche Sicherheitsgruppen-IDs zuzuweisen
  • spec.*Volume und die zugehörigen Unterfelder volumeType, iops und kmsKeyARN zum Optimieren von EBS-Volume-Parametern
  • spec.terraform.stateGCSBucket, um einen Google Cloud-Dienst-Bucket für Terraform-Konfigurationsdaten anzugeben

Weitere Informationen zu allen in anthos-gke.yaml unterstützten Feldern finden Sie in der Referenz zum AWS-Verwaltungsdienst.

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 die von außerhalb der AWS-VPC nicht zugegriffen werden kann. Sie haben drei Möglichkeiten, auf Ihren Verwaltungsdienst zuzugreifen:

  • über den AWS Direct Connect-Dienst von Amazon
  • über einen Bastion Host, der Verbindungen zwischen dem Internet und Ihren Anthos-Cluster auf AWS-Subnetzen weiterleitet
  • über ein VPN

Wenn Sie einen Verwaltungsdienst in einer dedizierten VPC erstellen, erstellt Anthos-Cluster auf AWS automatisch einen Bastion Host in einem öffentlichen Subnetz. Wenn Sie eine Verbindung zu Ihrem Verwaltungsdienst über ein VPN oder AWS Direct Connect herstellen, wird dieser Bastion Host nicht benötigt. Führen Sie andernfalls die folgenden Schritte aus, um eine Verbindung zu Ihrem Verwaltungsdienst über den Bastion Host herzustellen:

  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 HTTPS_PROXY=http://localhost:8118 \
      kubectl cluster-info
    

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

Nächste Schritte