Cette page a été traduite par l'API Cloud Translation.
Switch to English

Déployer des applications Kubernetes sur des clusters non-Google Kubernetes Engine (GKE)

Si vous souhaitez déployer une application Kubernetes dans des configurations de cluster autres que Google Kubernetes Engine (GKE), telles qu'un cluster Anthos exécutant clusters Anthos sur VMware. ou un cluster exécutant Istio, vous devez effectuer les tâches de cette section, le cas échéant.

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 de son fournisseur.

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 sur des clusters VMware que dans des applications Cloud Marketplace compatibles avec cette configuration. Pour vérifier si une application est compatible avec les clusters Anthos sur VMware, ouvrez la liste Cloud Marketplace de l'application et recherchez la déclaration suivante dans la présentation: "L'application est compatible avec le déploiement GKE On-Prem".

Après avoir vérifié que l'application est compatible avec les clusters Anthos sur VMware, effectuez les tâches suivantes avant de déployer l'application:

Une fois ces tâches terminées, ouvrez la liste Cloud Marketplace de l'application et suivez la procédure 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 :

Configurer l'authentification Docker pour accéder à Container Registry

Pour permettre aux clusters Anthos sur 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 des clusters Anthos sur un cluster VMware, vous devez également créer un espace de noms appelé application-system pour les composants Cloud Marketplace et appliquer un imagePullSecret au compte de service par défaut pour l'espace de noms.

Suivez ces étapes pour configurer l'authentification sur Container Registry :

  1. 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.

  2. 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.

  3. 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.

  4. Si vous déployez une application depuis Cloud Marketplace pour la première fois, procédez comme suit pour 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.

    1. Créez un espace de noms application-system dans votre cluster.

    2. Créez le secret qui contient un imagePullSecret pour application-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)"
      
    3. Appliquez ce imagePullSecret au ServiceAccount par défaut dans l'espace de noms application-system, à l'aide de la commande suivante :

      kubectl patch sa default -n application-system -p '"imagePullSecrets": [{"name": "gcr-json-key" }]'
      
  5. Pour chaque espace de noms sur lequel vous souhaitez déployer une application, vous devez créer un 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.

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

      $NAMESPACE_NAME correspond à l'espace de noms que vous souhaitez utiliser pour l'application.

    2. 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.