Proxy mit Anthos-Clustern in AWS verwenden

In diesem Thema wird beschrieben, wie Sie Traffic von den Anthos-Clustern auf den verwalteten Dienst von AWS (GKE on AWS) leiten und über einen HTTP-/HTTPS-Proxy verbinden.

Anthos-Cluster auf AWS benötigen Internetzugriff aus folgenden Gründen:

  • Der Verwaltungsdienst registriert Nutzercluster mit Connect.
  • Nutzercluster führen den Connect Agent aus.
  • Alle Verwaltungsdienstknoten und Nutzerclusterknoten laden Images aus Container Registry herunter.

Sie können diesen Traffic über einen HTTP- oder HTTPS-Proxy weiterleiten. Ab Anthos-Cluster auf AWS 1.8 können Sie einzelne Proxyeinstellungen für Ihren Verwaltungsdienst und jeden Ihrer Cluster konfigurieren. Weitere Informationen zum Ändern der Proxyeinstellungen finden Sie unter Clusterproxy-Einstellungen ändern.

Proxyeinstellungen werden in einer JSON-Datei deklariert, auf die in anthos-gke.yaml verwiesen wird.

Vorbereitung

Bevor Sie Anthos-Cluster auf AWS für die Verwendung eines Proxys konfigurieren, müssen Sie AWS-VPC-Endpunkte aktivieren, eine Sicherheitsgruppe für den Proxy definieren und ausgehende Verbindungen zu bestimmten Google Cloud-Diensten zulassen.

Um einen HTTP-Proxy verwenden zu können, müssen Ihre Nutzercluster mindestens Kubernetes 1.17 ausführen.

VPC-Endpunkte aktivieren

Bevor Sie einen Proxy konfigurieren, müssen Sie VPC-Endpunkte für Ihre Installation von Anthos-Cluster auf AWS erstellen. Über VPC-Endpunkte können Ressourcen in privaten Subnetzen ohne öffentlichen Internetzugang auf AWS-Dienste zugreifen.

In der folgenden Tabelle sind die AWS-Dienste aufgeführt, für die Anthos-Cluster auf AWS VPC-Endpunkte benötigt, sowie der Endpunkttyp und die Sicherheitsgruppen für jeden Anthos-Cluster in der AWS-Komponente, die Zugriff auf den Endpunkt erfordert.

Dienst Endpunkttyp Sicherheitsgruppen
Automatische Skalierung Benutzeroberfläche Verwaltung, Steuerungsebene, Knotenpools
EC2 Benutzeroberfläche Verwaltung, Steuerungsebene, Knotenpools
Lastenausgleich Benutzeroberfläche Verwaltung, Steuerungsebene, Knotenpools
Key Management Service Benutzeroberfläche Verwaltung, Steuerungsebene, Knotenpools
S3 Gateway Verwaltung, Steuerungsebene, Knotenpools
Security Token Service (STS) Schnittstelle Verwaltung, Steuerungsebene, Knotenpools

Sie können Endpunkte über die AWS-VPC-Konsole erstellen. Die Optionen, die Sie beim Erstellen von VPC-Endpunkten festlegen, sind von Ihrer VPC-Konfiguration abhängig.

Sicherheitsgruppe definieren

Die Komponenten für Anthos-Cluster auf AWS müssen eine Verbindung zum Proxyserver herstellen können. Erstellen oder suchen Sie eine AWS-Sicherheitsgruppe, die ausgehende Verbindungen zu Ihrem Proxyserver zulässt. Die Sicherheitsgruppe sollte ausgehenden Zugriff von Ihren Verwaltungs-, Steuerungsebenen- und Knotenpool-Sicherheitsgruppen auf die Proxy-Adresse und den Port zulassen. Speichern Sie die ID dieser Sicherheitsgruppe (z. B. sg-12345678).

Typ Protokoll Vom Port Zum Port Adresse
Ausgehend TCP Proxy-Port: Proxy-Port: Proxy-Sicherheitsgruppe

Ausgehende Verbindungen zu Google Cloud-Diensten zulassen

Damit Anthos-Cluster auf AWS eine Verbindung zu Google Cloud-Diensten herstellen können, muss der Proxy-Server Traffic zu den folgenden Domains zulassen:

  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • oauth2.googleapis.com
  • storage.googleapis.com
  • www.googleapis.com
  • gcr.io
  • k8s.gcr.io
  • EC2-REGION.ec2.archive.ubuntu.com

Ersetzen Sie EC2-REGION durch die AWS EC2-Region, in der Ihre Installation von Anthos-Cluster in AWS ausgeführt wird. Beispiel: us-west-1.ec2.archive.ubuntu.com/

