Deployment di app Kubernetes su cluster non Google Kubernetes Engine (GKE)

Se vuoi eseguire il deployment di un'app Kubernetes in configurazioni di cluster non Google Kubernetes Engine (GKE), ad esempio un cluster Anthos che esegue Cluster Anthos su VMware o un cluster in esecuzione su Istio, devi completare le attività in questa sezione, a seconda dei casi.

A seconda dell'applicazione di cui esegui il deployment, potrebbero essere necessari ulteriori passaggi per eseguire l'app sul cluster. Per informazioni sulla configurazione dell'app, fai riferimento alla documentazione del fornitore dell'app.

Vai alle app Anthos in Cloud Marketplace

Deployment in cluster che eseguono Istio

Nei cluster che eseguono Istio, le connessioni esterne ai servizi di terze parti (come i repository di pacchetti del sistema operativo) sono bloccate per impostazione predefinita. Devi configurare il traffico in uscita da Istio per abilitare l'accesso ai servizi esterni.

Deployment in cluster Anthos su VMware

Puoi eseguire il deployment di cluster Anthos su cluster VMware su app Cloud Marketplace che supportano questa configurazione. Per verificare se un'app supporta i cluster Anthos su VMware, apri la scheda dell'app su Cloud Marketplace e cerca la seguente istruzione nella panoramica: "L'applicazione supporta il deployment GKE On Prem".

Dopo aver verificato che l'app supporta i cluster Anthos su VMware, completa questi compiti prima di eseguire il deployment dell'app:

Dopo aver completato queste attività, apri la scheda dell'app in Cloud Marketplace e segui i passaggi per eseguire il deployment dell'app.

Configurare l'accesso di rete a Container Registry

Per scaricare le immagini container per l'app, assicurati che il cluster abbia accesso di rete a Container Registry. L'host del cluster deve essere in grado di inviare un ping a marketplace.gcr.io. Per attivare l'accesso, potrebbe essere necessario eseguire una o più delle seguenti operazioni:

Configurare l'autenticazione Docker per accedere a Container Registry

Per consentire ai tuoi cluster Anthos sul cluster VMware di accedere alle immagini delle app in Container Registry, devi creare una chiave dell'account di servizio Google Cloud e annotare lo spazio dei nomi dell'app con la chiave. Alla chiave viene quindi applicata l'applicazione imagePullSecret come patch per l'account di servizio Kubernetes (KSA) predefinito dello spazio dei nomi durante il deployment dell'app.

La prima volta che esegui il deployment di un'app in un cluster Anthos su cluster VMware, devi anche creare uno spazio dei nomi chiamato application-system per i componenti Cloud Marketplace e applicare imagePullSecret all'account di servizio predefinito per lo spazio dei nomi.

Segui questi passaggi per configurare l'autenticazione in Container Registry:

  1. Crea un nuovo account di servizio Google Cloud. Non è necessario concedere alcun ruolo all'account di servizio.

    Per i passaggi per creare un account di servizio, consulta la sezione Creare e gestire account di servizio.

  2. Crea una chiave per l'account di servizio e scaricala come file JSON. Per i passaggi per creare e scaricare la chiave, consulta la sezione Creare e gestire le chiavi degli account di servizio.

  3. Se applicabile, carica la chiave JSON nella workstation che utilizzi per connetterti ai cluster Anthos sul cluster VMware.

  4. Se stai eseguendo il deployment di un'app da Cloud Marketplace per la prima volta, segui questa procedura per configurare il tuo spazio dei nomi application-system con un secret per accedere a Container Registry. Se hai già configurato lo spazio dei nomi, ignora questo passaggio.

    1. Crea uno spazio dei nomi application-system nel tuo cluster.

    2. Crea il Secret che contiene un elemento imagePullSecret per application-system utilizzando il seguente comando:

      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. Applica questo imagePullSecret all'account di servizio predefinito nello spazio dei nomi application-system, utilizzando il seguente comando:

      kubectl patch sa default -n application-system -p '"imagePullSecrets": [{"name": "gcr-json-key" }]'
      
  5. Per ogni spazio dei nomi in cui vuoi eseguire il deployment di un'app, devi creare un nuovo secret di Kubernetes e annotarlo con il secret. Non puoi riutilizzare un Secret da un altro spazio dei nomi.

    1. Crea un Secret Kubernetes per accedere a Container Registry utilizzando la chiave dell'account di servizio Google Cloud:

      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)"
      

      Dove $NAMESPACE_NAME è lo spazio dei nomi che vuoi utilizzare per l'app.

    2. Annota lo spazio dei nomi dell'app utilizzando il seguente comando:

      kubectl annotate namespace $NAMESPACE_NAME marketplace.cloud.google.com/imagePullSecret=$IMAGEPULLSECRET_NAME
      

      Utilizza questo spazio dei nomi quando esegui il deployment dell'app da Cloud Marketplace, descritto in Deployment di un'app Kubernetes.