Ce guide vous explique comment configurer un cluster Google Kubernetes Engine (GKE) et activer Cloud Run for Anthos. Vous pouvez activer Cloud Run for Anthos sur des clusters GKE standards et privés à l'aide de la console Google Cloud ou de Google Cloud CLI.
L'activation de Cloud Run for Anthos installe Istio et Knative Serving dans le cluster pour connecter et gérer vos charges de travail sans état. Pour en savoir plus, consultez la page Présentation de l'architecture de Cloud Run for Anthos.
Avant de commencer
- Cloud Run for Anthos est un module complémentaire de Google Kubernetes Engine. Un essai gratuit est disponible jusqu'au 30 septembre 2021.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Configurer l'environnement de ligne de commande
Bien que vous puissiez choisir d'utiliser la console Google Cloud ou la CLI gcloud pour gérer Cloud Run for Anthos, certaines tâches requièrent gcloud CLI.
Pour configurer les outils de ligne de commande gcloud
et kubectl
pour Cloud Run for Anthos, procédez comme suit :
Définissez le paramètre de projet par défaut pour gcloud CLI sur celui que vous venez de créer ou sur un projet existant que vous souhaitez utiliser :
gcloud config set project PROJECT-ID
Remplacez PROJECT-ID par l'ID du projet que vous avez créé.
Définissez
zone
sur la zone souhaitée pour votre cluster. Vous pouvez utiliser n'importe quelle zone dans laquelle GKE est disponible. Exemple :gcloud config set compute/zone ZONE
Remplacez ZONE par votre zone.
Activez les API suivantes pour le projet, lesquelles sont nécessaires pour créer un cluster et un conteneur, puis publier le conteneur dans le registre Google Kubernetes Engine :
gcloud services enable container.googleapis.com containerregistry.googleapis.com cloudbuild.googleapis.com
Installer l'outil de ligne de commande
kubectl
:gcloud components install kubectl
Mettez à jour les composants de gcloud CLI installés :
gcloud components update
Activer Cloud Run for Anthos
Cloud Run for Anthos s'exécute sur un cluster GKE. Vous pouvez activer Cloud Run for Anthos sur un cluster existant ou créer un cluster avec Cloud Run for Anthos activé.
Choisissez la manière dont vous souhaitez configurer Cloud Run for Anthos :
Cloud Run for Anthos peut également être activé sur des clusters privés GKE. Pour en savoir plus sur la création d'un cluster GKE privé, reportez-vous à la section Créer un cluster privé dans la documentation GKE.
Créer un cluster GKE avec Cloud Run for Anthos activé
Ces instructions permettent de créer un cluster avec les configurations suivantes :
- Cloud Run for Anthos activé
- Version de Kubernetes : versions GKE disponibles
- 4 nœuds avec 2 processeurs virtuels
- Espace de noms par défaut :
default
Voici les configurations de cluster recommandées pour tester Cloud Run for Anthos. Pour les charges de travail de production, vous devez configurer votre cluster GKE pour répondre à vos besoins spécifiques. Pour en savoir plus sur les différents types de clusters GKE et leurs options de configuration, consultez la section Types de clusters dans la documentation GKE.
Pour créer un cluster et activer Cloud Run for Anthos, procédez comme suit :
Créer un cluster :
gcloud container clusters create CLUSTER-NAME \ --zone=ZONE \ --addons=HttpLoadBalancing,CloudRun \ --machine-type=e2-standard-4 \ --num-nodes=4 \ --cluster-version=GKE-VERSION \ --enable-stackdriver-kubernetes
CLUSTER-NAME est le nom que vous souhaitez donner à votre cluster.
ZONE correspond à la zone Compute Engine souhaitée pour votre cluster.
GKE-VERSION correspond à la version de GKE souhaitée. Consultez les versions disponibles.
L'autoscaling de cluster n'est pas activé par défaut, même si Cloud Run for Anthos adapte automatiquement le nombre d'instances au sein de votre cluster en fonction de la capacité disponible.
Patientez pendant la création du cluster.
Activer Cloud Run for Anthos sur un cluster existant
Votre cluster GKE doit avoir la configuration minimale suivante :
- 4 nœuds avec 4 processeurs virtuels Si vous devez modifier le type de machine de votre cluster, consultez la page Migrer des charges de travail vers différents types de machines.
- Portées :
https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/monitoring.write
Vous pouvez activer Cloud Run for Anthos sur un cluster à l'aide de gcloud CLI ou de la console Google Cloud :
Console
Pour activer Cloud Run for Anthos sur un cluster existant, procédez comme suit :
Accédez à la page "Google Kubernetes Engine" dans la console Google Cloud :
Cliquez sur le nom du cluster dans lequel vous souhaitez activer Cloud Run for Anthos.
Cliquez sur Modifier.
Cliquez sur Activer Cloud Run for Anthos.
Cliquez sur Enregistrer. Une fois la mise à jour terminée, le cluster sera compatible avec Cloud Run pour Anthos.
Ligne de commande
Pour activer Cloud Run for Anthos sur un cluster existant, procédez comme suit :
Activez le cluster à l'aide de la commande suivante :
gcloud container clusters update \ CLUSTER_NAME \ --update-addons=CloudRun=ENABLED,HttpLoadBalancing=ENABLED \ --zone=ZONE
Remplacez les éléments suivants :
- CLUSTER_NAME : nom du cluster.
- ZONE : zone du cluster. Par exemple,
us-central1-a
.
Attendez la fin de l'activation. Si l'opération réussit, la ligne de commande renvoie un message semblable à celui-ci :
Updating your-cluster-name...done.
Configurer les paramètres par défaut de la CLI gcloud
Après avoir créé le cluster, vous pouvez définir les valeurs par défaut que Google Cloud CLI doit utiliser. Lorsque vous utilisez la ligne de commande, les invites ultérieures sont supprimées pour les valeurs par défaut que vous avez définies, telles que le nom ou l'emplacement du cluster.
Vous pouvez configurer les paramètres par défaut suivants :
- Nom du cluster
- Emplacement du cluster
- Identifiants
- son espace de noms.
- Plate-forme
Pour définir des valeurs par défaut, procédez comme suit :
Définissez le cluster et l'emplacement du cluster par défaut, puis obtenez les identifiants en exécutant les commandes suivantes :
gcloud config set run/platform gke gcloud config set run/cluster CLUSTER gcloud config set run/cluster_location ZONE gcloud container clusters get-credentials CLUSTER
Remplacez :
- CLUSTER par le nom du cluster ;
- ZONE par l'emplacement du cluster.
Par défaut, votre cluster est créé avec un espace de noms intitulé
default
. Pour en savoir plus sur les espaces de noms ainsi que sur les raisons pour lesquelles vous pourriez créer et utiliser un espace de noms autre quedefault
, consultez la page sur les espaces de noms.Pour créer un espace de noms, exécutez la commande suivante :
kubectl create namespace NAMESPACE
Remplacez NAMESPACE par le nom de l'espace de noms que vous souhaitez créer.
Si vous avez créé un espace de noms à l'étape précédente, vous pouvez le définir comme espace de noms par défaut utilisé chaque fois que vous appelez Google Cloud CLI. Sinon, l'espace de noms
default
est utilisé. Pour définir votre nouvel espace de noms, exécutez la commande suivante :gcloud config set run/namespace NAMESPACE
Remplacez NAMESPACE par le nom de l'espace de noms que la CLI gcloud doit utiliser par défaut.
Activer les métriques sur un cluster avec Workload Identity
Lorsque vous activez Workload Identity, Cloud Run pour Anthos ne remonte pas certaines métriques, telles que le nombre de requêtes de révision ou la latence des requêtes, à la suite Google Cloud Operations. Il continue néanmoins à générer des rapports sur les métriques associées au processeur et à la mémoire.
Pour activer l'ensemble des métriques, vous devez définir manuellement les autorisations d'écriture de métriques dans Cloud Monitoring en attribuant le rôle "Rédacteur de métriques Monitoring" au compte de service Google (GSA, Google Service Account) associé à votre service Cloud Run pour Anthos.
Accordez au GSA de votre service les autorisations liées au rôle "Rédacteur de métriques Monitoring" :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:GSA_NAME@GSA_PROJECT.iam.gserviceaccount.com \ --role=roles/monitoring.metricWriter
Remplacez :
- PROJECT_ID par l'ID du projet de cluster où se trouve votre KSA ;
- GSA_PROJECT par l'ID de projet associé à un GSA qui n'est pas dans le cluster. Vous pouvez utiliser n'importe quel GSA de votre organisation.
Pour en savoir plus, consultez la page Accorder, modifier et révoquer les accès à des ressources.
Pour configurer les services fournis par les API Google Cloud (tels que les API Compute, les API Storage et Database, ou les API Machine Learning) depuis votre cluster GKE, consultez la page Utiliser Workload Identity.
Développer dans une configuration mutualisée
Dans les cas d'utilisation mutualisés, vous devez gérer et déployer les services Cloud Run pour Anthos sur un cluster Google Kubernetes Engine situé en dehors de votre projet actuel. Pour en savoir plus sur l'architecture mutualisée de GKE, consultez la page Architecture de cluster mutualisée.
Pour savoir comment configurer l'architecture mutualisée pour Cloud Run for Anthos, consultez la page Architecture mutualisée et multi-projets.
Configurer un réseau interne privé
Le déploiement de services sur un réseau interne est utile pour les entreprises qui fournissent des applications internes à leur personnel, ainsi que pour les services utilisés par des clients et s'exécutant en dehors du cluster Cloud Run pour Anthos. Cette configuration permet aux autres ressources de votre réseau de communiquer avec le service via une adresse IP privée interne (RFC 1918) qui n'est pas accessible au public.
Pour créer votre réseau interne, configurez la passerelle d'entrée d'Istio pour qu'elle utilise l'équilibrage de charge TCP/UDP interne plutôt qu'un équilibreur de charge public du réseau externe. Vous pouvez ensuite déployer vos services Cloud Run pour Anthos sur une adresse IP interne au sein de votre réseau VPC.
Avant de commencer
- Vous devez disposer d'autorisations
admin
sur votre cluster. - Seules les versions 310.0 ou ultérieures de Google Cloud CLI sont compatibles. Pour en savoir plus, consultez la section Configurer gcloud.
Pour configurer l'équilibreur de charge interne, procédez comme suit :
Mettez à jour la passerelle d'entrée Istio pour utiliser l'équilibrage de charge TCP/UDP interne en créant un cluster ou en mettant à jour un cluster existant :
Créez un cluster avec un équilibreur de charge interne :
gcloud container clusters create CLUSTER_NAME \ --addons=HttpLoadBalancing,CloudRun \ --machine-type=n1-standard-2 \ --num-nodes=3 \ --enable-stackdriver-kubernetes \ --cloud-run-config=load-balancer-type=INTERNAL
Mettez à jour un cluster existant pour utiliser un équilibreur de charge interne :
gcloud container clusters update CLUSTER_NAME --update-addons=CloudRun=ENABLED \ --cloud-run-config=load-balancer-type=INTERNAL
La prise en compte de la modification peut prendre quelques minutes.
Exécutez la commande suivante pour surveiller les mises à jour de votre cluster GKE :
kubectl -n gke-system get svc istio-ingress --watch
- Notez l'annotation "cloud.google.com/load-balancer-type: Internal".
- Recherchez la valeur de
IP
dans l'équilibreur de charge d'entrée pour passer à une adresse IP privée. - Appuyez sur
Ctrl+C
pour arrêter les actualisations lorsque vous voyez une adresse IP privée dans le champIP
.
Pour vérifier la connectivité interne une fois les modifications effectuées, procédez comme suit :
Déployez un service appelé
sample
sur Cloud Run pour Anthos dans l'espace de nomsdefault
:gcloud run deploy sample \ --image gcr.io/knative-samples/helloworld \ --namespace default
Créez une machine virtuelle (VM) Compute Engine dans la même zone que le cluster GKE :
VM=cloudrun-gke-ilb-tutorial-vm gcloud compute instances create $VM
Stockez l'adresse IP privée de la passerelle d'entrée Istio dans une variable d'environnement nommée
EXTERNAL_IP
et un fichier nomméexternal-ip.txt
:export EXTERNAL_IP=$(kubectl -n gke-system get svc istio-ingress \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}' | tee external-ip.txt)
Copiez le fichier contenant l'adresse IP sur la VM :
gcloud compute scp external-ip.txt $VM:~
Connectez-vous à la VM à l'aide de SSH :
gcloud compute ssh $VM
Dans la session SSH, testez l'exemple de service :
curl -s -w'\n' -H Host:sample.default.example.com $(cat external-ip.txt)
Voici le résultat :
Hello World!
Quittez la session SSH :
exit
Utiliser une installation Istio distincte
Les instructions suivantes expliquent comment connecter Anthos Service Mesh, le module complémentaire Istio sur GKE ou une installation Istio personnalisée avec Cloud Run for Anthos, en plus des composants Istio déjà installés par défaut dans Cloud Run for Anthos sur Google Cloud.
Les composants Istio inclus dans l'installation par défaut de Cloud Run for Anthos ne sont actuellement pas compatibles avec l'injection side-car automatique. Cependant, vous pouvez utiliser une installation Istio supplémentaire pour activer l'injection side-car Istio dans l'espace de noms où vos services s'exécutent.
Pour utiliser une installation Istio supplémentaire, vous devez vérifier que la passerelle d'entrée Istio est nommée istio-ingressgateway
dans l'espace de noms istio-system
.
Cloud Run pour Anthos peut prendre en charge et gérer le trafic externe provenant des passerelles d'entrée Istio installées sur :
- l'espace de noms
istio-system
, avec le domaine local du clusteristio-ingressgateway.istio-system.svc.cluster.local
configuré par défaut lorsque vous utilisez une installation Istio supplémentaire ; - l'espace de noms
gke-system
, avec le domaine local du clusteristio-ingress.gke-system.svc.cluster.local
configuré avec l'installation par défaut de Cloud Run for Anthos.
Important : Si vous configurez et utilisez le fichier AuthorizationPolicy
d'Istio, vous devez corriger une faille connue avec la correspondance du type de chemin pour le contrôle des accès. Pour en savoir plus sur la prévention de l'exposition à la faille, consultez la page Bonnes pratiques concernant la sécurité.
Pour vérifier la passerelle d'entrée Istio supplémentaire que Cloud Run pour Anthos utilise, procédez comme suit :
Ouvrez le fichier ConfigMap
config-istio
:kubectl get configmap config-istio --namespace knative-serving -oyaml
Vérifiez que la passerelle d'entrée Istio supplémentaire est nommée
istio-ingressgateway
et qu'elle se trouve dans l'espace de nomsistio-system
.
Activer le protocole HTTPS et des domaines personnalisés
Si vous souhaitez utiliser HTTPS et des domaines personnalisés qui s'appliquent au cluster, consultez les pages Activer les certificats HTTPS et TLS automatiques et Mapper les domaines personnalisés.
Désactiver Cloud Run pour Anthos
Pour désactiver Cloud Run for Anthos dans votre cluster, procédez comme suit :
Accédez à la page "Google Kubernetes Engine" dans la console Google Cloud :
Cliquez sur le cluster dans lequel vous souhaitez désactiver Cloud Run for Anthos.
Cliquez sur Modifier.
Dans le menu Cloud Run for Anthos, sélectionnez Désactiver.
Cliquez sur Enregistrer.
Étapes suivantes
- Présentation de l'architecture de Cloud Run pour Anthos
- Activer les certificats HTTPS et TLS automatiques
- Déployer depuis un conteneur
- Créer des conteneurs
- Dépannage