Wenn Sie eine Kubernetes-Anwendung in Clusterkonfigurationen außerhalb von Google Kubernetes Engine (GKE) bereitstellen möchten, z. B. in einem Anthos-Cluster, auf dem Anthos-Cluster auf VMware ausgeführt werden oder in einem Cluster mit Istio ausgeführt werden, sollten Sie gegebenenfalls die Aufgaben in diesem Abschnitt ausführen.
Je nach der Anwendung, die Sie bereitstellen, sind möglicherweise weitere Schritte erforderlich, um die Anwendung in Ihrem Cluster auszuführen. Informationen zum Konfigurieren der Anwendung finden Sie in der Dokumentation des App-Anbieters.
Zu Anthos-Anwendungen im Cloud Marketplace
Deployment für Cluster, auf denen Istio ausgeführt wird
In Clustern, auf denen Istio ausgeführt wird, werden externe Verbindungen zu Drittanbieterdiensten (z. B. Repositories für Betriebssystempakete) standardmäßig blockiert. Sie müssen den ausgehenden Traffic von Istio konfigurieren, um den Zugriff auf externe Dienste zu ermöglichen.
In Anthos clusters on VMware bereitstellen
Sie können Anthos-Cluster nur auf VMware-Clustern für Cloud Marketplace-Apps bereitstellen, die diese Konfiguration unterstützen. Wenn Sie prüfen möchten, ob eine Anwendung Anthos-Cluster auf VMware unterstützt, öffnen Sie die Cloud Marketplace-Liste der Anwendung und suchen Sie in der Übersicht nach der folgenden Anweisung: "Die Anwendung unterstützt GKE On-Prem-Bereitstellung".
Prüfen Sie vor der Bereitstellung der Anwendung, ob die Anwendung Anthos-Cluster auf VMware unterstützt:
Wenn Sie die Anwendung über Cloud Marketplace bereitstellen, müssen Sie sich mit einem Token oder Anmeldedaten für ein Kubernetes-Dienstkonto (KSA) mit denKubernetes
cluster-admin
Rolle.Wenn Sie die Bereitstellung über die Befehlszeile vornehmen, benötigen Sie die Rolle
cluster-admin
für die Anthos clusters on VMware-Cluster.Sie müssen den Netzwerkzugriff auf Container Registry einrichten, damit der Cluster die Container-Images der Anwendung herunterladen kann.
Sie müssen die Docker-Authentifizierung auf Ihren Anthos-Clustern auf VMware-Clustern einrichten, um auf Container Registry zugreifen zu können und auf die Images der Anwendung zuzugreifen.
Wenn Sie diese Aufgaben abgeschlossen haben, öffnen Sie den Cloud Marketplace-Eintrag der App und folgen Sie der Anleitung zum Bereitstellen der Anwendung.
Netzwerkzugriff auf die Container Registry einrichten
Wenn Sie die Container-Images für die Anwendung herunterladen möchten, muss Ihr Cluster Netzwerkzugriff auf Container Registry haben. Ihr Cluster-Host muss in der Lage sein, marketplace.gcr.io
zu pingen. Für die Aktivierung des Zugriffs müssen Sie möglicherweise einen oder mehrere dieser Schritte ausführen:
Erstellen Sie eine Firewall-Regel, um den Zugriff auf
marketplace.gcr.io
zuzulassen.Wenn Sie einen HTTP- oder HTTPS-Proxy verwenden, lassen Sie
marketplace.gcr.io/*
zu und konfigurieren Sie den Docker-Daemon so, dass er Images über Ihren Proxy abruft.Eine ausführliche Anleitung finden Sie unter Proxy- und Firewallregeln.
Wenn Sie Virtual Private Cloud (VPC) verwenden, konfigurieren Sie Ihren Host für den privaten Google-Zugriff.
Wenn Sie eine private Registry für Ihre Anthos-Cluster bei der VMware-Installation verwenden möchten, richten Sie Ihre Docker-Registry ein und kopieren Sie die Images aus der Anwendung.
Eine ausführliche Anleitung finden Sie unter Private Docker-Registry für die Installation konfigurieren.
Docker-Authentifizierung für den Zugriff auf die Container Registry einrichten
Damit Ihre Anthos-Cluster im VMware-Cluster auf App-Images in Container Registry zugreifen können, müssen Sie einen Google Cloud-Dienstkontoschlüssel erstellen und den Namespace der Anwendung mit dem Schlüssel versehen. Der Schlüssel wird dann als imagePullSecret
im standardmäßigen Kubernetes-Dienstkonto (KSA) des Namespace gepatcht, wenn Sie die Anwendung bereitstellen.
Wenn Sie zum ersten Mal eine Anwendung in einem Anthos-Cluster auf einem VMware-Cluster bereitstellen, müssen Sie auch einen Namespace namens application-system
für Cloud Marketplace-Komponenten erstellen und ein imagePullSecret
auf das Standarddienstkonto für anwenden. Namespace.
Zum Einrichten der Authentifizierung für die Container Registry führen Sie folgende Schritte aus:
Erstellen Sie ein neues Google Cloud-Dienstkonto. Sie müssen dem Dienstkonto keine Rollen zuweisen.
Eine schrittweise Anleitung zum Erstellen eines Dienstkontos finden Sie unter Dienstkonten erstellen und verwalten.
Erstellen Sie einen Schlüssel für das Dienstkonto und laden Sie ihn als JSON-Datei herunter. Eine schrittweise Anleitung zum Erstellen und Herunterladen des Schlüssels finden Sie unter Dienstkontoschlüssel erstellen.
Laden Sie ggf. den JSON-Schlüssel auf die Workstation hoch, mit der Sie eine Verbindung zu Ihrem Anthos clusters on VMware-Cluster herstellen.
Wenn Sie zum ersten Mal eine Anwendung aus Cloud Marketplace bereitstellen, führen Sie die folgenden Schritte aus, um Ihren
application-system
-Namespace mit einem Secret für den Zugriff auf Container Registry einzurichten. Wenn Sie den Namespace bereits eingerichtet haben, überspringen Sie diesen Schritt.Erstellen Sie einen
application-system
-Namespace in Ihrem Cluster.Erstellen Sie mit dem folgenden Befehl das Secret, das eine
imagePullSecret
fürapplication-system
enthält:JSON_KEY_FILENAME=path_to/service_account_key.json IMAGEPULLSECRET_NAME=gcr-json-key kubectl create secret docker-registry $IMAGEPULLSECRET_NAME \ --namespace="application-system" \ --docker-server=gcr.io \ --docker-username=_json_key \ --docker-password="$(cat $JSON_KEY_FILENAME)"
Wenden Sie dieses
imagePullSecret
mit dem folgenden Befehl auf das Standard-ServiceAccount im Namespaceapplication-system
an:kubectl patch sa default -n application-system -p '"imagePullSecrets": [{"name": "gcr-json-key" }]'
Sie müssen für jeden Namespace, für den Sie eine Anwendung bereitstellen möchten, ein neues Kubernetes-Secret erstellen und den Namespace mit dem Secret annotieren. Ein Secret aus einem anderen Namespace kann nicht wiederverwendet werden.
Erstellen Sie ein Kubernetes-Secret, um mit dem Google Cloud-Dienstkontoschlüssel auf die Container Registry zuzugreifen:
JSON_KEY_FILENAME=path_to/service_account_key.json IMAGEPULLSECRET_NAME=gcr-json-key kubectl create secret docker-registry $IMAGEPULLSECRET_NAME \ --namespace=$NAMESPACE_NAME \ --docker-server=gcr.io \ --docker-username=_json_key \ --docker-password="$(cat ~/$JSON_KEY_FILENAME)"
Dabei ist
$NAMESPACE_NAME
der Namespace, den Sie für die Anwendung verwenden möchten.Kommentieren Sie den Namespace der Anwendung mit dem folgenden Befehl:
kubectl annotate namespace $NAMESPACE_NAME marketplace.cloud.google.com/imagePullSecret=$IMAGEPULLSECRET_NAME
Verwenden Sie diesen Namespace, wenn Sie die Anwendung über den Cloud Marketplace bereitstellen. Dies wird unter Kubernetes-Anwendung bereitstellen beschrieben.