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:
Se esegui il deployment dell'app da Cloud Marketplace, devi accedere ai tuoi cluster Anthos sul cluster VMware tramite un token o delle credenziali per un account di servizio Kubernetes (KSA) che abbia il ruolo Kubernetes
cluster-admin
.Se esegui il deployment utilizzando la riga di comando, devi avere il ruolo
cluster-admin
per i cluster Anthos sul cluster VMware.Devi configurare l'accesso alla rete per Container Registry in modo che il tuo cluster possa scaricare le immagini del container dell'app.
Per accedere alle immagini dell'app, devi configurare l'autenticazione Docker sui tuoi cluster Anthos sul cluster VMware per accedere a Container Registry.
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:
Crea una regola firewall per consentire l'accesso a
marketplace.gcr.io
.Se utilizzi un proxy HTTP o HTTPS, consenti
marketplace.gcr.io/*
e configura il daemon Docker per estrarre le immagini tramite il proxy.Per la procedura dettagliata, vedi Regole proxy e firewall.
Se utilizzi Virtual Private Cloud (VPC), configura il tuo host per l'accesso privato Google.
Se vuoi utilizzare un registro privato per i tuoi cluster Anthos sull'installazione di VMware, configura il tuo registro Docker e copia le immagini dall'app.
Per i passaggi dettagliati, consulta la sezione Configurare un registro Docker privato per l'installazione.
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:
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.
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.
Se applicabile, carica la chiave JSON nella workstation che utilizzi per connetterti ai cluster Anthos sul cluster VMware.
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.Crea uno spazio dei nomi
application-system
nel tuo cluster.Crea il Secret che contiene un elemento
imagePullSecret
perapplication-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)"
Applica questo
imagePullSecret
all'account di servizio predefinito nello spazio dei nomiapplication-system
, utilizzando il seguente comando:kubectl patch sa default -n application-system -p '"imagePullSecrets": [{"name": "gcr-json-key" }]'
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.
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.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.