Créer un poste de travail administrateur

Cette page explique comment créer un poste de travail administrateur permettant d'installer GKE On-Prem.

Dans cette rubrique, vous allez créer un poste de travail administrateur disposant d'une adresse IP statique. Ceci est conforme au processus d'installation de base qui crée des clusters utilisant des adresses IP statiques.

Si vous souhaitez créer un poste de travail administrateur utilisant le protocole DHCP (Dynamic Host Configuration Protocol) pour obtenir son adresse IP, consultez la section Créer un poste de travail administrateur via DHCP.

Présentation

Le poste de travail administrateur est une VM vSphere qui contient tous les outils dont vous avez besoin pour créer et gérer des clusters GKE On-Prem. Pour créer le poste de travail administrateur, procédez comme suit :

  • Téléchargez le fichier Open Virtual Appliance (OVA) du poste de travail administrateur. Il s'agit d'une image compressée de la VM du poste de travail administrateur.
  • Utilisez govc, l'interface de ligne de commande dans vSphere, pour importer le fichier OVA dans vSphere en tant que modèle de VM.
  • Copiez et remplissez les fichiers de configuration HashiCorp Terraform.
  • Utilisez la version 0.11 de Terraform pour créer la VM du poste de travail administrateur.

Créer une clé pour votre compte de service sur liste d'autorisation

Si vous ne possédez pas encore de fichier de clé JSON pour votre compte de service sur liste d'autorisation, créez-en un maintenant :

  1. gcloud auth login
  2. gcloud iam service-accounts keys create whitelisted-key.json \
    --iam-account [ALLOWLISTED_SERVICE_ACCOUNT_EMAIL]
    

[ALLOWLISTED_SERVICE_ACCOUNT_EMAIL] est l'adresse e-mail de votre compte de service sur liste d'autorisation.

Télécharger le fichier OVA du poste de travail administrateur

Le fichier OVA du poste de travail administrateur inclut tous les composants du cluster, les outils de ligne de commande, ainsi que toutes les autres entités nécessaires à l'installation et à la gestion des clusters GKE On-Prem.

Activez votre compte de service sur liste d'autorisation :

gcloud auth activate-service-account --key-file [KEY_ALLOWLISTED_ACCOUNT]

[KEY_ALLOWLISTED_ACCOUNT] est le chemin d'accès du fichier de clé JSON pour votre compte de service sur liste d'autorisation.

Téléchargez la dernière version du fichier OVA du poste de travail administrateur et son fichier de signature :

gsutil cp gs://gke-on-prem-release/admin-appliance/1.2.2-gke.2/gke-on-prem-admin-appliance-vsphere-1.2.2-gke.2.{ova,ova.1.sig} ./

Vérifier le fichier OVA avec openssl

Vérifiez le fichier OVA téléchargé par rapport à la clé publique à l'aide de openssl :

openssl dgst -verify - -signature gke-on-prem-admin-appliance-vsphere-1.2.2-gke.2.ova.1.sig gke-on-prem-admin-appliance-vsphere-1.2.2-gke.2.ova <<'EOF'
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
-----END PUBLIC KEY-----
EOF

Le résultat attendu de cette commande est Verified OK.

Utiliser govc pour importer le fichier OVA dans vSphere et le marquer comme modèle de VM

Dans les sections suivantes, vous allez :

  1. créer des variables déclarant les éléments de votre environnement vSphere et vCenter Server ;
  2. importer l'OVA du poste de travail d'administrateur dans vSphere et le marquer comme modèle de VM.

Créer des variables pour govc

Avant d'importer le fichier OVA du poste de travail administrateur dans vSphere, vous devez fournir à govc certaines variables déclarant les éléments de votre environnement vSphere et vCenter Server.

export GOVC_URL=https://[VCENTER_SERVER_ADDRESS]/sdk
export GOVC_USERNAME=[VCENTER_SERVER_USERNAME]
export GOVC_PASSWORD=[VCENTER_SERVER_PASSWORD]
export GOVC_DATASTORE=[VSPHERE_DATASTORE]
export GOVC_DATACENTER=[VSPHERE_DATACENTER]
export GOVC_INSECURE=true

Vous pouvez choisir d'utiliser le pool de ressources par défaut de vSphere ou créer le vôtre :

# If you want to use a resource pool you've configured yourself, export this variable:
export GOVC_RESOURCE_POOL=[VSPHERE_CLUSTER]/Resources/[VSPHERE_RESOURCE_POOL]
# If you want to use vSphere's default resource pool, export this variable instead:
export GOVC_RESOURCE_POOL=[VSPHERE_CLUSTER]/Resources

