Configurer vous-même votre projet et votre cluster GKE
Lorsque vous installez Cloud Service Mesh à l'aide de
asmcli
, elle peut
configurer votre projet et votre cluster GKE sur Google Cloud
si vous incluez l'option --enable_all
ou l'option plus précise
options d'activation.
Si vous préférez effectuer la configuration vous-même plutôt que de demander à asmcli
d'effectuer les modifications, suivez les étapes décrites sur cette page.
Si une version précédente de Cloud Service Mesh est déjà installée, vous
vous n'avez pas besoin d'apporter de modifications à votre projet ou cluster avant d'utiliser
asmcli
pour passer à la dernière version
Version de Cloud Service Mesh.
Par défaut, asmcli
n'installe pas la istio-ingressgateway
. Nous vous recommandons de déployer et de gérer le plan de contrôle et les passerelles séparément.
Cloud Service Mesh est compatible avec l'injection automatique pour les déploiements de passerelles, ce qui facilite les mises à niveau de Cloud Service Mesh. Après la mise à niveau
Cloud Service Mesh, vous redémarrez les passerelles de la même manière que vos services
la nouvelle configuration du plan de contrôle. Pour en savoir plus, consultez la section Installer et mettre à niveau des passerelles.
Avant de commencer
- Passez en revue les conditions préalables et la configuration requise.
- Planifiez l'installation ou la mise à niveau.
- Installez les outils nécessaires.
Configurer votre projet
Obtenez l'ID et le numéro du projet dans lequel le cluster a été créé.
gcloud
Exécutez la commande suivante :
gcloud projects list
Console
Accédez à la page Tableau de bord de la console Google Cloud.
Cliquez sur la liste déroulante en haut de la page. Sélectionnez votre projet dans la fenêtre Sélectionner qui s'affiche.
L'ID et le numéro du projet sont tous deux affichés sur la fiche Informations sur le projet du tableau de bord du projet.
Créez les variables d'environnement suivantes :
Définissez le pool de charges de travail à l'aide de l'ID du projet :
export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
Définissez l'ID de maillage à l'aide du numéro de projet :
export MESH_ID="proj-PROJECT_NUMBER"
Définissez les rôles IAM (gestion de l'authentification et des accès). Si vous êtes un propriétaire de projet, vous disposez de toutes les autorisations nécessaires pour terminer l'installation. Si vous n'êtes pas un propriétaire de projet, quelqu'un doit vous accorder les rôles IAM spécifiques suivants. Dans la commande suivante, remplacez
PROJECT_ID
par l'ID du projet de l'étape précédente etGCP_EMAIL_ADDRESS
par le compte que vous utilisez pour vous connecter à Google Cloud.ROLES=( 'roles/servicemanagement.admin' \ 'roles/serviceusage.serviceUsageAdmin' \ 'roles/meshconfig.admin' \ 'roles/compute.admin' \ 'roles/container.admin' \ 'roles/resourcemanager.projectIamAdmin' \ 'roles/iam.serviceAccountAdmin' \ 'roles/iam.serviceAccountKeyAdmin' \ 'roles/gkehub.admin') for role in "${ROLES[@]}" do gcloud projects add-iam-policy-binding PROJECT_ID \ --member "user:GCP_EMAIL_ADDRESS" \ --role="$role" done
Si vous incluez l'option
--enable_all
ou--enable_gcp_iam_roles
lorsque vous exécutezasmcli
, celle-ci définit les rôles IAM requis pour vous.Activez les API Google requises :
gcloud services enable \ --project=PROJECT_ID \ mesh.googleapis.com
Outre
mesh.googleapis.com
, cette commande active également les API suivantes :API Objectif Peut-être désactivé meshconfig.googleapis.com
Cloud Service Mesh utilise l'API Mesh Configuration pour relayer les données de configuration de votre réseau maillé vers Google Cloud. De plus, l'activation de l'API Mesh Configuration vous permet d'accéder aux pages Cloud Service Mesh dans la console Google Cloud et d'utiliser l'autorité de certification Cloud Service Mesh. Non meshca.googleapis.com
Lié à l'autorité de certification Cloud Service Mesh utilisée par Cloud Service Mesh géré. Non container.googleapis.com
Obligatoire pour créer des clusters Google Kubernetes Engine (GKE). Non gkehub.googleapis.com
Obligatoire pour gérer le maillage en tant que parc. Non monitoring.googleapis.com
Obligatoire pour capturer la télémétrie pour les charges de travail du réseau maillé. Non stackdriver.googleapis.com
Obligatoire pour utiliser l'interface utilisateur des services. Non opsconfigmonitoring.googleapis.com
Obligatoire pour utiliser l'interface utilisateur des services pour les clusters hors Google Cloud. Non connectgateway.googleapis.com
Obligatoire pour que le plan de contrôle Cloud Service Mesh géré puisse accéder aux charges de travail du maillage. Oui* trafficdirector.googleapis.com
Active un plan de contrôle géré hautement disponible et évolutif. Oui* networkservices.googleapis.com
Active un plan de contrôle géré hautement disponible et évolutif. Oui* networksecurity.googleapis.com
Active un plan de contrôle géré hautement disponible et évolutif. Oui* L'activation des API peut prendre une minute ou plus. Lorsque les API sont activées, un résultat semblable au suivant s'affiche :
Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished successfully.
Si vous incluez l'option
--enable_all
ou--enable_apis
lorsque vous exécutez la commandeasmcli
, celle-ci active les API requises pour vous.
Configurer votre cluster
Si vous incluez l'option --enable_all
ou l'une des options d'activation plus précises, le script asmcli
configure votre cluster pour vous.
Définissez la zone ou la région par défaut pour Google Cloud CLI. Si vous ne définissez pas la valeur par défaut ici, veillez à spécifier l'option
--zone
ou--region
dans les commandesgcloud container clusters
de cette page.Si vous disposez d'un cluster à zone unique, définissez la zone par défaut :
gcloud config set compute/zone CLUSTER_LOCATION
Si vous disposez d'un cluster régional, définissez la région par défaut :
gcloud config set compute/region CLUSTER_LOCATION
Définissez le libellé
mesh_id
sur le cluster. Si votre cluster contient des libellés existants que vous souhaitez conserver, vous devez les inclure lors de l'ajout du libellémesh_id
.Pour savoir si votre cluster possède des libellés existants, procédez comme suit :
gcloud container clusters describe CLUSTER_NAME \ --project PROJECT_ID
Recherchez le champ
resourceLabels
dans le résultat. Chaque libellé est stocké sur une ligne distincte du champresourceLabels
, par exemple :resourceLabels: csm: '' env: dev release: stable
Pour plus de commodité, vous pouvez ajouter les libellés à une variable d'environnement. Dans la commande suivante, remplacez
YOUR_EXISTING_LABELS
par la liste des libellés existants de votre cluster (séparés par une virgule) au formatKEY=VALUE
, par exemple :env=dev,release=stable
export EXISTING_LABELS="YOUR_EXISTING_LABELS"
Définissez le libellé
mesh_id
:Si votre cluster contient des libellés existants que vous souhaitez conserver, mettez à jour le cluster avec le libellé
mesh_id
et les libellés existants :gcloud container clusters update CLUSTER_NAME \ --project PROJECT_ID \ --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}
Si votre cluster ne comporte aucun libellé existant, mettez-le à jour uniquement avec le libellé
mesh_id
:gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --update-labels=mesh_id=${MESH_ID}
Activer Workload Identity
gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --workload-pool=${WORKLOAD_POOL}
L'activation de Workload Identity peut nécessiter de 10 à 15 minutes.
Initialisez votre projet afin de le préparer pour l'installation. Cette commande crée, entre autres, un compte de service pour permettre aux composants du plan de données, tels que le proxy side-car, d'accéder en toute sécurité aux données et aux ressources du projet. Dans la commande suivante, remplacez
FLEET_PROJECT_ID
par le projet hôte du parc.curl --request POST \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Content-Type: application/json" \ --data '{"workloadIdentityPools":["FLEET_PROJECT_ID.hub.id.goog","FLEET_PROJECT_ID.svc.id.goog","PROJECT_ID.svc.id.goog"]}' \ "https://meshconfig.googleapis.com/v1alpha1/projects/PROJECT_ID:initialize"
La commande renvoie des accolades vides :
{}
.Activez Cloud Monitoring et Cloud Logging sur GKE :
gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --enable-stackdriver-kubernetes
Votre projet et votre cluster sont maintenant prêts pour une nouvelle installation à l'aide de la commande asmcli
.