AI Platform Pipelines facilite l'implémentation de Kubeflow Pipelines avec TensorFlow Extended sur Google Kubernetes Engine, en vous épargnant les difficultés suivantes :
- Créer un cluster GKE
- Déployer Kubeflow Pipelines sur votre cluster GKE
- Créer un bucket Cloud Storage à utiliser pour stocker les artefacts de pipelines
Si vous préférez, vous pouvez utiliser AI Platform Pipelines pour déployer Kubeflow Pipelines sur un cluster existant sur lequel il n'est pas déjà installé. Ce guide vous permet de vérifier que votre cluster est correctement configuré pour déployer et exécuter Kubeflow Pipelines.
Vérifier que votre cluster GKE dispose de suffisamment de ressources pour AI Platform Pipelines
Pour déployer Kubeflow Pipelines sur un cluster GKE à l'aide de Google Cloud Marketplace, les conditions suivantes doivent être remplies :
- Votre cluster doit comporter au moins trois nœuds. Chaque nœud doit disposer d'au moins deux processeurs et de 4 Go de mémoire disponible.
- Le niveau d'accès du cluster doit accorder un accès complet à toutes les API Cloud, ou votre cluster doit utiliser un compte de service personnalisé.
- Kubeflow Pipelines ne doit pas déjà être installé sur le cluster.
Suivez les instructions ci-dessous pour vérifier si votre cluster dispose de suffisamment de ressources pour installer AI Platform Pipelines.
Ouvrez AI Platform Pipelines dans Google Cloud Console.
Dans la barre d'outils AI Platform Pipelines, cliquez sur Nouvelle instance. Kubeflow Pipelines s'ouvre dans Google Cloud Marketplace.
Cliquez sur Configurer. Le formulaire Deploy Kubeflow Pipelines (Déployer Kubeflow Pipelines) s'affiche.
Cliquez sur Cluster pour développer la liste. Les clusters GKE qui ne disposent pas de suffisamment de ressources ou d'autorisations sont répertoriés en tant que Ineligible clusters (Clusters non éligibles). Chaque cluster non éligible inclut une description des raisons pour lesquelles Kubeflow Pipelines ne peut pas être installé. Exemples :
- Cluster does not fit the application (Le cluster ne correspond pas à l'application) : votre cluster ne dispose pas de suffisamment de ressources disponibles pour installer Kubeflow Pipelines. Allouez davantage de ressources à votre cluster.
- Insufficient OAuth scope (Niveau d'accès OAuth insuffisant) : votre cluster ne dispose pas d'un accès suffisant aux ressources et aux API Google Cloud pour installer Kubeflow Pipelines. Accordez plus d'autorisations à votre cluster.
Allouer davantage de ressources à votre cluster GKE
Pour installer Kubeflow Pipelines sur un cluster GKE existant à partir de Google Cloud Marketplace, votre cluster doit comporter au moins trois nœuds disposant de deux processeurs et de 4 Go de mémoire disponible.
Suivez les instructions ci-dessous pour remplacer le pool de nœuds de votre cluster par un pool disposant de suffisamment de processeurs et de mémoire pour AI Platform Pipelines.
Ouvrez les clusters Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur le nom de votre cluster. Les détails du cluster s'affichent.
Dans la barre d'outils GKE, cliquez sur Ajouter un pool de nœuds. Le formulaire Add a new node pool (Ajouter un pool de nœuds) s'affiche.
Indiquez les informations ci-dessous dans le formulaire Add a new node pool (Ajouter un pool de nœuds).
- Nombre de nœuds : spécifiez le nombre de nœuds dans votre pool de nœuds. Votre cluster doit disposer d'au moins trois nœuds pour installer Kubeflow Pipelines à l'aide de Google Cloud Marketplace.
Type de machine : spécifiez le type de machine Compute Engine à utiliser pour les instances du pool de nœuds. Sélectionnez un type de machine avec au moins deux processeurs et 4 Go de mémoire (par exemple,
n1-standard-2
).Niveaux d'accès : cliquez sur Allow full access to all Cloud APIs (Autoriser l'accès complet à l'ensemble des API Cloud) dans la section Access scopes (Niveaux d'accès).
Sinon, configurez le pool de nœuds comme vous le souhaitez. Découvrez comment ajouter des pools de nœuds à un cluster.
Cliquez sur Créer un pool de nœuds. La création du pool de nœuds prend plusieurs minutes.
Pour chaque pool de nœuds de la section Pools de nœuds, à l'exception de celui que vous avez créé à l'étape précédente, cliquez sur
Supprimer. La boîte de dialogue Supprimer un pool de nœuds s'affiche pour confirmer la suppression de ce pool de nœuds.Cliquez sur Supprimer. La suppression du pool de nœuds prend plusieurs minutes.
Après avoir supprimé les anciens pools de nœuds, vérifiez que votre cluster dispose des ressources et des accès suffisants pour installer Kubeflow Pipelines à partir de Google Cloud Marketplace.
Accorder à votre cluster GKE l'accès aux ressources et aux API Google Cloud
Vous pouvez accorder l'accès aux ressources et aux API Google Cloud à vos pipelines de ML de trois façons :
- En accordant à votre cluster Google Kubernetes Engine un accès complet à toutes les API Google Cloud. Apprenez à configurer votre cluster avec un accès complet aux ressources Google Cloud de votre projet.
- Accordez à votre cluster Google Kubernetes Engine un accès précis aux API Google Cloud à l'aide d'un compte de service. Apprenez à configurer votre cluster avec un accès précis aux ressources Google Cloud.
- En accordant cet accès à votre cluster GKE à l'aide de comptes de service stockés sous forme de secrets Kubernetes. Découvrez comment accorder un accès aux ressources Google Cloud à vos pipelines à l'aide d'un secret Kubernetes.
Lors du déploiement d'AI Platform Pipelines, vous devez accorder à votre cluster GKE un accès complet aux ressources et aux API Google Cloud, ou accorder à votre cluster l'accès à Google Cloud à l'aide d'un compte de service.
Configurer votre cluster GKE avec un accès complet aux API Google Cloud
Pour faciliter l'accès de vos pipelines de ML et des autres charges de travail du cluster GKE aux ressources Google Cloud de votre projet, configurez votre cluster sur le niveau d'accès https://www.googleapis.com/auth/cloud-platform
. Ce niveau d'accès offre un accès complet aux ressources Google Cloud et API que vous avez activées dans votre projet. Si ce niveau d'accès fournit un accès excessif à Google Cloud, configurez un accès précis à l'aide d'un compte de service.
Suivez les instructions ci-dessous pour remplacer le pool de nœuds de votre cluster par un autre qui permet à toutes les charges de travail de ce cluster d'accéder à toutes les API Google Cloud activées dans votre projet. Avant de modifier votre cluster GKE, discutez-en avec votre administrateur GKE.
Ouvrez les clusters Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur le nom de votre cluster. Les détails du cluster s'affichent.
Dans la barre d'outils GKE, cliquez sur Ajouter un pool de nœuds. Le formulaire Add a new node pool (Ajouter un pool de nœuds) s'affiche.
Indiquez les informations ci-dessous dans le formulaire Add a new node pool (Ajouter un pool de nœuds).
- Nombre de nœuds : spécifiez le nombre de nœuds dans votre pool de nœuds. Votre cluster doit disposer d'au moins trois nœuds pour installer Kubeflow Pipelines à l'aide de Google Cloud Marketplace.
Type de machine : spécifiez le type de machine Compute Engine à utiliser pour les instances du pool de nœuds. Sélectionnez un type de machine avec au moins deux processeurs et 4 Go de mémoire (par exemple,
n1-standard-2
).Niveaux d'accès : cliquez sur Allow full access to all Cloud APIs (Autoriser l'accès complet à l'ensemble des API Cloud) dans la section Access scopes (Niveaux d'accès).
Sinon, configurez le pool de nœuds comme vous le souhaitez. Découvrez comment ajouter des pools de nœuds à un cluster.
Cliquez sur Créer un pool de nœuds. La création du pool de nœuds prend plusieurs minutes.
Pour chaque pool de nœuds de la section Pools de nœuds, à l'exception de celui que vous avez créé à l'étape précédente, cliquez sur
Supprimer. La boîte de dialogue Supprimer un pool de nœuds s'affiche pour confirmer la suppression de ce pool de nœuds.Cliquez sur Supprimer. La suppression du pool de nœuds prend plusieurs minutes.
Après avoir supprimé les anciens pools de nœuds, vérifiez que votre cluster dispose des ressources et des accès suffisants pour installer Kubeflow Pipelines à partir de Google Cloud Marketplace.
Configurer votre cluster GKE avec un accès précis aux API Google Cloud
Utilisez les instructions suivantes pour configurer un compte de service pour votre cluster GKE et remplacer le pool de nœuds de votre cluster par un autre qui utilise votre compte de service. En créant un compte de service, vous pouvez gérer avec précision les ressources Google Cloud auxquelles les charges de travail de votre cluster ont accès. Avant de modifier votre cluster GKE, discutez-en avec votre administrateur GKE.
Ouvrez une session Cloud Shell.
Cloud Shell s'ouvre dans un cadre au bas de Google Cloud Console.
Exécutez les commandes suivantes dans Cloud Shell pour créer votre compte de service et lui accorder un accès suffisant pour exécuter AI Platform Pipelines. Découvrez les rôles requis pour exécuter AI Platform Pipelines avec un compte de service géré par l'utilisateur.
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
Remplacez les éléments suivants :
- SERVICE_ACCOUNT_NAME : nom du compte de service à créer.
- PROJECT_ID : projet Google Cloud dans lequel le compte de service est créé.
Accordez à votre compte de service l'accès à toutes les ressources ou API Google Cloud requises par vos pipelines de ML. Apprenez-en plus sur les rôles Identity and Access Management (IAM) et découvrez comment gérer les comptes de service.
Attribuez à votre compte utilisateur le rôle Utilisateur du compte de service (
iam.serviceAccountUser
).gcloud iam service-accounts add-iam-policy-binding \ "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --member=user:USERNAME \ --role=roles/iam.serviceAccountUser
Remplacez les éléments suivants :
- SERVICE_ACCOUNT_NAME : nom de votre compte de service.
- PROJECT_ID : votre projet Google Cloud.
- USERNAME : votre nom d'utilisateur sur Google Cloud.
Ouvrez les clusters Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur le nom de votre cluster. Les détails du cluster s'affichent.
Dans la barre d'outils GKE, cliquez sur Ajouter un pool de nœuds. Le formulaire Add a new node pool (Ajouter un pool de nœuds) s'affiche.
Indiquez les informations ci-dessous dans le formulaire Add a new node pool (Ajouter un pool de nœuds).
- Nombre de nœuds : spécifiez le nombre de nœuds dans votre pool de nœuds. Votre cluster doit disposer d'au moins trois nœuds pour installer Kubeflow Pipelines à l'aide de Google Cloud Marketplace.
Type de machine : spécifiez le type de machine Compute Engine à utiliser pour les instances du pool de nœuds. Sélectionnez un type de machine avec au moins deux processeurs et 4 Go de mémoire (par exemple,
n1-standard-2
).Compte de service : sélectionnez le compte de service que vous avez créé précédemment.
Sinon, configurez le pool de nœuds comme vous le souhaitez. Découvrez comment ajouter des pools de nœuds à un cluster.
Cliquez sur Créer un pool de nœuds. La création du pool de nœuds prend plusieurs minutes.
Pour chaque pool de nœuds de la section Pools de nœuds, à l'exception de celui que vous avez créé à l'étape précédente, cliquez sur
Supprimer. La boîte de dialogue Supprimer un pool de nœuds s'affiche pour confirmer la suppression de ce pool de nœuds.Cliquez sur Supprimer. La suppression du pool de nœuds prend plusieurs minutes.
Après avoir supprimé les anciens pools de nœuds, vérifiez que votre cluster dispose des ressources et des accès suffisants pour installer Kubeflow Pipelines à partir de Google Cloud Marketplace.
Utiliser un secret Kubernetes pour accorder à votre cluster l'accès aux ressources et aux API Google Cloud
Les pipelines développés à l'aide de l'opérateur use_gcp_secret
dans le SDK Kubeflow Pipelines s'authentifient auprès des ressources Google Cloud à l'aide d'un secret Kubernetes.
Suivez les instructions ci-dessous pour créer un compte de service, lui accorder l'accès aux ressources utilisées par vos pipelines et l'ajouter à votre cluster en tant que secret Kubernetes.
Ouvrez les clusters Google Kubernetes Engine dans Google Cloud Console.
Sur la ligne correspondant à votre cluster, recherchez son nom et sa zone.
Ouvrez une session Cloud Shell.
Cloud Shell s'ouvre dans un cadre au bas de Google Cloud Console. Utilisez Cloud Shell pour effectuer le reste de cette procédure.
Définissez les variables d'environnement suivantes.
export PROJECT_ID=PROJECT_ID
export ZONE=ZONE
export CLUSTER=CLUSTER_NAME
export NAMESPACE=NAMESPACE
export SA_NAME=SERVICE_ACCOUNT_NAME
Remplacez les éléments suivants :
- PROJECT_ID : projet Google Cloud dans lequel votre cluster GKE a été créé.
- ZONE : zone Google Cloud dans laquelle votre cluster GKE a été créé.
- CLUSTER_NAME : nom de votre cluster GKE.
NAMESPACE : espace de noms du cluster GKE dans lequel Kubeflow Pipelines est installé.
Les espaces de noms permettent de gérer les ressources des clusters Kubernetes volumineux. Si votre cluster n'utilise pas d'espaces de noms, définissez kubernetes-namespace sur default.
SERVICE_ACCOUNT_NAME : nom du compte de service à créer pour que votre cluster Kubeflow Pipelines puisse accéder aux ressources et aux API Google Cloud.
Créez un compte de service pour votre cluster.
gcloud iam service-accounts create $SA_NAME \ --display-name $SA_NAME --project "$PROJECT_ID"
Pour autoriser votre compte de service à accéder aux ressources Google Cloud, associez-lui des rôles Identity and Access Management. Suivez les instructions ci-dessous pour attribuer des rôles IAM à votre compte de service. Appelez cette commande une fois pour chaque rôle que vous souhaitez attribuer à votre compte de service.
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$SA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --role=iam-role
iam-role : rôle IAM à attribuer à votre compte de service. Par exemple, roles/storage.admin vous permet de contrôler totalement les buckets et les objets Cloud Storage de votre projet.
Pour en savoir plus sur les rôles IAM, consultez le guide Comprendre les rôles IAM.
Créez une clé privée pour votre compte de service dans le répertoire actuel.
gcloud iam service-accounts keys create ./service-account-key.json \ --iam-account $SA_NAME@$PROJECT_ID.iam.gserviceaccount.com
Configurez
kubectl
pour vous connecter à votre cluster, puis créez le 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 -
Procédez à un nettoyage afin de supprimer la clé privée du compte de service.
rm ./service-account-key.json