où :

  • [VCENTER_SERVER_ADDRESS] est le nom d'hôte ou l'adresse IP de votre serveur vCenter ;
  • [VCENTER_SERVER_USERNAME] est le nom d'utilisateur d'un compte détenant le rôle d'administrateur ou des droits équivalents dans le serveur vCenter ;
  • [VCENTER_SERVER_PASSWORD] est le mot de passe du compte serveur vCenter ;
  • [VSPHERE_DATASTORE] est le nom du datastore que vous avez configuré dans votre environnement vSphere ;
  • [VSPHERE_DATACENTER] est le nom du centre de données que vous avez configuré dans votre environnement vSphere ;
  • [VSPHERE_CLUSTER] est le nom du cluster que vous avez configuré dans votre environnement vSphere.
  • Pour utiliser un pool de ressources autre que celui par défaut,
  • [VSPHERE_RESOURCE_POOL] est le nom du pool de ressources que vous avez configuré dans votre environnement vSphere.

Créer des variables pour votre proxy

Si vous utilisez un proxy, exportez les variables correspondant à l'adresse HTTP et HTTPS, où [PROXY_ADDRESS] est le nom d'hôte ou l'adresse IP du proxy :

export HTTP_PROXY=http://[PROXY_ADDRESS]
export HTTPS_PROXY=https://[PROXY_ADDRESS]

Importer le fichier OVA dans vSphere : commutateur standard

Si vous utilisez un commutateur standard vSphere, importez le fichier OVA dans vSphere à l'aide de la commande suivante :

govc import.ova -options - gke-on-prem-admin-appliance-vsphere-1.2.2-gke.2.ova <<EOF
{
  "DiskProvisioning": "thin",
  "MarkAsTemplate": true
}
EOF

Importer le fichier OVA dans vSphere : commutateur distribué

Si vous utilisez un commutateur distribué vSphere, importez le fichier OVA dans vSphere à l'aide de cette commande, où [YOUR_DISTRIBUTED_PORT_GROUP_NAME] est le nom de votre groupe de ports distribué :

govc import.ova -options - gke-on-prem-admin-appliance-vsphere-1.2.2-gke.2.ova <<EOF
{
  "DiskProvisioning": "thin",
  "MarkAsTemplate": true,
  "NetworkMapping": [
      {
          "Name": "VM Network",
          "Network": "[YOUR_DISTRIBUTED_PORT_GROUP_NAME]"
      }
  ]
}
EOF

Copier les fichiers de configuration Terraform

Créez un répertoire pour vos fichiers Terraform :

mkdir [TERRAFORM_DIR]

[TERRAFORM_DIR] est le chemin d'accès au répertoire dans lequel vous souhaitez conserver vos fichiers Terraform.

Copiez les fichiers TF et TFVARS suivants, puis enregistrez-les dans [TERRAFORM_DIR]/terraform.tf et [TERRAFORM_DIR]/terraform.tfvars, respectivement.

Le fichier TF est la configuration HCL de Terraform qui effectue la création de la VM.

Les fichiers Terraform présentés ici s'appliquent à un poste de travail administrateur disposant d'une adresse IP statique. Si vous souhaitez créer un poste de travail administrateur utilisant DHCP pour obtenir son adresse IP, utilisez les fichiers Terraform fournis dans la section Créer un poste de travail administrateur via DHCP.

Créer une clé SSH

Créez une clé SSH pour pouvoir vous connecter en SSH au poste de travail administrateur depuis votre ordinateur portable ou votre poste de travail local. Sur les systèmes d'exploitation Linux, vous pouvez utiliser ssh-keygen :

ssh-keygen -t rsa -f ~/.ssh/vsphere_workstation -N ""

Modifier le fichier TFVARS

Ouvrez terraform.tfvars dans un éditeur de texte et fournissez des valeurs pour les variables suivantes. Vous pouvez trouver un grand nombre de ces valeurs en vous connectant au client vCenter :

vcenter_user

Fournissez un compte utilisateur de serveur vCenter sous forme de chaîne. Le compte utilisateur doit disposer du rôle d'administrateur ou de privilèges équivalents (voir les exigences concernant vSphere).

Exemple :

vcenter_user = "administrator@vsphere.local"

vcenter_password

Indiquez le mot de passe du compte utilisateur de serveur vCenter sous forme de chaîne. Exemple :

vcenter_password = "#STyZ2T#Ko2o"

vcenter_server

Indiquez l'adresse (IP ou nom d'hôte) de votre serveur vCenter sous forme de chaîne. Exemple :

vcenter_server = "198.51.100.2"

ssh_public_key_path

Indiquez le chemin d'accès à la clé publique SSH que vous avez créée lors d'une étape précédente :

ssh_public_key_path = "~/.ssh/vsphere_workstation.pub"

vm_name

Indiquez le nom de votre choix pour le poste de travail administrateur. Exemple :

vm_name = "my-admin-workstation"

datastore

Indiquez le nom de votre datastore vSphere sous forme de chaîne. Exemple :

datastore = "MY-DATASTORE"

datacenter

Indiquez le nom de votre centre de données vSphere sous forme de chaîne. Exemple :

datacenter = "MY-DATACENTER"

cluster

