Proxyunterstützung für CNCF-konforme angehängte Cluster

Wenn Ihre Organisation einen HTTP-Proxy für Internet-Traffic verwendet, müssen Sie angehängte GKE-Cluster entsprechend konfigurieren. In diesem Dokument wird beschrieben, wie diese Konfiguration durchgeführt wird.

Hinweise

Angehängte GKE-Cluster erfordern eine Verbindung zu verschiedenen Google Cloud-Diensten. Achten Sie darauf, dass Ihr Proxyserver Traffic zu den folgenden Domains zulässt:

  • .gcr.io
  • cloudresourcemanager.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • oauth2.googleapis.com
  • securetoken.googleapis.com
  • storage.googleapis.com
  • sts.googleapis.com
  • www.googleapis.com
  • servicecontrol.googleapis.com
  • logging.googleapis.com
  • monitoring.googleapis.com
  • opsconfigmonitoring.googleapis.com
  • GCP_LOCATION-gkemulticloud.googleapis.com

Ersetzen Sie GCP_LOCATION durch die Google Cloud-Region, in der sich der Cluster befindet. Geben Sie us-west1 oder eine andere unterstützte Region an.

Proxyunterstützung für angehängte GKE-Cluster konfigurieren

So konfigurieren Sie die Proxyunterstützung für angehängte GKE-Cluster:

  1. Erstellen Sie eine Proxy-Konfigurationsdatei, die Werte für die Schlüssel httpProxy, noProxy und httpsProxy enthält:

    {
    "httpProxy": HTTP_PROXY_AUTHENTICATION_URL,
    "httpsProxy": HTTPS_PROXY_AUTH_URL,
    "noProxy": NO_PROXY_ADDRESSES
    }
    

    Ersetzen Sie Folgendes:

    • HTTP_PROXY_AUTHENTICATION_URL: die URL des Proxyservers, die aus einem Hostnamen/einer IP-Adresse und optional einem Port, einem Nutzernamen und einem Passwort besteht. Beispiel: http://user:password@192.0.2.0:80 oder nur 198.51.100.255.
    • HTTPS_PROXY_AUTH_URL: die Proxy-URL für verschlüsselten HTTPS-Traffic, die aus einem Hostnamen/IP-Adresse und optional einem Port, einem Nutzernamen und einem Passwort besteht.
    • NO_PROXY_ADDRESSES: eine kommagetrennte Liste an URLs, CIDR-Blöcken und DNS-Namen von Ressourcen, die den Proxy umgehen können. Dadurch werden GKE-angehängte Cluster angewiesen, den Proxy für die angegebenen Ressourcen nicht zu verwenden. Beachten Sie dabei Folgendes:
      • Werte können einzelne IP-Adressen, CIDR-Bereiche, Domainnamen oder sogar das Sternchenzeichen (*) sein. Wenn Sie ein einzelnes Sternchen (*) im Feld noProxy verwenden, werden angehängte GKE-Cluster angewiesen, den Proxy für den gesamten Traffic zu überspringen.
      • Eine Domain wie .google.com, die mit einem Punkt beginnt, wird auf alle ihre Subdomains ausgerichtet. Beispiel: .google.com enthält Adressen wie mail.google.com und drive.google.com, schließt aber google.com aus.
      • Achten Sie für ein ordnungsgemäßes Logging darauf, dass die Domains kubernetes.default.svc.cluster.local und kubernetes.default.svc enthalten sind. Beispiel:198.51.100.0,192.0.2.0/16,examplepetstore.com,.altostrat.com,kubernetes.default.svc.cluster.local, kubernetes.default.svc

    Beachten Sie beim Erstellen der Proxy-Konfigurationsdatei die folgenden Richtlinien:

    • Die Felder httpProxy und httpsProxy akzeptieren keine https://-Präfixe. Verwenden Sie http://, auch wenn die tatsächliche Proxyserver-Adresse mit https:// beginnt. https://proxy.example.com:3128 wird beispielsweise als http://proxy.example.com:3128 dargestellt.
    • Es müssen Werte für alle drei Felder angegeben werden: httpProxy, httpsProxy und noProxy.
    • Ziehen Sie in Betracht, weitere Domains, IP-Adressen oder CIDRs an die Liste noProxy anzuhängen. Wir empfehlen, den VPC-IP-Bereich anzugeben.
  2. Erstellen Sie mit dem folgenden Befehl ein Kubernetes-Secret, das die Proxykonfiguration enthält:

    kubectl create secret generic SECRET_NAME \
    --from-file=PROXY_CONFIGURATION_FILE
    

    Ersetzen Sie Folgendes:

    • SECRET_NAME: der Name des Kubernetes-Secrets
    • PROXY_CONFIGURATION_FILE: der Pfad zur Proxykonfiguration, die Sie in Schritt 1 erstellt haben.
  3. Markieren Sie das Kubernetes-Secret als unveränderlich, indem Sie das Feld immutable auf true setzen:

    kubectl edit secret SECRET_NAME
    

    Ersetzen Sie SECRET_NAME durch den Namen des Kubernetes-Secrets.

  4. Konfigurieren Sie einen neuen oder vorhandenen Cluster für die Verwendung des Proxys:

    Neuer Cluster

    Verwenden Sie den Befehl gcloud container attached clusters register, um einen neuen Cluster zu registrieren und die Proxykonfiguration anzuwenden. Geben Sie die optionalen Argumente --proxy-secret-name und --proxy-secret-namespace an:

    gcloud container attached clusters register CLUSTER_NAME \
      --proxy-secret-name=SECRET_NAME \
      --proxy-secret-namespace=SECRET_NAMESPACE
    

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME ist der Name des Clusters.
    • SECRET_NAME: der Name des Kubernetes-Secrets, das die Proxykonfiguration enthält
    • SECRET_NAMESPACE: der Kubernetes-Namespace, in dem das Secret gespeichert ist

    Informationen zu allen Argumenten, die Sie bei der Registrierung eines Clusters verwenden können, finden Sie unter dem Befehl gcloud container attached clusters register.

    Vorhandener Cluster

    Verwenden Sie den Befehl gcloud container attached clusters update, um einen zuvor registrierten Cluster mit einer neuen Proxykonfiguration zu aktualisieren. Geben Sie die optionalen Argumente --proxy-secret-name und --proxy-secret-namespace an:

    gcloud container attached clusters update CLUSTER_NAME \
      --proxy-secret-name=SECRET_NAME \
      --proxy-secret-namespace=SECRET_NAMESPACE
    

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME ist der Name des Clusters.
    • SECRET_NAME: der Name des Kubernetes-Secrets, das die Proxykonfiguration enthält
    • SECRET_NAMESPACE: der Kubernetes-Namespace, in dem das Secret gespeichert ist

    Dieser Schritt ist erforderlich, wenn sich die Details Ihres Proxyservers geändert haben oder wenn bei einer ersten Clusterregistrierung die Proxyanforderungen übersehen wurden.

    Informationen zu allen Argumenten, die Sie beim Aktualisieren eines Clusters verwenden können, finden Sie unter dem Befehl gcloud container attached clusters update.

Nach der Ausführung dieser Schritte verarbeiten GKE-angehängte Cluster ausgehenden Internettraffic über den in der Konfigurationsdatei angegebenen Proxyserver.