AI Platform Pipelines semplifica l'utilizzo di Kubeflow Pipelines con TensorFlow Extended on Google Kubernetes Engine ti consente di evitare la difficoltà di:
- Crea un cluster GKE
- Deployment di Kubeflow Pipelines nel cluster GKE
- Creazione di un bucket Cloud Storage da utilizzare per archiviare gli artefatti della pipeline
Se preferisci, puoi utilizzare AI Platform Pipelines per eseguire il deployment di Kubeflow Pipelines su un cluster esistente su cui non è ancora installato Kubeflow Pipelines. Utilizza questa guida per assicurarti che il tuo cluster sia configurato correttamente per eseguire il deployment delle pipeline Kubeflow ed eseguirle.
Assicurati che il cluster GKE abbia risorse sufficienti per AI Platform Pipelines
Per utilizzare Google Cloud Marketplace per eseguire il deployment di pipeline Kubeflow su una nel cluster GKE, quanto segue deve essere vero:
- Il cluster deve avere almeno tre nodi. Ogni nodo deve avere almeno 2 CPU e 4 GB di memoria disponibili.
- L'ambito di accesso del cluster deve concedere l'accesso completo a tutte le API Cloud. il cluster deve utilizzare un account di servizio personalizzato.
- Nel cluster non deve essere già installato Kubeflow Pipelines.
Segui le istruzioni riportate di seguito per verificare se il tuo cluster dispone di risorse sufficienti per installare AI Platform Pipelines.
Apri le pipeline della piattaforma AI nella console Google Cloud.
Nella barra degli strumenti di AI Platform Pipelines, fai clic su Nuova istanza. Kubeflow Pipelines si apre in Google Cloud Marketplace.
Fai clic su Configura. Si apre il modulo Esegui il deployment di Kubeflow Pipelines.
Fai clic su Cluster per espandere l'elenco. Cluster GKE che non dispongono di risorse o autorizzazioni sufficienti sono elencate Cluster non idonei. Ogni cluster non idoneo include una descrizione perché non è possibile installare Kubeflow Pipelines, ad esempio:
- Il cluster non è adatto all'applicazione: il cluster non dispone di di risorse sufficienti per installare Kubeflow Pipelines. Alloca più risorse al cluster.
- Ambito OAuth insufficiente: il cluster non ha accesso sufficiente alle risorse e alle API di Google Cloud per installare Kubeflow Pipelines. Concedi più autorizzazioni ai tuoi per il cluster specificato.
Alloca più risorse al tuo cluster GKE
Per installare Kubeflow Pipelines da Google Cloud Marketplace a un progetto esistente GKE, il cluster deve avere almeno tre nodi con 2 CPU e 4 GB disponibili.
Segui le istruzioni riportate di seguito per sostituire il pool di nodi nel tuo cluster con uno che disponga di risorse di CPU e memoria sufficienti per AI Platform Pipelines.
Aprire i cluster di Google Kubernetes Engine nella console Google Cloud.
Fai clic sul nome del cluster. Vengono visualizzati i dettagli del cluster.
Nella barra degli strumenti di GKE, fai clic su Aggiungi pool di nodi. La Si apre il modulo Aggiungi un nuovo pool di nodi.
Fornisci le seguenti informazioni al modulo Aggiungi un nuovo pool di nodi.
- Numero di nodi: specifica il numero di nodi nel pool di nodi. Il cluster deve avere almeno 3 nodi per installare Kubeflow Pipelines utilizzando Google Cloud Marketplace.
Tipo di macchina: specifica il tipo di macchina Compute Engine da utilizzare per le istanze nel pool di nodi. Seleziona un tipo di macchina con almeno 2 CPU e 4 GB di memoria, ad esempio
n1-standard-2
.Ambiti di accesso: fai clic su Consenti l'accesso completo a tutte le API Cloud in Ambiti di accesso.
In caso contrario, configura il pool di nodi come preferisci. Scopri di più su aggiungendo pool di nodi a un cluster.
Fai clic su Crea pool di nodi. La creazione del pool di nodi richiede diverse minuti.
Per ogni pool di nodi nella sezione Pool di nodi, ad eccezione di pool di nodi hai creato nel passaggio precedente, fai clic su
delete. Viene visualizzata la finestra di dialogo Elimina un pool di nodi per confermare che vuoi eliminare questo pool di nodi.Fai clic su Elimina. L'eliminazione del pool di nodi richiede diversi minuti.
Dopo aver eliminato i vecchi pool di nodi, verifica che il cluster sia risorse e accesso sufficienti per installare Kubeflow Pipelines Google Cloud Marketplace.
Concedi al tuo cluster GKE l'accesso alle risorse e alle API Google Cloud
Esistono tre modi per concedere alle pipeline ML l'accesso a Google Cloud risorse e API:
- Concedi al tuo cluster Google Kubernetes Engine l'accesso completo a tutti le API Google Cloud. Scopri come configurare il cluster con accesso completo alle risorse Google Cloud nel tuo progetto.
- Concedi al cluster Google Kubernetes Engine l'accesso granulare alle API Google Cloud utilizzando un account di servizio. Scopri come configurare il cluster con accesso granulare alle risorse Google Cloud.
- Concedi al tuo cluster GKE l'accesso all'utilizzo di account servizio memorizzati come secret Kubernetes. Scopri di più su come concedere l'accesso delle tue pipeline alle risorse Google Cloud il secret.
Quando esegui il deployment di AI Platform Pipelines, devi concedere al tuo cluster GKE accesso completo alle risorse e alle API di Google Cloud o concedere al tuo cluster accesso a Google Cloud utilizzando un account di servizio.
Configurare il cluster GKE con accesso completo alle API Google Cloud
Per semplificare le pipeline ML e altre risorse GKE,
ai carichi di lavoro del cluster per accedere alle risorse Google Cloud del tuo progetto,
il tuo cluster all'accesso https://www.googleapis.com/auth/cloud-platform
l'ambito di attività. Questo ambito di accesso fornisce l'accesso completo alle risorse e alle API Google Cloud che hai attivato nel tuo progetto. Se concedi questo ambito di accesso
che fornisca un accesso eccessivo a Google Cloud, configura l'accesso granulare utilizzando
dell'account di servizio.
Usa le istruzioni seguenti per sostituire il pool di nodi del tuo cluster con uno che consente a tutti i carichi di lavoro su questo cluster di accedere a tutte le API Google Cloud siano abilitate nel tuo progetto. Prima di modificare il tuo cluster GKE, discuti queste modifiche con l'amministratore GKE.
Aprire i cluster di Google Kubernetes Engine nella console Google Cloud.
Fai clic sul nome del cluster. Vengono visualizzati i dettagli del cluster.
Nella barra degli strumenti di GKE, fai clic su Aggiungi pool di nodi. La Si apre il modulo Aggiungi un nuovo pool di nodi.
Fornisci le seguenti informazioni al modulo Aggiungi un nuovo pool di nodi.
- Numero di nodi: specifica il numero di nodi presenti nel tuo pool di nodi. Il cluster deve avere almeno 3 nodi per installare Kubeflow Pipelines utilizzando Google Cloud Marketplace.
Tipo di macchina: specifica Compute Engine tipo di macchina da utilizzare per le istanze nel pool di nodi. Seleziona un tipo di macchina con almeno 2 CPU e 4 GB di memoria, ad esempio
n1-standard-2
.Ambiti di accesso: fai clic su Consenti l'accesso completo a tutte le API Cloud in Ambiti di accesso.
In caso contrario, configura il pool di nodi come preferisci. Scopri di più su come aggiungere pool di nodi a un cluster.
Fai clic su Crea pool di nodi. La creazione del pool di nodi richiede alcuni minuti.
Per ogni pool di nodi nella sezione Pool di nodi, ad eccezione di pool di nodi hai creato nel passaggio precedente, fai clic su
delete. Viene visualizzata la finestra di dialogo Elimina un pool di nodi per confermare che vuoi eliminare questo pool di nodi.Fai clic su Elimina. L'eliminazione del pool di nodi richiede diversi minuti.
Dopo aver eliminato i vecchi pool di nodi, verifica che il cluster sia risorse e accesso sufficienti per installare Kubeflow Pipelines Google Cloud Marketplace.
Configura il tuo cluster GKE con accesso granulare alle API Google Cloud
Segui queste istruzioni per configurare un account di servizio per cluster GKE e sostituisci il pool di nodi del cluster e quella che utilizza il tuo account di servizio. Creando un account di servizio, puoi gestire in modo granulare le risorse Google Cloud a cui hanno accesso i carichi di lavoro sul tuo cluster. Prima di modificare il cluster GKE, discutete queste modifiche con l'amministratore GKE.
Apri una sessione di Cloud Shell.
Cloud Shell si apre in un frame nella parte inferiore della console Google Cloud.
Esegui questi comandi in Cloud Shell per creare il tuo servizio e concedergli l'accesso sufficiente per eseguire AI Platform Pipelines. Scopri di più sui ruoli necessari per eseguire AI Platform Pipelines con un account di servizio gestito dall'utente.
export PROJECT=PROJECT_ID
export SERVICE_ACCOUNT=SERVICE_ACCOUNT_NAME
gcloud iam service-accounts create $SERVICE_ACCOUNT \ --display-name=$SERVICE_ACCOUNT \ --project=$PROJECT
gcloud projects add-iam-policy-binding $PROJECT \ --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT.iam.gserviceaccount.com" \ --role=roles/logging.logWriter
gcloud projects add-iam-policy-binding $PROJECT \ --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT.iam.gserviceaccount.com" \ --role=roles/monitoring.metricWriter
gcloud projects add-iam-policy-binding $PROJECT \ --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT.iam.gserviceaccount.com" \ --role=roles/monitoring.viewer
gcloud projects add-iam-policy-binding $PROJECT \ --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT.iam.gserviceaccount.com" \ --role=roles/storage.objectViewer
Sostituisci quanto segue:
- SERVICE_ACCOUNT_NAME: il nome dell'account di servizio da creare.
- PROJECT_ID: il progetto Google Cloud in cui è stato creato l'account di servizio.
Concedi all'account di servizio l'accesso a qualsiasi API o risorsa Google Cloud necessaria per le pipeline di ML. Scopri di più sui ruoli di Identity and Access Management e sulla gestione degli account di servizio.
Concedi al tuo account utente il ruolo Utente account di servizio (
iam.serviceAccountUser
) nel tuo account di servizio.gcloud iam service-accounts add-iam-policy-binding \ "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --member=user:USERNAME \ --role=roles/iam.serviceAccountUser
Sostituisci quanto segue:
- SERVICE_ACCOUNT_NAME: il nome del tuo account di servizio.
- PROJECT_ID: il tuo progetto Google Cloud.
- USERNAME: il tuo nome utente su Google Cloud.
Apri i cluster Google Kubernetes Engine nella console Google Cloud.
Fai clic sul nome del cluster. Vengono visualizzati i dettagli del cluster.
Nella barra degli strumenti di GKE, fai clic su Aggiungi pool di nodi. La Si apre il modulo Aggiungi un nuovo pool di nodi.
Fornisci le seguenti informazioni al modulo Aggiungi un nuovo pool di nodi.
- Numero di nodi: specifica il numero di nodi presenti nel tuo pool di nodi. Il cluster deve avere almeno 3 nodi per installare Kubeflow Pipelines utilizzando Google Cloud Marketplace.
Tipo di macchina: specifica il tipo di macchina Compute Engine da utilizzare per le istanze nel pool di nodi. Seleziona un tipo di macchina con almeno 2 CPU e 4 GB di memoria, ad esempio
n1-standard-2
.Account di servizio: seleziona l'account di servizio che hai creato in passaggio precedente.
In caso contrario, configura il pool di nodi come preferisci. Scopri di più su come aggiungere pool di nodi a un cluster.
Fai clic su Crea pool di nodi. La creazione del pool di nodi richiede diverse minuti.
Per ogni pool di nodi nella sezione Pool di nodi, ad eccezione di pool di nodi hai creato nel passaggio precedente, fai clic su
delete. Viene visualizzata la finestra di dialogo Elimina un pool di nodi per confermare che vuoi eliminare questo pool di nodi.Fai clic su Elimina. L'eliminazione del pool di nodi richiede diversi minuti.
Dopo aver eliminato i vecchi pool di nodi, verifica che il cluster sia risorse e accesso sufficienti per installare Kubeflow Pipelines Google Cloud Marketplace.
Utilizza un segreto Kubernetes per concedere al tuo cluster l'accesso alle risorse e alle API Google Cloud
Pipeline sviluppate utilizzando l'operatore use_gcp_secret
in
l'autenticazione dell'SDK Kubeflow Pipelines
alle risorse Google Cloud usando un secret Kubernetes.
Utilizza queste istruzioni per creare un account di servizio, concedere l'accesso all'account a le risorse utilizzate dalle pipeline e poi aggiungi l'account di servizio come secret Kubernetes.
Aprire i cluster di Google Kubernetes Engine nella console Google Cloud.
Nella riga del cluster, trova il nome e la zona del cluster.
Apri una sessione di Cloud Shell.
Cloud Shell si apre in un frame nella parte inferiore della console Google Cloud. Utilizza Cloud Shell per completare il resto della procedura.
Imposta le seguenti variabili di ambiente.
export PROJECT_ID=PROJECT_ID
export ZONE=ZONE
export CLUSTER=CLUSTER_NAME
export NAMESPACE=NAMESPACE
export SA_NAME=SERVICE_ACCOUNT_NAME
Sostituisci quanto segue:
- PROJECT_ID: il progetto Google Cloud in cui è stato creato il tuo cluster GKE.
- ZONE: la zona Google Cloud che il tuo cluster GKE in cui è stato creato il cluster.
- CLUSTER_NAME: il nome del tuo cluster GKE.
NAMESPACE: lo spazio dei nomi nel tuo file GKE in cui è installato Kubeflow Pipelines.
Gli spazi dei nomi vengono utilizzati per gestire le risorse in Kubernetes cluster. Se il cluster non utilizza spazi dei nomi, inserisci default come kubernetes-namespace.
SERVICE_ACCOUNT_NAME: il nome dell'account di servizio da creare per un cluster Kubeflow Pipelines le risorse e le API di Google Cloud.
Crea un account di servizio per il cluster.
gcloud iam service-accounts create $SA_NAME \ --display-name $SA_NAME --project "$PROJECT_ID"
Per concedere al tuo account di servizio l'accesso alle risorse Google Cloud, associa ruoli Identity and Access Management all'account di servizio. Segui queste istruzioni per i ruoli IAM nell'account di servizio. Chiama questo comando una volta per ogni ruolo che vuoi concedere al tuo account di servizio.
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$SA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --role=iam-role
iam-role: il ruolo IAM da concedere al tuo account di servizio. Ad esempio, roles/storage.admin concede il controllo completo dei bucket e degli oggetti Cloud Storage nel tuo progetto.
Per saperne di più sui ruoli IAM, leggi la guida per la comprensione dei ruoli IAM.
Crea una chiave privata per il tuo account di servizio nella directory attuale.
gcloud iam service-accounts keys create ./service-account-key.json \ --iam-account $SA_NAME@$PROJECT_ID.iam.gserviceaccount.com
Configura
kubectl
per la connessione al tuo cluster, quindi crea secret Kubernetes user-gcp-sa.gcloud container clusters get-credentials "$CLUSTER" --zone "$ZONE" \ --project "$PROJECT_ID"
kubectl create secret generic user-gcp-sa \ --from-file=user-gcp-sa.json=./service-account-key.json \ -n $NAMESPACE --dry-run -o yaml | kubectl apply -f -
Ripulisci la chiave privata dell'account di servizio.
rm ./service-account-key.json