Kubernetes-Anwendungen in Clustern außerhalb von Google Kubernetes Engine (GKE) bereitstellen

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 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:

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:

  1. 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.

  2. 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.

  3. Laden Sie ggf. den JSON-Schlüssel auf die Workstation hoch, mit der Sie eine Verbindung zu Ihrem Anthos clusters on VMware-Cluster herstellen.

  4. 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.

    1. Erstellen Sie einen application-system-Namespace in Ihrem Cluster.

    2. Erstellen Sie mit dem folgenden Befehl das Secret, das eine imagePullSecret für application-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)"
      
    3. Wenden Sie dieses imagePullSecret mit dem folgenden Befehl auf das Standard-ServiceAccount im Namespace application-system an:

      kubectl patch sa default -n application-system -p '"imagePullSecrets": [{"name": "gcr-json-key" }]'
      
  5. 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.

    1. 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.

    2. 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.