Créer un poste de travail administrateur

Ce document explique comment créer un poste de travail d'administrateur pour Google Distributed Cloud. Le poste de travail d'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.

Cette page s'adresse aux administrateurs, aux architectes et aux opérateurs qui configurent, surveillent et gèrent l'infrastructure technologique. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud, consultez la section Rôles utilisateur et tâches courantes de l'utilisateur dans GKE Enterprise.

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 dans le guide "Créer des clusters de base".

Vous pouvez créer un poste de travail d'administrateur de deux façons :

  • Utiliser gkeadm pour créer une VM de poste de travail d'administrateur dans votre environnement vSphere.
  • Créer un poste de travail d'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 le même projet Google Cloud parent que votre compte de service d'accès au composant. Lorsque vous créez manuellement un compte de service, 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 est acceptable si c'est le seul projet Google Cloud associé à vos clusters. Toutefois, si vous souhaitez associer vos clusters à plusieurs projets Google Cloud, vous avez la possibilité d'attribuer des rôles à un compte de service sur un 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 manuellement un autre compte de service : votre compte de service de journalisation d'audit. Si vous souhaitez utiliser un client API GKE On-Prem pour gérer vos clusters d'utilisateurs, 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 d'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

  1. Connectez-vous avec un compte Google. Cela définit la propriété account du SDK :
gcloud auth login
  1. Vérifiez que la propriété account du SDK est correctement définie :
gcloud config list
  1. Le compte Google défini en tant que propriété account du SDK est appelé compte SDK. L'outil de ligne de commande gkeadm utilise votre compte SDK pour télécharger le fichier OVA du poste de travail d'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 du 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 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 composant

  • ACCOUNT : 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 pour vous, 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 d'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 d'administrateur, la commande gkeadm upgrade enregistre un fichier de sauvegarde. Si par la suite vous n'avez plus de poste de travail d'administrateur ou que vous avez perdu certains fichiers qui se trouvaient sur votre poste de travail d'administrateur mis à niveau, vous pouvez créer un poste de travail d'administrateur qui sera restauré à son état de post-mise à niveau à l'aide du fichier de sauvegarde.

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.

Gestion par l'utilisateur

Choisissez un ordinateur qui servira de poste de travail d'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 d'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 la section Se connecter à Google.

L'accès à Google Cloud peut être en 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 depuis votre poste de travail d'administrateur, vous devez disposer d'un accès à votre instance de vCenter Server. Pour en savoir plus, consultez les sections suivantes :

Configurer un serveur NTP

Lorsque votre cluster est configuré pour utiliser un serveur NTP, vous devez configurer un service de synchronisation temporelle sur votre poste de travail d'administrateur pour vous assurer que le temps rapporté par timedatectl soit synchronisé avec le cluster. Cela est nécessaire pour éviter les problèmes de dérive de l'horloge, qui peuvent entraîner des échecs de validation des certificats en raison de dates d'expiration non correspondantes.

Ubuntu

Nous vous recommandons d'utiliser le serveur de temps chrony.

Pour installer chrony, procédez comme suit :

sudo apt-get update
sudo apt install chrony

Cela fournit deux binaires :

  • chronyd : daemon utilisé pour la synchronisation et la diffusion via le protocole NTP
  • chronyc : interface de ligne de commande pour le daemon chrony

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 chrony.

Sudo sans mot de passe

Si votre stratégie de sécurité le permet, activez sudo sans mot de passe pour l'utilisateur actuel. Cela permet à gkectl de préparer un registre privé si un registre est fourni, de configurer le 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 sudo sans mot de passe et que vous souhaitez utiliser un registre privé pour votre cluster d'administrateur, effectuez la configuration manuelle suivante avant de créer le cluster d'administrateur :

Si vous choisissez de ne pas activer 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 kind n'est pas supprimé dans la documentation de dépannage.

Installer le logiciel

Ubuntu

Installez les logiciels suivants :

sudo apt-get update
sudo apt-get -y install kubectl

RHEL

Installez les logiciels suivants :

Docker 19.03 ou version ultérieure

  1. 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
    
  2. Supprimez podman-manpages :

    sudo dnf remove podman-manpages
    
  3. 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
    
  4. Vérifiez que vous utilisez la version 19.03 ou une version ultérieure :

    sudo docker version
    
  5. 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
    
  6. 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 Google Cloud CLI :

Consultez la section Installer gcloud CLI.

kubectl

Exécutez gcloud components install kubectl.

Connexion

Le compte Google défini en tant que propriété account du SDK est appelé compte SDK. L'outil de ligne de commande gkectl utilise votre compte SDK pour télécharger des fichiers OVA de nœuds de 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écharger gkectl :

gcloud storage 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 :

gcloud storage 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 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 d'administrateur.

Dépannage

La section suivante réactive l'accès SSH au poste de travail d'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 :

  1. 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.

  2. Assurez-vous que la VM temporaire et le poste de travail d'administrateur sont à l'état Powered Off.

  3. Dans vSphere, associez le disque de démarrage du poste de travail d'administrateur à la VM temporaire.

    Le disque de démarrage porte l'étiquette Hard disk 1.

  4. 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.

  5. 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
    
  6. Arrêtez la VM temporaire.

  7. Mettez le poste de travail d'administrateur sous tension.

  8. Utilisez la clé privée nouvellement générée pour accéder au poste de travail d'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 d'administrateur.

Étape suivante

Créer un cluster d'administrateur