Cette page explique comment configurer un cluster hybride GKE sur Bare Metal en mode haute disponibilité à l'aide de machines virtuelles (VM) exécutées sur Compute Engine.
Vous pouvez essayer GKE sur une solution Bare Metal rapidement, sans avoir à préparer de matériel. Suivez les étapes décrites sur cette page pour obtenir un environnement de test GKE sur Bare Metal qui s'exécute sur Compute Engine.
Pour essayer GKE sur une solution Bare Metal sur des VM Compute Engine, procédez comme suit:
- Créez six VM dans Compute Engine.
- Créez un réseau
vxlan
avec une connectivité L2 entre toutes les VM. - Installer les prérequis pour GKE sur une solution Bare Metal
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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.
-
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.
- Notez l'ID du projet, car vous en aurez besoin pour définir une variable d'environnement utilisée dans les scripts et les commandes de cette page. Si vous avez sélectionné un projet existant, assurez-vous d'être propriétaire ou éditeur du projet.
-
Sur votre poste de travail Linux, assurez-vous d'avoir installé la dernière version de Google Cloud CLI, l'outil de ligne de commande permettant d'interagir avec Google Cloud. Si la gcloud CLI est déjà installée, mettez à jour ses composants en exécutant la commande suivante :
gcloud components update
Selon le mode d'installation de la gcloud CLI, le message suivant peut s'afficher: "Vous ne pouvez pas effectuer cette action, car le gestionnaire de composants de la Google Cloud CLI est désactivé pour cette installation. Vous pouvez exécuter la commande suivante pour obtenir le même résultat pour cette installation:" Suivez les instructions pour copier et coller la commande afin de mettre à jour les composants.
Les étapes de ce guide proviennent du script d'installation du dépôt anthos-samples. La section des questions fréquentes contient davantage d'informations sur la personnalisation de ce script pour qu'il fonctionne avec certaines variantes populaires.
Créer six VM dans Compute Engine
Pour créer les VM suivantes, procédez comme suit :
- Une VM pour le poste de travail administrateur. Un poste de travail administrateur héberge des outils d'interface de ligne de commande (CLI) et des fichiers de configuration permettant de provisionner les clusters lors de l'installation, ainsi que des outils d'interface de ligne de commande permettant d'interagir avec les clusters provisionnés après l'installation. Le poste de travail administrateur aura accès à tous les autres nœuds du cluster via SSH.
- Trois VM pour les trois nœuds du plan de contrôle nécessaires à l'exécution de GKE sur le plan de contrôle Bare Metal
- Deux VM pour les deux nœuds de calcul nécessaires à l'exécution des charges de travail sur le cluster GKE sur une solution Bare Metal.
Configurez des variables d'environnement :
export PROJECT_ID=PROJECT_ID export ZONE=ZONE export CLUSTER_NAME=CLUSTER_NAME export BMCTL_VERSION=1.16.8
Pour
ZONE
, vous pouvez utiliserus-central1-a
ou n'importe quelle autre zone Compute Engine .Exécutez les commandes suivantes pour vous connecter avec votre compte Google et définir votre projet comme projet par défaut :
gcloud auth login gcloud config set project $PROJECT_ID gcloud config set compute/zone $ZONE
Créez le compte de service
baremetal-gcr
:Activez les API et services Google Cloud :
Accordez au compte de service
baremetal-gcr
des autorisations supplémentaires pour ne pas avoir besoin de plusieurs comptes de service pour différents API et services :Créez les variables et les tableaux nécessaires pour toutes les commandes de cette page :
Utilisez la boucle suivante pour créer six VM :
Cette commande crée des instances de VM portant les noms suivants:
- abm-ws: VM du poste de travail administrateur.
- abm-cp1, abm-cp2 et abm-cp3: VM pour les nœuds du plan de contrôle
- abm-w1 et abm-w2: VM des nœuds qui exécutent les charges de travail.
Utilisez la boucle suivante pour vérifier que SSH est prêt sur toutes les VM :
Créer un réseau vxlan
avec une connectivité L2 entre les VM
Utilisez la fonctionnalité vxlan
standard de Linux pour créer un réseau qui connecte toutes les VM avec la connectivité L2.
La commande suivante contient deux boucles effectuant les actions suivantes :
- Connectez-vous en SSH à chaque VM.
- Mettez à jour et installez les packages nécessaires.
Exécutez les commandes requises pour configurer le réseau avec
vxlan
.
Vous disposez désormais d'une connectivité L2 au sein du réseau 10.200.0.0/24. Les VM ont les adresses IP suivantes :
- VM du poste de travail administrateur: 10.200.0.2
- VM exécutant les nœuds du plan de contrôle :
- 10.200.0.3
- 10.200.0.4
- 10.200.0.5
- VM exécutant les nœuds de calcul :
- 10.200.0.6
- 10.200.0.7
Installer les prérequis pour GKE sur une solution Bare Metal
Vous devez installer les outils suivants sur le poste de travail administrateur avant d'installer GKE sur une solution Bare Metal:
bmctl
kubectl
- Docker
Pour installer les outils et vous préparer à l'installation de GKE sur une solution Bare Metal, procédez comme suit:
Exécutez les commandes suivantes pour télécharger la clé du compte de service sur le poste de travail administrateur et installer les outils requis:
Exécutez les commandes suivantes pour vous assurer que
root@10.200.0.x
fonctionne. Les commandes effectuent les tâches suivantes:- Générez une nouvelle clé SSH sur le poste de travail administrateur.
- Ajout de la clé publique à toutes les autres VM du déploiement
Déployer un cluster hybride GKE sur une solution Bare Metal
Le bloc de code suivant contient toutes les commandes et configurations nécessaires à la réalisation des tâches suivantes :
- Création du fichier de configuration pour le cluster hybride nécessaire
- Exécution des vérifications préliminaires
- Déployez le cluster.
Vérifier le cluster
Vous trouverez le fichier kubeconfig
de votre cluster sur le poste de travail administrateur dans le répertoire bmctl-workspace
du compte racine. Pour vérifier votre déploiement, procédez comme suit.
Connectez-vous en SSH au poste de travail administrateur en tant qu'utilisateur racine:
gcloud compute ssh root@abm-ws --zone ${ZONE}
Vous pouvez ignorer tous les messages concernant la mise à jour de la VM et suivre ce tutoriel. Si vous envisagez de conserver les VM dans un environnement de test, vous pouvez mettre à jour le système d'exploitation ou passer à la version suivante, comme décrit dans la documentation Ubuntu.
Définissez la variable d'environnement
KUBECONFIG
avec le chemin d'accès au fichier de configuration du cluster pour exécuter les commandeskubectl
sur le cluster.export clusterid=CLUSTER_NAME export KUBECONFIG=$HOME/bmctl-workspace/$clusterid/$clusterid-kubeconfig kubectl get nodes
Définissez le contexte actuel dans une variable d'environnement:
export CONTEXT="$(kubectl config current-context)"
Exécutez la commande
gcloud
suivante. Cette commande :- Attribue à votre compte utilisateur le rôle Kubernetes
clusterrole/cluster-admin
sur le cluster. - Il configure le cluster afin que vous puissiez exécuter des commandes
kubectl
sur votre ordinateur local sans avoir à vous connecter en SSH au poste de travail administrateur.
Remplacez
GOOGLE_ACCOUNT_EMAIL
par l'adresse e-mail associée à votre compte Google Cloud. Exemple :--users=alex@example.com
.gcloud container fleet memberships generate-gateway-rbac \ --membership=CLUSTER_NAME \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=$KUBECONFIG \ --context=$CONTEXT\ --apply
Le résultat de cette commande ressemble à ce qui suit, qui est tronqué par souci de lisibilité:
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: /root/bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig, context: CLUSTER_NAME-admin@CLUSTER_NAME Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
- Attribue à votre compte utilisateur le rôle Kubernetes
Lorsque vous avez terminé l'exploration, saisissez exit pour vous déconnecter du poste de travail administrateur.
Obtenez l'entrée
kubeconfig
qui peut accéder au cluster via la passerelle Connect.gcloud container fleet memberships get-credentials CLUSTER_NAME
Le résultat ressemble à ce qui suit :
Starting to build Gateway kubeconfig... Current project_id: PROJECT_ID A new kubeconfig entry "connectgateway_PROJECT_ID_global_CLUSTER_NAME" has been generated and set as the current context.
Vous pouvez maintenant exécuter des commandes
kubectl
via la passerelle Connect:kubectl get nodes kubectl get namespaces
Se connecter à votre cluster depuis la console Google Cloud
Pour observer vos charges de travail sur GKE sur une solution Bare Metal dans la console Google Cloud, vous devez vous connecter au cluster. Avant de vous connecter à la console pour la première fois, vous devez configurer une méthode d'authentification. La méthode d'authentification la plus simple à configurer est l'identité Google. Cette méthode d'authentification vous permet de vous connecter à l'aide de l'adresse e-mail associée à votre compte Google Cloud.
La commande gcloud container fleet memberships generate-gateway-rbac
que vous avez exécutée dans la section précédente configure le cluster afin que vous puissiez vous connecter avec votre identité Google.
Dans la console Google Cloud, accédez à la page Clusters GKE.
Cliquez sur
Actions à côté du cluster enregistré, puis sur Connexion.Sélectionnez Utilisez votre identité Google pour vous connecter.
Cliquez sur Login (Connexion).
Effectuer un nettoyage
Connectez-vous au poste de travail administrateur pour rétablir l'état des VM du cluster avant l'installation et annuler l'enregistrement du cluster dans votre projet Google Cloud:
gcloud compute ssh root@abm-ws --zone ${ZONE} << EOF set -x export clusterid=CLUSTER_NAME bmctl reset -c \$clusterid EOF
Répertoriez toutes les VM dont le nom contient
abm
:gcloud compute instances list | grep 'abm'
Vérifiez que vous êtes prêt à supprimer toutes les VM dont le nom contient
abm
.Une fois la vérification effectuée, vous pouvez supprimer les VM
abm
en exécutant la commande suivante :gcloud compute instances list --format="value(name)" | grep 'abm' | xargs gcloud \ --quiet compute instances delete