Ce document explique comment créer un poste de travail administrateur pour GKE sur VMware. Le 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.
Ces instructions sont complètes. Pour une introduction plus courte à la création d'un poste de travail d'administrateur, consultez la section Créer un poste de travail d'administrateur (guide de démarrage rapide).
Il existe deux façons de créer un poste de travail administrateur:
- Utilisez
gkeadm
pour créer une VM de poste de travail administrateur dans votre environnement vSphere. Créez un poste de travail administrateur géré par l'utilisateur sur l'ordinateur de votre choix.
gkeadm
L'outil de ligne de commande gkeadm
est disponible pour Linux 64 bits, Windows 10, Windows Server 2019 et macOS 10.15.
Avant de commencer
Notez l'adresse de votre serveur vCenter.
Notez le chemin de votre certificat CA.
Installez la Google Cloud CLI.
Créez un ou plusieurs projets Google Cloud, comme décrit dans la section Utiliser plusieurs projets Google Cloud.
Planifier les comptes de service
Lorsque vous utilisez gkeadm
pour créer un poste de travail administrateur, vous avez la possibilité de laisser gkeadm
créer la plupart de vos clés et comptes de service. Dans ce cas, gkeadm
accorde également les rôles IAM appropriés aux comptes de service.
Vous pouvez également créer manuellement vos comptes de service et vos clés. Dans ce cas, vous devez attribuer manuellement des rôles IAM à vos comptes de service.
La création manuelle de comptes de service offre davantage de flexibilité que lorsque gkeadm
les crée pour vous :
Les comptes de service créés automatiquement ont tous le même projet Google Cloud parent que votre compte de service d'accès au composant. Lorsque vous créez un compte de service manuellement, vous pouvez choisir le projet Google Cloud parent.
Les comptes de service créés automatiquement se voient tous attribuer des rôles IAM sur le projet Google Cloud parent de votre compte de service d'accès au composant. Ce n'est pas un problème s'il s'agit du seul projet Google Cloud associé à vos clusters. Toutefois, si vous souhaitez associer vos clusters à plusieurs projets Google Cloud, vous devez pouvoir attribuer des rôles à un compte de service sur le projet Google Cloud de votre choix.
Si vous décidez de créer vos propres comptes de service, suivez les instructions de la section Comptes de service et clés.
Que vous utilisiez ou non gkeadm
pour créer automatiquement des comptes de service, vous devrez créer manuellement un compte de service : votre compte de service d'accès au composant. Pour savoir comment créer votre compte de service d'accès au composant et lui attribuer les rôles IAM appropriés, consultez la section Compte de service d'accès au composant.
Générer des modèles pour vos fichiers de configuration
Téléchargez gkeadm
dans votre répertoire actuel.
Générer des modèles :
./gkeadm create config
La commande précédente a créé ces fichiers dans votre répertoire actuel :
credential.yaml
admin-ws-config.yaml
Renseigner credential.yaml
Dans credential.yaml
, renseignez votre nom d'utilisateur et votre mot de passe vCenter. Exemple :
kind: CredentialFile items: - name: vCenter username: "my-account-name" password: "AadmpqGPqq!a"
Renseigner admin-ws-config.yaml
Plusieurs champs de admin-ws-config.yaml
sont déjà renseignés avec les valeurs par défaut ou générées. Vous pouvez conserver les valeurs renseignées automatiquement ou apporter des modifications le cas échéant.
Champs à renseigner manuellement.
Renseignez les champs obligatoires suivants. Pour en savoir plus sur comment renseigner les champs, consultez le fichier de configuration de poste de travail d'administrateur.
gcp: componentAccessServiceAccountKeyPath: "Fill in" vCenter: credentials: address: "Fill in" datacenter: "Fill in" datastore: "Fill in" cluster: "Fill in" network: "Fill in" resourcePool: "Fill in" caCertPath: "Fill in"
Si vous souhaitez créer votre poste de travail administrateur dans un dossier de VM vSphere, remplissez le champ vCenter.folder
:
vCenter: folder: "Fill in"
Si votre poste de travail d'administrateur se trouve derrière un serveur proxy, renseignez le champ proxyURL
:
adminWorkstation: proxyURL: "Fill in"
Si vous souhaitez que votre poste de travail d'administrateur obtienne son adresse IP à partir d'un serveur DHCP, définissez ipAllocationMode
sur "dhcp"
et supprimez la section hostconfig
:
adminWorkstation: network: ipAllocationMode: "dhcp"
Si vous souhaitez spécifier une adresse IP statique pour votre poste de travail d'administrateur, définissez ipAllocationMode
sur "static"
et renseignez la section hostconfig
:
adminWorkstation: network: ipAllocationMode: "static" hostconfig: ip: "Fill in" gateway: "Fill in" netmask: "Fill in" dns: - "Fill in"
Connexion
- Connectez-vous avec un compte Google. Cela définit la propriété
account
du SDK :
gcloud auth login
- Vérifiez que la propriété
account
du SDK est correctement définie :
gcloud config list
- Le compte Google qui est défini en tant que propriété
account
du SDK est appelé compte SDK. L'outil de ligne de commandegkeadm
utilise votre compte SDK pour télécharger le fichier OVA du poste de travail administrateur et activer les services dans votre projet Google Cloud.
Si vous choisissez d'utiliser gkeadm
pour créer automatiquement des comptes de service, gkeadm
utilise également votre compte SDK pour créer des comptes de service et des clés, ainsi que pour attribuer des rôles aux comptes de service.
Il est donc important de définir la propriété account
du SDK avant d'exécuter la commande gkeadm
pour créer un poste de travail administrateur.
Le résultat affiche les valeurs de la propriété account
du SDK.
Exemple :
[core] account = my-name@google.com disable_usage_reporting = False Your active configuration is: [default]
Attribuer des rôles à votre compte SDK
Votre compte SDK doit disposer du rôle IAM suivant sur le projet Google Cloud parent de votre compte de service d'accès au composant.
Cela permet à gkeadm
d'activer les services sur le projet Google Cloud.
serviceUsage.serviceUsageAdmin
Si vous choisissez d'utiliser gkeadm
pour créer automatiquement des comptes de service, votre compte SDK doit également disposer des rôles suivants sur le projet parent de votre compte de service d'accès au composant. Cela permet à gkeadm
de créer des comptes de service et des clés.
resourcemanager.projectIamAdmin
iam.serviceAccountCreator
iam.serviceAccountKeyAdmin
Pour attribuer des rôles à un projet Google Cloud, vous devez disposer de certaines autorisations sur le projet Google Cloud. Pour plus d'informations, consultez la page Accorder, modifier et révoquer les accès à des ressources.
Si vous disposez des autorisations requises, vous pouvez attribuer les rôles vous-même. Sinon, un autre membre de votre organisation doit attribuer les rôles pour vous.
Attribuez le rôle requis à votre compte SDK :
Linux et macOS
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/serviceusage.serviceUsageAdmin"
Windows
gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/serviceusage.serviceUsageAdmin"
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet Google Cloud parent de votre compte de service d'accès au composant.ACCOUNT
: votre compte SDK
Pour attribuer des rôles supplémentaires si vous souhaitez que gkeadm
crée automatiquement des comptes de service.
Linux et macOS
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/resourcemanager.projectIamAdmin" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/iam.serviceAccountCreator" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/iam.serviceAccountKeyAdmin"
Windows
gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/resourcemanager.projectIamAdmin" gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/iam.serviceAccountCreator" gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/iam.serviceAccountKeyAdmin"
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet parent de votre compte de service d'accès au composantACCOUNT
: votre compte SDK
Créer votre poste de travail administrateur
Saisissez cette commande pour créer votre poste de travail d'administrateur. Si vous souhaitez que gkeadm
crée des comptes de service pour vous, incluez l'option --auto-create-service-accounts
. Si vous souhaitez créer manuellement vos propres comptes de service, omettez l'option.
./gkeadm create admin-workstation [--auto-create-service-accounts]
Le résultat fournit des informations détaillées sur la création de votre poste de travail d'administrateur :
... Getting ... service account... ... ******************************************************************** Admin workstation is ready to use. Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation This file is required for future upgrades SSH into the admin workstation with the following command: ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1 ********************************************************************
Obtenir une connexion SSH à votre poste de travail d'administrateur
Vers la fin du résultat précédent, vous obtenez une commande que vous pouvez utiliser pour vous connecter en SSH à votre poste de travail d'administrateur. Saisissez cette commande maintenant. Exemple :
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1
Répertoriez les fichiers sur votre poste de travail d'administrateur :
ls -1
Le résultat affiche deux fichiers de configuration de cluster, votre fichier de certificat CA et le fichier de clé JSON pour votre compte de service d'accès au composant. Si gkeadm
a créé des comptes de service pour vous, vous pouvez également voir les fichiers de clé JSON de ces comptes. Exemple :
admin-cluster.yaml user-cluster.yaml vcenter-ca-cert.pem component-access-key.json
Vérifiez que gkeadm
a activé votre compte de service d'accès au composant sur votre poste de travail administrateur :
gcloud config get-value account
Copier un fichier de clé JSON sur votre poste de travail administrateur
Avant de créer un cluster, les fichiers de clé JSON de vos comptes de service doivent se trouver sur le poste de travail administrateur dans le répertoire d'accueil.
La clé de votre compte de service d'accès au composant se trouve déjà sur votre poste de travail administrateur.
Si vous avez inclus l'option --auto-create-service-accounts
lors de l'exécution de gkeadm create admin-workstation
, les clés des comptes de service suivants se trouvent déjà sur votre poste de travail administrateur dans le répertoire d'accueil. Sinon, vous devez copier manuellement les clés dans le répertoire d'accueil de votre poste de travail administrateur :
- Compte de service connect-register
- Compte de service logging-monitoring
Si vous avez créé l'un des comptes de service suivants, vous devez copier manuellement les clés de ces comptes dans le répertoire d'accueil de votre poste de travail administrateur :
- Compte de service de mesure de l'utilisation
- Compte de service de journalisation d'audit
- Compte de service d'autorisation binaire
Restaurer le poste de travail administrateur à partir d'un fichier de sauvegarde
Lorsque vous mettez à niveau un poste de travail administrateur, la commande gkeadm upgrade
enregistre également un fichier de sauvegarde par défaut. Par la suite, si vous n'avez plus de poste de travail administrateur ou si vous avez perdu certains fichiers qui se trouvaient sur votre poste de travail administrateur mis à niveau, vous pourrez utiliser ce fichier de sauvegarde pour créer un poste de travail administrateur qui sera restauré à l'état existant juste après la mise à niveau.
Pour créer un poste de travail administrateur à partir d'un fichier de sauvegarde, exécutez la commande suivante :
gkeadm create admin-workstation --restore-from-backup ADMIN_WORKSTATION_NAME-backup.tar.gz
Remplacez ADMIN_WORKSTATION_NAME par le nom du poste de travail administrateur.
Géré par l'utilisateur
Choisissez un ordinateur qui servira de poste de travail administrateur. Vous pouvez utiliser Ubuntu ou Red Hat Enterprise Linux (RHEL). Voici les conditions requises:
Ubuntu 20.04 LTS ou 22.04 LTS
- 4 cœurs de processeur
- 8 Gio de RAM
- 100 Gio d'espace de stockage
RHEL 8.6, 8.7 ou 8.8
- 4 cœurs de processeur
- 12 Go de RAM
- 256 Gio d'espace de stockage
Accès à Google Cloud
Votre poste de travail administrateur doit avoir accès à Google Cloud pour télécharger et installer des outils, traiter les demandes d'autorisation, créer des comptes de service, etc.
Pour en savoir plus sur les différentes méthodes de connexion à Google Cloud, consultez Se connecter à Google.
L'accès à Google Cloud peut être direct ou via un serveur proxy. Pour en savoir plus sur les règles de pare-feu et la configuration d'un serveur proxy, consultez la section Règles de proxy et de pare-feu.
Accès à vCenter Server
Pour créer et gérer des clusters à partir de votre poste de travail administrateur, vous devez accéder à votre instance de vCenter Server. Pour en savoir plus, consultez les pages suivantes:
- Exigences concernant vSphere
- Déterminer l'adresse de votre serveur vCenter
- Obtenir le certificat racine CA vCenter
Configurer un serveur NTP
Lorsque votre cluster est configuré pour utiliser un serveur NTP, vous devez configurer un service de synchronisation de l'heure sur votre poste de travail administrateur pour vous assurer que timedatectl
signale l'heure synchronisée avec le cluster. Cela est nécessaire pour éviter les problèmes de dérive importante de l'horloge, qui peuvent entraîner des échecs de vérification du certificat dus à des dates d'expiration sans correspondance.
Ubuntu
Nous vous recommandons d'utiliser le serveur de temps chrony
.
Pour installer chrony
:
sudo apt-get update sudo apt install chrony
qui fournit deux binaires:
chronyd
: daemon à synchroniser et à diffuser via le protocole de temps réseau.chronyc
: interface de ligne de commande du daemonchrony
Pour configurer chronyd
, procédez comme suit :
Modifiez /etc/chrony/chrony.conf
pour ajouter ou supprimer des lignes de serveur. Redémarrez ensuite chrony
:
sudo systemctl restart chrony.service
RHEL
Nous vous recommandons d'utiliser le serveur de temps chrony
.
Pour obtenir des instructions d'installation, consultez la section Configurer une instance chrony.
sudo sans mot de passe
Si votre stratégie de sécurité le permet, activez la commande sudo sans mot de passe pour l'utilisateur actuel. Cela permet à gkectl
de préparer un registre privé s'il en fournit un, de configurer un proxy pour Docker si votre réseau se trouve derrière un serveur proxy et de forcer la suppression du cluster d'amorçage utilisé pour les opérations de cycle de vie du cluster d'administrateur en cas d'échec de la suppression.
Si vous choisissez de ne pas activer la commande sudo sans mot de passe et que vous avez l'intention d'utiliser un registre privé pour votre cluster d'administrateur, effectuez la configuration manuelle suivante avant de créer le cluster d'administrateur:
Placez le certificat racine de l'autorité de certification pour le registre privé dans ce répertoire:
/etc/docker/certs.d/REGISTRY_ADDRESS/
Remplacez REGISTRY_ADDRESS par l'adresse de la machine qui exécute le registre privé.
Pour en savoir plus, consultez Vérifier le client de dépôt à l'aide de certificats.
Si votre réseau se trouve derrière un serveur proxy, spécifiez le serveur proxy dans le fichier de configuration du cluster d'administrateur et configurez Docker pour utiliser le serveur proxy.
Si vous choisissez de ne pas activer la commande sudo sans mot de passe, vous devrez peut-être supprimer manuellement le cluster kind
après avoir créé un cluster d'administrateur. Pour en savoir plus, consultez la section Le cluster de genre n'est pas supprimé dans la documentation de dépannage.
Installer le logiciel
Ubuntu
Installez les composants suivants :
Docker version 19.03 ou ultérieure: consultez la page Installer Docker Engine sur Ubuntu. Assurez-vous que l'utilisateur non racine est membre du groupe Docker. Consultez Gérer Docker en tant qu'utilisateur non racine.
Dernière version de Google Cloud CLI: consultez Installer la gcloud CLI.
kubectl: exécutez
gcloud components install kubectl
ou utilisezapt-get
:
sudo apt-get update sudo apt-get -y install kubectl
RHEL
Installez les composants suivants :
Docker 19.03 ou version ultérieure
Supprimez toute version précédente de Docker :
sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
Supprimez podman-manpages :
sudo dnf remove podman-manpages
Installez Docker 19.03+ :
sudo dnf install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y --allowerasing docker-ce docker-ce-cli containerd.io sudo systemctl start docker
Vérifiez que vous utilisez la version 19.03 ou une version ultérieure :
sudo docker version
Comparez votre résultat à l'exemple suivant pour vous assurer que les versions Client et Serveur sont en version 19.03+ :
Client: Docker Engine - Community Version: 19.03.13 ... Server: Docker Engine - Community Engine: Version: 19.03.13
Vérifiez que Docker s'exécute :
docker run hello-world
Le résultat doit ressembler à ceci :
Hello from Docker!
This message shows that your installation appears to be working correctly.
Dernière version de la Google Cloud CLI:
Consultez la section Installer la gcloud CLI.
kubectl
Exécutez gcloud components install kubectl
.
Connexion
Le compte Google défini comme propriété account
du SDK est appelé compte SDK. L'outil de ligne de commande gkectl
utilise votre compte SDK pour télécharger les OVA des nœuds du cluster, extraire des images de conteneurs, etc. Il est donc important de définir la propriété de votre compte SDK avant d'exécuter les commandes gkectl
.
Connectez-vous avec un compte Google. Cela définit la propriété account
du SDK :
gcloud auth login
Vérifiez que la propriété account
du SDK est correctement définie :
gcloud config list
Le résultat affiche les valeurs de la propriété account
du SDK.
Exemple :
[core] account = my-name@google.com disable_usage_reporting = False Your active configuration is: [default]
Télécharger gkectl et le bundle
Accédez au répertoire dans lequel vous souhaitez installer gkectl
.
Téléchargez gkectl
:
gsutil cp gs://gke-on-prem-release/gkectl/VERSION/gkectl ./ chmod +x gkectl
Remplacez VERSION par la version de GKE sur VMware. Par exemple, 1.16.0-gke.1
.
Téléchargez le bundle GKE sur VMware. Assurez-vous que la version correspond à celle que vous avez utilisée pour télécharger gkectl
:
gsutil cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz ./
Étapes suivantes
Créer un cluster d'administrateur