Indiquez le nom de votre cluster vSphere sous forme de chaîne. Exemple :

cluster = "MY-CLUSTER"

resource_pool

Si vous utilisez un pool de ressources différent de celui par défaut, indiquez le nom de votre pool de ressources vSphere sous forme de chaîne. Exemple :

resource_pool = "MY-POOL"

Si vous utilisez le pool de ressources par défaut, indiquez la valeur suivante :

resource_pool = "[MY_CLUSTER]/Resources"

[MY_CLUSTER] est le nom de votre cluster vSphere.

Consultez la section Spécifier le pool de ressources racine pour un hôte autonome.

network

Indiquez sous forme de chaîne le réseau vSphere sur lequel vous souhaitez créer votre poste de travail d'administrateur. Exemple :

network = "MY-VM-NETWORK"

vm_template

Indiquez le nom du modèle de VM sous forme de chaîne. Vous avez créé/importé le fichier OVA et l'avez marqué comme modèle lors d'une étape précédente. Notez que le nom du modèle ne comporte pas l'extension .ova.

vm_template = "gke-on-prem-admin-appliance-vsphere-1.2.2-gke.2"

ipv4_address

Indiquez une adresse IP statique IPv4 pour le poste de travail administrateur. Exemple :

ipv4_address = "203.0.113.1"

ipv4_netmask_prefix_length

Indiquez le nombre de bits dans le masque de sous-réseau du réseau sur lequel vous souhaitez créer votre poste de travail administrateur. Exemple :

ipv4_netmask_prefix_length = "22"

ipv4_gateway

Indiquez l'adresse IP de la passerelle par défaut du sous-réseau dans lequel le poste de travail administrateur doit être créé. Exemple :

ipv4_gateway = "198.51.100.1

dns_nameservers

Fournissez des serveurs de noms DNS à utiliser par le poste de travail administrateur, séparés par des virgules. Exemple :

dns_nameservers = "8.8.8.8,8.8.4.4"

Créer le poste de travail administrateur

Vous êtes maintenant prêt à créer la VM du poste de travail administrateur. Utilisez la version 0.11 de Terraform pour les étapes de cette section.

  1. Accédez au répertoire qui contient vos fichiers de configuration Terraform (TF et TFVARS) :

  2. Initialisez Terraform dans le répertoire et appliquez la configuration. Cela peut prendre quelques minutes.

    terraform init && terraform apply -auto-approve -input=false

Se connecter en SSH au poste de travail administrateur

  1. Accédez au répertoire contenant vos fichiers de configuration Terraform.

  2. Récupérez l'adresse IP du poste de travail administrateur :

    terraform output ip_address

    Notez l'adresse IP du poste de travail administrateur.

  3. Connectez-vous en SSH au poste de travail administrateur à l'aide de votre clé SSH et de l'adresse IP :

    ssh -i ~/.ssh/vsphere_workstation ubuntu@[ADMIN_WORKSTATION_IP_ADDRESS]
    

Vérifier la bonne configuration du poste de travail administrateur

Vérifiez que gkectl et docker sont installés sur votre poste de travail administrateur :

gkectl version
docker version

Configurer le serveur NTP sur votre poste de travail administrateur

Par défaut, le poste de travail administrateur utilise ntp.ubuntu.com comme serveur NTP (Network Time Protocol). Si votre organisation utilise un autre serveur de temps, configurez votre poste de travail administrateur pour qu'il utilise le même serveur NTP que le reste de votre organisation.

Saisissez les commandes suivantes pour configurer le serveur NTP sur votre poste de travail administrateur :

sudo mkdir -p /etc/systemd/timesyncd.conf.d/

sudo bash -c "cat >> /etc/systemd/timesyncd.conf.d/cloud-init.conf" << EOF
[Time]
NTP=[NTP_SERVER]
EOF

sudo systemctl restart systemd-timesyncd
timedatectl status

[NTP_SERVER] est le nom d'hôte ou l'adresse IP de votre serveur NTP.

Pour vérifier que votre serveur NTP fonctionne, saisissez la commande suivante :

timedatectl

Le résultat est semblable à ceci :

                      Local time: Tue 2019-12-17 00:21:50 UTC
                  Universal time: Tue 2019-12-17 00:21:50 UTC
                        RTC time: Tue 2019-12-17 00:21:50
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Dépannage

openssl ne peut pas valider le fichier OVA du poste de travail administrateur.

Symptômes

L'exécution de openssl dgst sur le fichier OVA du poste de travail administrateur ne renvoie pas Verified OK.

Causes probables

Le fichier OVA comporte un problème qui empêche la validation.

Solution

Essayez à nouveau de télécharger et de déployer le fichier OVA du poste de travail administrateur, comme indiqué dans la section Télécharger le fichier OVA du poste de travail administrateur. Si le problème persiste, contactez Google pour obtenir de l'aide.

Pour en savoir plus, consultez la section Dépannage.