Ce document explique comment créer un poste de travail administrateur pour Google Distributed Cloud. 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 n'importe quel ordinateur de votre choix.
gkeadm
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. Cela ne pose aucun 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 avez besoin de la flexibilité nécessaire pour 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.
Vous devrez peut-être créer un autre compte de service manuellement : le compte de service de journalisation d'audit. Si vous souhaitez utiliser un client de l'API GKE On-Prem pour gérer vos clusters d'utilisateur, vous devez activer la journalisation d'audit dans votre cluster d'administrateur.
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, renseignez 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 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.
Ainsi, gkeadm
peut 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 sur 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 composantACCOUNT
: votre compte SDK
Pour accorder 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 les comptes de service connect-register et logging-monitoring à votre place, incluez l'option --auto-create-service-accounts
. Si vous souhaitez créer ces comptes de service manuellement, omettez cette 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 des fichiers 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 un fichier de sauvegarde. 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 pouvez utiliser ce fichier de sauvegarde pour créer un poste de travail administrateur qui sera restauré à son état actuel immédiatement 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 les outils, traiter les demandes d'autorisation, créer des comptes de service, etc.
Pour en savoir plus sur les différentes façons de se connecter à Google Cloud, consultez Se connecter à Google.
L'accès à Google Cloud peut être direct ou via un serveur proxy. Pour plus d'informations sur les règles de pare-feu et sur 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 avoir accès à 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 de vCenter
Configurer un serveur NTP
Lorsque votre cluster est configuré pour utiliser un serveur NTP, vous devez configurer un service de synchronisation horaire sur votre poste de travail administrateur pour vous assurer que timedatectl
signale l'heure synchronisée avec le cluster. Cette étape est nécessaire pour éviter les problèmes de dérive d'horloge importante, qui peuvent entraîner des échecs de vérification du certificat en raison de 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
Cela fournit deux binaires:
chronyd
: daemon à synchroniser et à diffuser via le protocole NTPchronyc
: 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 Comment configurer 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é le cas échéant, 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 l'authentification sudo sans mot de passe et que vous prévoyez 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 du registre privé dans le répertoire suivant:
/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 Valider 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 la section Gérer Docker en tant qu'utilisateur non racine.
Dernière version de la 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 page Installer la gcloud CLI.
kubectl
Exécutez gcloud components install kubectl
.
Connexion
Le compte Google défini en tant que propriété du SDK account
est appelé compte SDK. L'outil de ligne de commande gkectl
utilise votre compte SDK pour télécharger les OVA des nœuds de cluster, extraire les 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 Google Distributed Cloud. Par exemple, 1.16.0-gke.1
.
Téléchargez le bundle Google Distributed Cloud. 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 ./
Comptes de service et clés
Assurez-vous d'avoir créé les comptes de service et les fichiers de clé JSON requis suivants:
Assurez-vous également d'avoir créé les comptes de service facultatifs et les fichiers de clé JSON dont vous avez besoin:
Placez tous vos fichiers de clé JSON dans le répertoire d'accueil de votre poste de travail administrateur.
Dépannage
La section suivante réactive l'accès SSH au poste de travail administrateur en cas de perte ou de corruption de la clé SSH.
Récupération de clé SSH
Utilisez une VM temporaire pour effectuer les étapes suivantes:
Pour générer un nouvel ensemble de clés SSH, suivez les instructions de la section Créer des clés SSH dans la documentation Compute Engine.
Assurez-vous que la VM temporaire et le poste de travail administrateur sont à l'état
Powered Off
.Dans vSphere, associez le disque de démarrage du poste de travail administrateur à la VM temporaire.
Le disque de démarrage porte le libellé
Hard disk 1
.Installez le disque de démarrage dans la VM en exécutant les commandes suivantes:
sudo mkdir -p /mnt/boot-disk sudo mount DISK_ID /mnt/boot-disk
Remplacez
DISK_ID
par l'identifiant de votre disque de démarrage, qui doit avoir un format semblable àdev/sdc1
.Modifiez le fichier
authorized_keys
sur le disque de démarrage pour ajouter le contenu du fichier de clé publique généré à la première étape:vi /mnt/boot-disk/.ssh/authorized_keys
Arrêtez la VM temporaire.
Mettez le poste de travail d'administrateur sous tension.
Utilisez la clé privée qui vient d'être générée pour accéder au poste de travail administrateur.
ssh -i ~/.ssh/new-admin-ws.key ubuntu@"${ADMIN_WS_IP}"
Utilisez la clé privée nouvellement générée pour continuer à accéder à votre poste de travail administrateur.
Étapes suivantes
Créer un cluster d'administrateur