Wenn Sie Anthos Service Mesh mit Prometheus und Kiali verwenden, lassen Sie den ausgehenden Zugriff von den folgenden Domains zu:

  • docker.io
  • quay.io

JSON-Datei für die Proxykonfiguration erstellen

Die JSON-Datei für die Proxy-Konfiguration enthält ein Objekt, das drei Schlüssel/Wert-Paare mit den Schlüsselnamen httpProxy, httpsProxy und noProxy enthält. Nutzernamen und Passwörter werden mit Ihrem AWS KMS-Schlüssel umschlagverschlüsselt, bevor sie auf den Server angewendet.

{
  "httpProxy": "HTTP_PROXY",
  "httpsProxy": "HTTPS_PROXY",
  "noProxy": "NO_PROXY"
}

Dabei gilt:

  • HTTP_PROXY durch die Adresse des Proxyservers, um HTTP-Anfragen weiterzuleiten.
  • HTTPS_PROXY durch den Proxyserver, um HTTPS-Anfragen weiterzuleiten.
  • NO_PROXY durch eine optionale Liste mit IP-Adressen, CIDR-Bereichen und Domains, in denen der Proxy nicht verwendet wird.

Weitere Informationen finden Sie unter Konfigurationsreferenz. Die folgende Konfiguration verwendet beispielsweise einen Proxy unter 10.0.0.254 und schließt eine Reihe von Standorten aus.

{
  "httpProxy": "http://user:password@10.0.0.254:80",
  "httpsProxy": "http://user:password@10.0.0.254:443",
  "noProxy": "localhost,127.0.0.1,169.254.169.254,10.0.0.0/16,example.com"
}

Proxy zu Anthos-gke.yaml hinzufügen

Konfigurieren Sie Ihren AWSManagementService mit den folgenden Schritten:

  1. Wechseln Sie in das Verzeichnis mit Ihrer Anthos-Cluster auf AWS-Konfiguration. Sie haben dieses Verzeichnis bei der Installation des Verwaltungsdienstes erstellt.

    cd anthos-aws

  2. Öffnen Sie anthos-gke.yaml in einem Texteditor. Fügen Sie einen Wert für spec.proxy wie im folgenden Beispiel hinzu.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSManagementService
    metadata:
      name: management
    spec:
      version: aws-1.14.1-gke.0
      proxy: PROXY_JSON_FILE
      securityGroupIDs:
      - SECURITY_GROUP_ID
      ...
    

    Dabei gilt:

    • PROXY_JSON_FILE durch den relativen Pfad der JSON-Konfiguration Ihres Proxys.
    • SECURITY_GROUP_ID durch die ID einer Sicherheitsgruppe mit Zugriff auf den Proxyserver.

    Speichern Sie die Datei.

  3. 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
    
  4. Führen Sie anthos-gke aws management apply aus, um den Verwaltungsdienst für AWS zu aktualisieren.

    anthos-gke aws management apply
    
  5. Als Nächstes erstellen Sie einen Nutzercluster. Fügen Sie die Sicherheitsgruppe des Proxys in spec.controlPlane.securityGroupIDs bzw. spec.securityGroupIDs in AWSCluster bzw. AWSNodePool ein. Der Cluster hat dann Zugriff auf den Proxy.

Konfigurationsreferenz

Feld Beschreibung Beispiel Erforderlich
httpProxy Eine Proxyserver-URL. Der Wert sollte einen Hostnamen/eine IP-Adresse und optional einen Port, einen Nutzernamen und ein Passwort enthalten. "http://user:password@10.184.37.42:80" Ja
httpsProxy Eine Proxy-URL für verschlüsselten HTTPS-Traffic. Die URL httpProxy wird verwendet, wenn httpsProxy nicht angegeben wurde. "http://user:password@10.101.16.31:80" Nein
noProxy Eine durch Kommas getrennte Liste von URLs, die vom Proxy ausgeschlossen werden sollen. Jeder Wert kann eine IP-Adresse, einen CIDR-Bereich, einen Domain-Namen oder ein Sternchenzeichen (*) sein. Bei Domains, die mit einem vorangestellten Punkt wie ".google.com" gekennzeichnet sind, ist eine Subdomain erforderlich. Ein einzelnes Sternchenzeichen * zeigt an, dass keine Proxys ausgeführt werden sollen. "1.2.3.4,10.0.0.0/16,example.com,.site.com" Nein

Nächste Schritte

Weitere Informationen zum Ausführen einer Anthos-Cluster on AWS-Installation finden Sie unter:

Informationen zum Ändern der Proxyeinstellungen Ihres Clusters finden Sie unter: