Hinter einem Proxy installieren

Auf dieser Seite wird gezeigt, wie Sie Proxy- und Firewallregeln für GKE on Bare Metal einrichten.

Proxyserver konfigurieren

Wenn die Maschinen, die Sie für Bootstrapping verwenden, und Clusterknoten einen Proxyserver zum Zugriff auf das Internet verwenden, müssen Sie Folgendes tun:

  • Proxys für den Paketmanager auf Clusterknoten konfigurieren
  • Proxydetails in der Cluster-Konfigurationsdatei konfigurieren

Vorbereitung

Ihr Proxyserver muss Verbindungen zu den folgenden Adressen zulassen:

Adresse Zweck
*.gcr.io Images aus Container Registry abrufen.
accounts.google.com Autorisierungsanfragen für OpenID verarbeiten und öffentliche Schlüssel zum Verifizieren von Tokens ermitteln.
binaryauthorization.googleapis.com Erforderlich, wenn die Binärautorisierung verwendet wird. Anfragen von Clustern zum Ausführen von Container-Images autorisieren oder ablehnen.
cloudresourcemanager.googleapis.com Metadaten in Bezug auf das Google Cloud-Projekt auflösen, mit dem der Cluster verbunden ist.
compute.googleapis.com Cloud Logging- und Cloud Monitoring-Ressourcenregion prüfen.
connectgateway.googleapis.com Aktivieren Sie die Option, Cloud Customer Care Lesezugriff auf Ihren Cluster zu gewähren, um Probleme zu diagnostizieren.
dl.google.com Laden Sie das Google Cloud SDK herunter und installieren Sie es.
gkeconnect.googleapis.com Kanal einrichten, über den Anfragen von Google Cloud und Antworten empfangen werden. Wenn Ihr Cluster über eine Google Cloud-Region bei der Flotte registriert wurde, müssen Sie REGION-gkeconnect.googleapis.com auf die Zulassungsliste setzen (z. B. us-central1-gkeconnect.googleapis.com). Wenn Sie keine Region angegeben haben, verwendet der Cluster die globale Connect-Dienstinstanz und Sie setzen gkeconnect.googleapis.com auf die Zulassungsliste. Wenn Sie den Standort der Flottenmitgliedschaft für Ihren Cluster ermitteln müssen, führen Sie gcloud container fleet memberships list aus. Weitere Informationen findest du unter gkeConnect.location.
gkehub.googleapis.com Erstellen Sie Flottenressourcen für die Google Cloud-Seite, die dem Cluster entsprechen, mit dem Sie eine Verbindung zu Google Cloud herstellen.
gkeonprem.googleapis.com Clusterlebenszyklus in Bare-Metal- und VMware-Infrastruktur erstellen und verwalten.
gkeonprem.mtls.googleapis.com Clusterlebenszyklus in Bare-Metal- und VMware-Infrastruktur erstellen und verwalten. Diese Version der API wird automatisch mit mTLS verwendet.
iam.googleapis.com Dienstkonten erstellen, mit denen Sie sich bei Google Cloud authentifizieren und API-Aufrufe ausführen können.
iamcredentials.googleapis.com Zugriffskontrolle und Telemetrieberichte für Audit-Logging.
logging.googleapis.com Logeinträge schreiben und Cloud Logging-Konfiguration verwalten.
monitoring.googleapis.com Cloud Monitoring-Daten und -Konfigurationen verwalten.
oauth2.googleapis.com Über den OAuth-Token-Austausch für den Kontozugriff authentifizieren.
opsconfigmonitoring.googleapis.com Metadaten für Kubernetes-Ressourcen wie Pods, Deployments oder Knoten erfassen, um Messwertabfragen anzureichern.
releases.hashicorp.com Optional. Verwenden Sie den Terraform-Client auf Ihrer Administratorworkstation, um Befehle wie terraform apply auszuführen.
securetoken.googleapis.com Aktualisierungstokens für die Autorisierung von Workload Identity abrufen.
servicecontrol.googleapis.com Audit-Logeinträge in Cloud-Audit-Logs schreiben.
serviceusage.googleapis.com Dienste und APIs aktivieren und validieren.
stackdriver.googleapis.com Google Cloud-Metadaten für die Beobachtbarkeit verwalten, z. B. Stackdriver-Konten.
storage.googleapis.com Objektspeicher und Buckets wie Container Registry-Objekte verwalten.
sts.googleapis.com Anmeldedaten von Google oder Drittanbietern für ein kurzlebiges Zugriffstoken für Google Cloud-Ressourcen austauschen.
www.googleapis.com Dienst-Tokens aus eingehenden Google Cloud-Dienstanfragen authentifizieren.

Zusätzlich zu diesen URLs muss der Proxyserver auch alle Paketspiegel, die der Paketmanager Ihres Betriebssystems benötigt, zulassen. Sie können die Paketmanagerkonfiguration aktualisieren, um eine einfacher deterministische Liste zu verwenden.

Proxys für den Paketmanager auf Clusterknoten konfigurieren

GKE on Bare Metal verwendet den APT-Paketmanager unter Ubuntu und den DNF-Paketmanager unter Red Hat Enterprise Linux. Prüfen Sie, ob der OS-Paketmanager die richtige Proxykonfiguration hat.

Weitere Informationen zur Konfiguration des Proxys finden Sie in der Dokumentation Ihrer OS-Distribution. Die folgenden Beispiele zeigen eine Möglichkeit zum Konfigurieren der Proxyeinstellungen:

APT

Diese Befehle zeigen, wie der Proxy für APT konfiguriert wird:

sudo touch /etc/apt/apt.conf.d/proxy.conf

echo 'Acquire::http::Proxy "http://USERNAME:PASSWORD@DOMAIN";' \
    >> /etc/apt/apt.conf.d/proxy.conf

echo 'Acquire::https::Proxy "http://USERNAME:PASSWORD@DOMAIN";' \
    >> /etc/apt/apt.conf.d/proxy.conf

Ersetzen Sie USERNAME:PASSWORD@DOMAIN durch Details, die für Ihre Konfiguration spezifisch sind. Wenn Ihr Proxy beispielsweise keine Anmeldung erfordert, fügen Sie USERNAME:PASSWORD@ nicht in DOMAIN ein.

DNF

Dieser Befehl zeigt, wie der Proxy für DNF konfiguriert wird:

echo "proxy=http://USERNAME:PASSWORD@DOMAIN" >> /etc/dnf/dnf.conf

Ersetzen Sie USERNAME:PASSWORD@DOMAIN durch Details, die für Ihre Konfiguration spezifisch sind. Wenn Ihr Proxy beispielsweise keine Anmeldung erfordert, fügen Sie USERNAME:PASSWORD@ nicht in DOMAIN ein.

Proxydetails in der Cluster-Konfigurationsdatei konfigurieren

Legen Sie in der Clusterkonfigurationsdatei die folgenden Werte fest, um den Cluster für die Verwendung des Proxys zu konfigurieren:

proxy.url

Ein String, der die Proxy-URL angibt. Die Bootstrap- und Knotenmaschinen greifen über diesen Proxy auf das Internet zu. Der Proxy-URL-String muss mit seinem Schema beginnen, z. B. http:// oder https://.

proxy.noProxy

Eine Liste von IP-Adressen, Hostnamen und Domainnamen, die nicht über den Proxyserver geleitet werden sollen.

In den meisten Fällen müssen Sie dieser Liste keine Elemente hinzufügen.

Anwendungsfälle für noProxy:

  • Verwenden eines privaten Paket-Spiegel, die sich im selben privaten Netzwerk befindet (kein Proxy für den Zugriff erforderlich)

  • Verwenden einer privaten Registry-Spiegel, die sich im selben privaten Netzwerk befindet (kein Proxy für den Zugriff erforderlich)

Beispiel

Das folgende Beispiel zeigt die Proxy-Einstellungen in einer Cluster-Konfigurationsdatei:

  proxy:
     url: http://USERNAME:PASSWORD@DOMAIN
     noProxy:
     - example1.com
     - example2.com

Proxykonfigurationen für GKE Identity Service

Wenn Sie GKE Identity Service für die Authentifizierung in GKE on Bare-Metal-Clustern verwenden, sind die folgenden zusätzlichen Schritte erforderlich, damit GKE Identity Service hinter einem Proxy funktioniert.

  1. Legen Sie in der Clusterkonfigurationsdatei die Proxydetails im OIDC-Abschnitt authentication für die GKE Identity Service-Einstellungen fest.

      authentication:
        oidc:
          proxy: http://USERNAME:PASSWORD@DOMAIN
    
  2. Aktualisieren Sie die Konfiguration Ihres Proxyservers, um Verbindungen zu den Authentifizierungs-URLs Ihres OIDC-Anbieters zuzulassen.

So wird Proxy im Cluster verwendet

Als Faustregel gilt, dass bmctl-Befehle und die dadurch erzeugten Prozesse die durch die Umgebungsvariablen HTTPS_PROXY und NO_PROXY definierte Proxykonfiguration verwenden, if sie definiert sind. Andernfalls verwendet bmctl die Proxykonfiguration aus der Clusterkonfigurationsdatei. Andere Befehle, die auf der Administrator-Workstation, auf Clusterknotenmaschinen oder vom Bootstrap-Cluster ausgeführt werden, verwenden die Proxykonfiguration aus der Clusterkonfigurationsdatei.

Der OS-Paketmanager auf jedem Knoten verwendet seine eigenen Konfigurationsdateien für Proxy-Einstellungen.

Proxykonfiguration auf Ihrem Bootstrap-Computer überschreiben

Sie können die Administratorworkstation hinter einem anderen Proxy als dem ausführen, der von Ihren Knotenmaschinen verwendet wird. Überschreiben Sie dazu die Proxyeinstellungen in der Clusterkonfigurationsdatei. Legen Sie die folgenden Umgebungsvariablen auf dem Bootstrap-Computer fest, um die Proxyeinstellungen zu überschreiben:

export HTTPS_PROXY=http://USERNAME:PASSWORD@DOMAIN

Ersetzen Sie USERNAME:PASSWORD@DOMAIN durch Details, die für Ihre Konfiguration spezifisch sind.

export NO_PROXY=example1.com,example2.com

Ersetzen Sie example1.com,example2.com durch IP-Adressen, Hostnamen und Domainnamen, die nicht über den Proxyserver geleitet werden sollen.

Nebeneffekte

Bei Ausführung als Root aktualisiert bmctl die Docker-Proxy-Konfiguration auf dem Bootstrap-Computer. Wenn Sie bmctl nicht als Root ausführen, konfigurieren Sie den Docker-Proxy manuell.

Firewallregeln

Richten Sie Ihre Firewallregeln wie in den folgenden Abschnitten beschrieben ein, um den beschriebenen Traffic zuzulassen, der für GKE on Bare Metal erforderlich ist.

Die erforderlichen Portanforderungen für GKE on Bare Metal finden Sie unter Portnutzung.

Firewallregeln für IP-Adressen von Clusterknoten

In der folgenden Tabelle werden die Firewallregeln für die in Ihren Clustern verfügbaren IP-Adressen beschrieben.

Von

Quellport

To

Port

Protokoll

Beschreibung

Clusterknoten 1024 – 65535 cloudresourcemanager.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
443 TCP/HTTPS Für die Flottenregistrierung ist der Zugriff erforderlich.
Cloud Logging Collector, der auf Clusterknoten ausgeführt wird 1024 – 65535 oauth2.googleapis.com
logging.googleapis.com
stackdriver.googleapis.com
servicecontrol.googleapis.com
storage.googleapis.com
www.googleapis.com
443 TCP/HTTPS
Cloud Metadata Collector, der auf Clusterknoten ausgeführt wird 1024 – 65535 opsconfigmonitoring.googleapis.com 443 TCP/HTTPS
Cloud Monitoring Collector, der auf Clusterknoten ausgeführt wird 1024 – 65535 oauth2.googleapis.com
monitoring.googleapis.com
stackdriver.googleapis.com
servicecontrol.googleapis.com
443 TCP/HTTPS
Clusterknoten 1024 – 65535 Lokale Docker-Registry Hängt von Ihrer Registry ab TCP/HTTPS Erforderlich, wenn GKE on Bare Metal für die Verwendung einer lokalen privaten Docker-Registry anstelle von gcr.io konfiguriert ist.
Clusterknoten 1024 – 65535 gcr.io
oauth2.googleapis.com
storage.googleapis.com
Jede Google API-URL der Form *.googleapis.com, die für die für den Administratorcluster aktivierten Dienste erforderlich ist.
443 TCP/HTTPS Images aus öffentlichen Docker-Registrys herunterladen Nicht erforderlich, wenn eine private Docker-Registry verwendet wird
Connect-Agent, der auf einem Clusterknoten ausgeführt wird 1024 – 65535 cloudresourcemanager.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
www.googleapis.com
iam.googleapis.com
iamcredentials.googleapis.com
oauth2.googleapis.com
securetoken.googleapis.com
sts.googleapis.com
accounts.google.com
443 TCP/HTTPS Weitere Informationen zum vom Connect-Agent verwalteten Traffic finden Sie unter Übersicht: Connect-Agent.
Clusterknoten 1024 – 65535 gkeonprem.googleapis.com
gkeonprem.mtls.googleapis.com
443 TCP/HTTPS Clusterlebenszyklus in Bare-Metal- und VMware-Infrastruktur erstellen und verwalten.

Firewallregeln für die verbleibenden Komponenten

Die in der folgenden Tabelle beschriebenen Regeln gelten für alle anderen Komponenten, die nicht im vorherigen Abschnitt aufgeführt sind.

Von

Quellport

To

Port

Protokoll

Beschreibung

Clients und Endnutzer von Anwendungen Alle VIP des eingehenden Istio-Traffics 80, 443 TCP Endnutzer-Traffic zum Dienst für eingehenden Traffic eines Nutzerclusters
Administratorworkstation 32768 – 60999 gcr.io
cloudresourcemanager.googleapis.com
oauth2.googleapis.com
storage.googleapis.com
Alle *.googleapis.com-URLs, die für die für diesen Cluster aktivierten Dienste erforderlich sind
443 TCP/HTTPS Docker-Images aus öffentlichen Docker-Registries herunterladen
Administratorworkstation 32768 – 60999 gcr.io
cloudresourcemanager.googleapis.com
iam.googleapis.com
oauth2.googleapis.com
serviceusage.googleapis.com
storage.googleapis.com
Jede *.googleapis.com-URL, die für die Dienste erforderlich ist, die für die Administrator- oder Nutzercluster aktiviert sind
443 TCP/HTTPS Preflight-Prüfungen (Validierung)