Si vous souhaitez déployer une application Kubernetes dans des configurations de clusters autres que Google Kubernetes Engine (GKE), telles qu'un cluster Anthos exécutant Anthos Clusters on VMware, ou un cluster exécutant Istio, vous devez effectuer les tâches correspondantes décrites dans cette section.
Selon l'application que vous déployez, des étapes supplémentaires peuvent être nécessaires pour exécuter l'application sur votre cluster. Pour en savoir plus sur la configuration de l'application, consultez la documentation du fournisseur d'applications.
Accéder aux applications Anthos dans Google Cloud Marketplace
Déployer sur des clusters exécutant Istio
Sur les clusters exécutant Istio, les connexions externes aux services tiers (tels que les dépôts de packages des OS) sont par défaut bloquées. Vous devez configurer le trafic Istio sortant pour autoriser l'accès aux services externes.
Déployer sur des clusters Anthos sur VMware
Vous ne pouvez déployer des clusters Anthos Clusters on VMware que pour des applications Cloud Marketplace compatibles avec cette configuration. Pour vérifier si une application est compatible avec Anthos Clusters on VMware, ouvrez la fiche Cloud Marketplace de l'application et recherchez la phrase suivante dans la présentation : "L'application est compatible avec un déploiement GKE On-Prem".
Après avoir vérifié que l'application est compatible avec Anthos Clusters on VMware, effectuez les tâches suivantes avant de déployer l'application :
Si vous déployez l'application depuis Cloud Marketplace, vous devez vous connecter à votre cluster Anthos Clusters on VMware à l'aide d'un jeton ou des identifiants associés à un compte de service Kubernetes (KSA) doté du rôle Kubernetes
cluster-admin
.Si vous déployez l'application à l'aide de la ligne de commande, vous devez disposer du rôle
cluster-admin
pour les clusters Anthos sur le cluster VMware.Vous devez configurer un accès réseau à Container Registry pour que votre cluster puisse télécharger les images de conteneur de l'application.
Vous devez configurer l'authentification Docker sur votre cluster Anthos Clusters on VMware pour accéder à Container Registry afin d'accéder aux images de l'application.
Une fois ces tâches terminées, ouvrez la fiche Cloud Marketplace de l'application et suivez les étapes de déploiement de l'application.
Configurer l'accès réseau à Container Registry
Pour télécharger les images de conteneur de l'application, assurez-vous que votre cluster dispose d'un accès réseau à Container Registry. Votre hôte de cluster doit être en mesure de pinguer marketplace.gcr.io
. Pour activer l'accès, vous pouvez être amené à effectuer l'une ou plusieurs des opérations suivantes :
Créez une règle de pare-feu pour autoriser l'accès à
marketplace.gcr.io
.Si vous utilisez un proxy HTTP ou HTTPS, autorisez
marketplace.gcr.io/*
et configurez le daemon Docker pour extraire des images via votre proxy.Pour obtenir la procédure détaillée, consultez la page Règles de proxy et de pare-feu.
Si vous utilisez un cloud privé virtuel (VPC), configurez votre hôte pour un accès privé à Google.
Si vous souhaitez utiliser un registre privé pour votre installation Anthos Clusters on VMware, configurez votre registre Docker et copiez les images à partir de l'application.
Pour connaître la procédure détaillée, consultez la page Configurer un registre Docker privé pour l'installation.
Configurer l'authentification Docker pour accéder à Container Registry
Pour permettre à votre cluster Anthos Clusters on VMware d'accéder aux images d'application dans Container Registry, vous devez créer une clé de compte de service Google Cloud et annoter l'espace de noms de l'application avec cette clé. La clé est ensuite appliquée en tant que imagePullSecret
au compte de service Kubernetes (KSA) par défaut de l'espace de noms lorsque vous déployez l'application.
La première fois que vous déployez une application sur un cluster Anthos Clusters on VMware, vous devez également créer un espace de noms appelé application-system
pour les composants Cloud Marketplace, puis appliquer un imagePullSecret
au compte de service par défaut de l'espace de noms.
Suivez ces étapes pour configurer l'authentification sur Container Registry :
Créez un compte de service Google Cloud. Vous n'avez pas besoin d'attribuer de rôles au compte de service.
Pour en savoir plus sur la création d'un compte de service, consultez la page Créer et gérer des comptes de service.
Créez une clé pour le compte de service et téléchargez-la sous forme de fichier JSON. Pour en savoir plus sur la création et le téléchargement de la clé, consultez la page Créer et gérer les clés de comptes de service.
Le cas échéant, téléchargez la clé JSON sur le poste de travail que vous utilisez pour vous connecter à vos clusters Anthos sur le cluster VMware.
Si vous déployez une application à partir de Cloud Marketplace pour la première fois, suivez la procédure ci-dessous afin de configurer votre espace de noms
application-system
avec un secret pour accéder à Container Registry. Si vous avez déjà configuré l'espace de noms, ignorez cette étape.Créez un espace de noms
application-system
dans votre cluster.Créez le secret qui contient un
imagePullSecret
pourapplication-system
, à l'aide de la commande suivante :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)"
Appliquez ce
imagePullSecret
au ServiceAccount par défaut dans l'espace de nomsapplication-system
, à l'aide de la commande suivante :kubectl patch sa default -n application-system -p '"imagePullSecrets": [{"name": "gcr-json-key" }]'
Pour chaque espace de noms sur lequel vous souhaitez déployer une application, vous devez créer un nouveau secret Kubernetes et annoter l'espace de noms avec le secret. Vous ne pouvez pas réutiliser un secret d'un autre espace de noms.
Créez un secret Kubernetes pour accéder à Container Registry à l'aide de la clé de compte de service 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)"
Où
$NAMESPACE_NAME
est l'espace de noms que vous souhaitez utiliser pour l'application.Annotez l'espace de noms de l'application à l'aide de la commande suivante :
kubectl annotate namespace $NAMESPACE_NAME marketplace.cloud.google.com/imagePullSecret=$IMAGEPULLSECRET_NAME
Utilisez cet espace de noms lorsque vous déployez l'application à partir de Cloud Marketplace, comme décrit dans la section Déployer une application Kubernetes.