Créer des clusters de base

Ce document explique comment créer des clusters de base pour une petite installation de démonstration de faisabilité de Clusters Anthos sur VMware (GKE On-Prem).

Voici les principales étapes à suivre :

  1. Créez un poste de travail d'administrateur.

  2. Depuis votre poste de travail administrateur, créez un cluster d'administrateur.

  3. Depuis votre poste de travail administrateur, créez un cluster d'utilisateur.

Avant de commencer

Configurez vos environnements vSphere et Google Cloud comme décrit sur la page Configurer une infrastructure minimale.

Recueillir des informations

Pour préparer le remplissage d'un fichier de configuration de poste de travail administrateur, rassemblez les informations suivantes :

Connexion

L'outil de ligne de commande gkeadm utilise la propriété de votre SDK account pour créer des 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.

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 la valeur 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

Le compte Google défini en tant que propriété account du SDK doit disposer des rôles IAM permettant à gkeadm de créer et gérer des comptes de service :

  • resourcemanager.projectIamAdmin
  • serviceusage.serviceUsageAdmin
  • iam.serviceAccountCreator
  • iam.serviceAccountKeyAdmin

Pour attribuer des rôles, vous devez disposer de certaines autorisations sur votre 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 à votre place.

Pour accorder les rôles, procédez comme suit :

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/serviceusage.serviceUsageAdmin"

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/serviceusage.serviceUsageAdmin"

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 de votre projet Google Cloud
  • ACCOUNT : valeur de la propriété account du SDK.

Créez un poste de travail d'administrateur.

La procédure décrite dans cette section utilise l'outil de ligne de commande gkeadm, disponible pour Linux 64 bits, Windows 10, Windows Server 2019 et macOS 10.15, ainsi que leurs versions ultérieures.

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

Remplir le fichier 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"

Familiarisez-vous avec le fichier de configuration du poste de travail administrateur

Consultez la documentation du fichier de configuration du poste de travail administrateur pour avoir une idée générale du contenu de ce fichier. Vous pouvez ouvrir la page dans un onglet ou une fenêtre séparés afin de pouvoir la consulter lorsque vous renseignez les valeurs des champs.

Remplir le fichier admin-ws-config.yaml

Ouvrez admin-ws-config.yaml pour y apporter des modifications.

Les champs suivants sont automatiquement renseignés avec des valeurs par défaut ou générées :

vCenter:
  credentials:
    fileRef:
      credentials:
      entry:

adminWorkstation:
  name:
  cpus:
  memoryMB:
  diskGB:
  dataDiskName:
  dataDiskMB:

ntpServer:

Renseignez le champ gcp.componentAccessServiceAccountKeyPath.

Renseignez les champs suivants dans la section vCenter.

credentials:
  address:
datacenter:
datastore:
cluster:
network:
caCertPath:

Définissez vCenter.resourcePool sur CLUSTER_NAME/Resources. Remplacez CLUSTER_NAME par le nom de votre cluster vSphere.

Si nécessaire, renseignez le champ proxyURL.

Si nécessaire, renseignez le champ adminWorkstation.proxyURL.

Définissez adminWorkstation.network.ipAllocationMode sur "static".

Renseignez les champs suivants dans la section adminWorkstation.network.hostConfig :

ip:
gateway:
netmask:
dns:

Exemple de fichier de configuration de poste de travail administrateur

Voici un exemple de fichier de configuration de poste de travail administrateur renseigné :

gcp:
  componentAccessServiceAccountKeyPath: "/usr/local/google/home/me/keys/component-access-key.json"
vCenter:
  credentials:
    address: "vc01.example"
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
  datacenter: "vc01"
  datastore: "vc01-datastore-1"
  cluster: "vc01-workloads-1"
  network: "vc01-net-1"
  resourcePool: "vc01-workloads-1/Resources"
  caCertPath: "/usr/local/google/home/stevepe/certs/vc01-cert.pem"
proxyUrl: ""
adminWorkstation:
  name: gke-admin-ws-220304-014925
  cpus: 4
  memoryMB: 8192
  diskGB: 50
  dataDiskName: gke-on-prem-admin-workstation-data-disk/gke-admin-ws-220304-014925-data-disk.vmdk
  dataDiskMB: 512
  network:
    ipAllocationMode: "static"
    hostConfig:
      ip: "172.16.20.49"
      gateway: "172.16.20.1"
      netmask: "255.255.255.0"
      dns:
      - "203.0.113.1"
  proxyUrl: ""
  ntpServer: ntp.ubuntu.com

Créer votre poste de travail administrateur

Créez votre poste de travail administrateur, puis créez automatiquement des comptes de service :

./gkeadm create admin-workstation --auto-create-service-accounts

La sortie donne des informations détaillées sur la création de votre poste de travail administrateur et fournit une commande que vous pouvez utiliser pour obtenir une connexion SSH à votre poste de travail administrateur :

...
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.20.49
********************************************************************

Pour en savoir plus sur la création d'un poste de travail administrateur, consultez la section Créer un poste de travail administrateur.

Afficher les fichiers sur votre poste de travail administrateur

Utilisez la commande affichée dans le résultat précédent pour obtenir une connexion SSH à votre poste de travail administrateur. Exemple :

ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49

Listez les fichiers présents dans le répertoire d'accueil :

ls -1

Le résultat inclut les fichiers de clé JSON de deux comptes de service que gkeadm a créés pour vous : un compte de service connect-register et un compte de service logging-monitoring. Notez le nom des fichiers de clé JSON pour votre compte de service connect-register. Vous en aurez besoin plus tard lorsque vous créerez vos clusters. Exemple :

admin-cluster.yaml
admin-ws-config.yaml
sa-key.json
connect-register-sa-2203040617.json
credential.yaml
log-mon-sa-2203040617.json
logs
vc01-cert.pem
user-cluster.yaml

Créer un cluster d'administrateur

Obtenez une connexion SSH à votre poste de travail administrateur.

Spécifier des adresses IP statiques pour votre cluster d'administrateur

Pour spécifier les adresses IP statiques que vous souhaitez utiliser pour les nœuds de votre cluster d'administrateur, créez un fichier de bloc d'adresses IP nommé admin-cluster-ipblock.yaml.

Vous avez besoin de cinq adresses IP pour les nœuds suivants de votre cluster d'administrateur :

  • Trois nœuds pour exécuter le plan de contrôle et les modules complémentaires du cluster d'administrateur

  • Un nœud supplémentaire à utiliser temporairement lors des mises à niveau

  • Un nœud pour exécuter le plan de contrôle du cluster d'utilisateur que vous créerez plus tard

Voici un exemple de fichier de bloc d'adresses IP contenant des adresses pour cinq nœuds :

blocks:
  - netmask: 255.255.255.0
    gateway: 172.16.20.1
    ips:
    - ip: 172.16.20.50
      hostname: admin-vm-1
    - ip: 172.16.20.51
      hostname: admin-vm-2
    - ip: 172.16.20.52
      hostname: admin-vm-3
    - ip: 172.16.20.53
      hostname: admin-vm-4
    - ip: 172.16.20.54
      hostname: admin-vm-5

Le champ ips est un tableau d'adresses IP et de noms d'hôte. Il s'agit des adresses IP et des noms d'hôte qu'Anthos Clusters on VMware attribue aux nœuds du cluster d'administrateur.

Dans le fichier de bloc d'adresses IP, vous spécifiez également un masque de sous-réseau et une passerelle par défaut pour les nœuds du cluster d'administrateur.

Se familiariser avec le fichier de configuration du cluster d'administrateur

Consultez la documentation du fichier de configuration du cluster d'administrateur pour avoir une idée générale du contenu de ce fichier. Vous pouvez ouvrir la page dans un onglet ou une fenêtre séparés afin de pouvoir la consulter lorsque vous renseignez les valeurs des champs.

Renseigner le fichier de configuration du cluster d'administrateur

Lorsque gkeadm a créé votre poste de travail administrateur, il a généré un fichier de configuration nommé admin-cluster.yaml. Ce fichier de configuration vous permet de créer votre cluster d'administrateur.

Ouvrez admin-cluster.yaml pour y apporter des modifications. Plusieurs champs du fichier de configuration de votre cluster d'administrateur contiennent déjà des valeurs par défaut, des valeurs générées ou des valeurs que vous avez fournies lors de la création de votre poste de travail administrateur. Vous pouvez laisser ces champs tels quels.

Renseignez le champ vCenter.dataDisk.

Renseignez les champs suivants dans la section network.hostConfig :

dnsServers:
ntpServers:

Définissez network.ipMode.type sur "static".

Définissez network.ipMode.ipBlockFilePath sur "admin-cluster-ipblock.yaml".

Renseignez les champs ou conservez les valeurs par défaut pour network.serviceCIDR et network.podCIDR.

Renseignez les champs suivants dans la section loadBalancer.vips :

controlPlaneVIP:
addonsVIP:

Définissez loadBalancer.kind sur "MetalLB".

Définissez antiAffinityGroups.enabled sur false.

Définissez gkeConnect.projectID sur l'ID de votre projet Google Cloud.

Définissez gkeConnect.registerServiceAccountKeyPath sur le chemin d'accès du fichier de clé JSON pour votre compte de service connect-register.

Exemple de fichier de configuration de cluster d'administrateur

Voici un exemple de fichier de configuration de cluster d'administrateur renseigné :

apiVersion: v1
kind: AdminCluster
name: "gke-admin-01"
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.11.0-gke.543-full.tgz"
vCenter:
  address: "vc01.example"
  datacenter: "vc-01"
  cluster: "vc01-workloads-1"
  resourcePool: "my-cluster/Resources"
  datastore: "vc01-datastore-1"
  caCertPath: "/usr/local/google/home/me/certs/vc01-cert.pem""
  credentials:
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
  dataDisk: "vc01-admin-disk.vmdk"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"
  vCenter:
    networkName: "vc01-net-1"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.59"
    addonsVIP: "172.16.20.60"
  kind: "MetalLB"
antiAffinityGroups:
  enabled: false
componentAccessServiceAccountKeyPath: "sa-key.json"
gkeConnect:
  projectID: "my-project-123"
  registerServiceAccountKeyPath: "connect-register-sa-2203040617.json"
stackdriver:
  projectID: "my-project-123"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "log-mon-sa-2203040617.json"
  disableVsphereResourceMetrics: false

Valider le fichier de configuration du cluster d'administrateur

Vérifiez que le fichier de configuration de votre cluster d'administrateur est valide et qu'il peut être utilisé pour créer un cluster :

gkectl check-config --config admin-cluster.yaml

Préparez votre environnement vSphere.

Exécutez gkectl prepare pour initialiser votre environnement vSphere :

gkectl prepare --config admin-cluster.yaml --skip-validation-all

Créer le cluster d'administrateur

Créez le cluster d'administrateur :

gkectl create admin --config admin-cluster.yaml

Reprendre la création du cluster d'administrateur après un échec

Si la création du cluster d'administrateur échoue ou est annulée, vous pouvez exécuter à nouveau la commande create :

gkectl create admin --config admin-cluster.yaml

Localiser le fichier kubeconfig du cluster d'administrateur

La commande gkectl create admin crée un fichier kubeconfig nommé kubeconfig dans le répertoire actuel. Vous aurez besoin de ce fichier kubeconfig ultérieurement pour interagir avec votre cluster d'administrateur.

Vérifier que votre cluster d'administrateur est en cours d'exécution

Vérifiez que votre cluster d'administrateur est en cours d'exécution :

kubectl get nodes --kubeconfig kubeconfig

Le résultat affiche les nœuds du cluster d'administrateur. Exemple :

gke-admin-master-hdn4z            Ready    control-plane,master ...
gke-admin-node-7f46cc8c47-g7w2c   Ready ...
gke-admin-node-7f46cc8c47-kwlrs   Ready ...

Créer un cluster d'utilisateur

Vous pouvez créer un cluster d'utilisateur dans la console Google Cloud ou à partir de la ligne de commande de votre poste de travail administrateur.

Console

Cette section explique comment créer un cluster d'utilisateur configuré pour l'infrastructure minimale avec MetalLB en tant qu'équilibreur de charge.

Lorsque vous créez un cluster d'utilisateur, la console Google Cloud active automatiquement l'API GKE On-Prem dans le projet Google Cloud que vous sélectionnez pour la création du cluster. L'API GKE On-Prem s'exécute sur l'infrastructure Google Cloud, et la console Google Cloud utilise cette API pour créer le cluster dans votre centre de données vSphere. Pour gérer vos clusters, l'API GKE On-Prem doit stocker les métadonnées d'état de votre cluster dans la région Google Cloud que vous spécifiez lors de la création du cluster. Ces métadonnées permettent à l'API GKE On-Prem de gérer le cycle de vie du cluster d'utilisateur et n'incluent pas de données spécifiques à la charge de travail.

  1. Dans la console Google Cloud, accédez à la page Clusters d'Anthos.

    Accéder à la page "Clusters Anthos"

  2. Sélectionnez le projet Google Cloud dans lequel vous souhaitez créer le cluster. Le projet sélectionné est également utilisé comme projet hôte de parc. Il doit s'agir du même projet que celui dans lequel le cluster d'administrateur est enregistré. Une fois le cluster d'utilisateur créé, il est automatiquement enregistré dans le parc du projet sélectionné.

  3. Cliquez sur Create Cluster (Créer le cluster).

  4. Dans la boîte de dialogue, cliquez sur Sur site.

  5. À côté de VMware vSphere, cliquez sur Configurer.

  6. Vérifiez les conditions préalables, puis cliquez sur Continuer.

Paramètres de base du cluster

  1. Saisissez un nom pour le cluster d'utilisateur.
  2. Sous Cluster d'administrateur, sélectionnez le cluster d'administrateur dans la liste. Si le cluster d'administrateur que vous souhaitez utiliser ne s'affiche pas, consultez la section de dépannage Le cluster d'administrateur ne s'affiche pas dans la liste déroulante Paramètres de base du cluster.

  3. Dans le champ emplacement de l'API GCP, sélectionnez la région Google Cloud dans la liste. En plus de contrôler la région dans laquelle l'API GKE On-Prem s'exécute, ce paramètre contrôle la région dans laquelle les éléments suivants sont stockés :

    • Métadonnées du cluster d'utilisateur dont l'API GKE On-Prem a besoin pour gérer le cycle de vie du cluster
    • Données Cloud Logging et Cloud Monitoring des composants système
    • Journal d'audit d'administrateur créé par Cloud Audit Logs
  4. Sélectionnez la version d'Anthos clusters on VMware pour votre cluster d'utilisateur.

  5. Cliquez sur Continuer pour accéder à la section Mise en réseau.

Mise en réseau

Dans cette section, vous spécifiez les adresses IP des nœuds, des pods et des services de votre cluster. Un cluster d'utilisateur doit disposer d'une adresse IP pour chaque nœud et d'une adresse IP supplémentaire à utiliser pour un nœud temporaire lors de la mise à niveau du cluster d'utilisateur. Pour en savoir plus, consultez la section De combien d'adresses IP un cluster d'utilisateur a-t-il besoin ?.

  1. Dans la section Adresses IP des nœuds, sélectionnez le mode d'adresse IP du cluster d'utilisateur. Sélectionnez l'une des options suivantes :

    • DHCP : sélectionnez DHCP si vous souhaitez que les nœuds de votre cluster obtiennent leur adresse IP à partir d'un serveur DHCP.

    • Statique : sélectionnez Statique si vous souhaitez fournir des adresses IP statiques pour vos nœuds de cluster.

  2. Si vous avez sélectionné DHCP, passez à l'étape suivante pour spécifier les plages CIDR de service et de pod. Dans le champ Mode IP statique, indiquez les informations suivantes :

    1. Saisissez l'adresse IP de la passerelle du cluster d'utilisateur.
    2. Saisissez le masque de sous-réseau pour les nœuds de cluster d'utilisateur.

    3. Dans la section Adresses IP, saisissez les adresses IP et, éventuellement, les noms d'hôte des nœuds du cluster d'utilisateur. Vous pouvez saisir une adresse IP individuelle v4 (telle que 192.0.2.1) ou un bloc CIDR d'adresses IPv4 (par exemple, 192.0.2.0/24).

      • Si vous saisissez un bloc CIDR, ne saisissez pas de nom d'hôte.
      • Si vous saisissez une adresse IP individuelle, vous pouvez éventuellement saisir un nom d'hôte. Si vous ne saisissez pas de nom d'hôte, les clusters Anthos sur VMware utilisent le nom de la VM dans vSphere comme nom d'hôte.
    4. Cliquez sur + Ajouter une adresse IP si nécessaire pour saisir d'autres adresses IP.

  3. Dans la section plages CIDR des services et des pods, la console Google Cloud fournit les plages d'adresses suivantes pour vos services et pods Kubernetes :

    • CIDR des services : 10.96.0.0/20
    • CIDR des pods : 192.168.0.0/16

    Si vous préférez saisir vos propres plages d'adresses, consultez la section Adresses IP pour les pods et les services pour connaître les bonnes pratiques.

  4. Si vous avez sélectionné le mode d'adresse IP statique, spécifiez les informations suivantes dans la section Configuration de l'hôte :

    1. Saisissez les adresses IP des serveurs DNS.
    2. Saisissez les adresses IP des serveurs NTP.
    3. Vous pouvez éventuellement saisir des domaines de recherche DNS.
  5. Cliquez sur Continuer pour accéder à la section Équilibreur de charge.

Équilibreur de charge

Configurez MetalLB en tant qu'équilibreur de charge.

  1. Dans le champ Type d'équilibreur de charge, laissez MetalLB sélectionné.

  2. Dans la section Adresses IP virtuelles, saisissez les informations suivantes :

    • Adresse IP virtuelle de plan de contrôle : l'adresse IP de destination à utiliser pour le trafic envoyé au serveur d'API Kubernetes du cluster d'utilisateur. Cette adresse IP doit se trouver dans le même domaine L2 que les nœuds du cluster d'administrateur. N'ajoutez pas cette adresse dans la section Pools d'adresses.

    • Adresse IP virtuelle d'entrée : adresse IP à configurer sur l'équilibreur de charge pour le proxy d'entrée. Vous devez l'ajouter à un pool d'adresses dans la section Pools d'adresses.

  3. Dans la section Pools d'adresses, spécifiez un pool d'adresses pour l'adresse IP virtuelle d'entrée.

    1. Cliquez sur + Ajouter une plage d'adresses IP.
    2. Saisissez un nom pour le pool d'adresses.
    3. Saisissez une plage d'adresses IP au format CIDR (par exemple, 192.0.2.0/26) ou plage (par exemple, 192.0.2.64-192.0.2.72). Les adresses IP de chaque pool ne peuvent pas se chevaucher et doivent se trouver dans le même sous-réseau que les nœuds du cluster.
    4. Sous Attribution d'adresses IP, sélectionnez l'une des options suivantes :

      • Automatique : choisissez cette option si vous souhaitez que le contrôleur MetalLB attribue automatiquement des adresses IP du pool d'adresses aux services de type LoadBalancer.
      • Manuelle : choisissez cette option si vous comptez utiliser les adresses du pool pour spécifier manuellement des adresses pour les services de type LoadBalancer.
    5. Cliquez sur Éviter les adresses IP présentant des bugs si vous souhaitez que le contrôleur MetalLB n'utilise pas les adresses du pool qui se terminent par .0 ou .255. Cela évite le problème des bugs avec les appareils grand public qui suppriment par erreur le trafic envoyé à ces adresses IP spéciales.

    6. Répétez l'opération autant de fois que nécessaire. Lorsque vous avez fini, cliquez sur Terminé.

  4. Cliquez sur Continuer.

Plan de contrôle

  1. Examinez les valeurs par défaut configurées pour les nœuds du cluster d'administrateur qui exécutent les composants de plan de contrôle pour votre cluster d'utilisateur. Les valeurs par défaut sont suffisantes pour l'infrastructure minimale, mais vous pouvez les ajuster si nécessaire.

  2. Cliquez sur Continuer.

Fonctionnalités

  1. Désactivez l'option Activer les groupes d'anti-affinités. Lorsque vous avez configuré l'infrastructure minimale, vous n'avez créé qu'un seul hôte ESXi. Par conséquent, vous ne devez pas activer les groupes d'anti-affinité.

  2. Cliquez sur Continuer.

Pools de nœuds

Votre cluster sera créé avec au moins un pool de nœuds. Un pool de nœuds représente le modèle des groupes de nœuds créés dans ce cluster. Pour en savoir plus, consultez la page Créer et gérer des pools de nœuds.

Examinez les valeurs par défaut configurées pour le pool de nœuds. Les valeurs par défaut sont suffisantes pour l'infrastructure minimale, mais vous pouvez les ajuster si nécessaire.

Vérifier et terminer

Cliquez sur Vérifier et terminer pour créer le cluster d'utilisateur. La création du cluster d'utilisateur prend au moins 10 minutes. La console Google Cloud affiche les messages d'état de vérification des paramètres et de création du cluster dans votre centre de données.

L'opérateur qui crée le cluster d'utilisateur dans la console Google Cloud est automatiquement connecté au cluster après sa création. Les autres opérateurs doivent suivre les étapes décrites dans la section Se connecter à un cluster depuis la console Cloud pour accéder au cluster.

Si une erreur se produit lors de la vérification des paramètres, la console Google Cloud affiche un message d'erreur qui doit être suffisamment clair pour résoudre le problème de configuration avant de retenter de créer le cluster.

Pour en savoir plus sur les erreurs possibles et sur la façon de les corriger, consultez la page Résoudre les problèmes de création de cluster d'utilisateur dans la console Google Cloud.

Créer le fichier kubeconfig du cluster d'utilisateur

Pour accéder au cluster utilisateur de votre centre de données à partir de la ligne de commande, vous devez obtenir un fichier kubeconfig à partir du cluster d'administrateur. Lorsque la console Cloud indique que l'état du cluster d'utilisateur est opérationnel, exécutez la commande suivante sur le poste de travail administrateur pour enregistrer un nouveau fichier kubeconfig pour le cluster d'utilisateur localement. Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster d'utilisateur nouvellement créé.
  • ADMIN_CLUSTER_KUBECONFIG : chemin d'accès au fichier kubeconfig du cluster d'administrateur.
  • USER_CLUSTER_KUBECONFIG : nom du fichier kubeconfig du cluster d'utilisateur généré par la commande
kubectl get secret admin \
--kubeconfig ADMIN_CLUSTER_KUBECONFIG \
-n CLUSTER_NAME \
-o=jsonpath='{.data.admin\.conf}' | base64 -d > USER_CLUSTER_KUBECONFIG

Une fois le fichier enregistré, vous pouvez commencer à accéder au cluster d'utilisateur à l'aide de kubectl, par exemple :

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get namespaces

Ligne de commande

  1. Obtenez une connexion SSH à votre poste de travail administrateur.

  2. Configurer des adresses IP statiques pour votre cluster d'utilisateur.

    Pour spécifier les adresses IP statiques que vous souhaitez utiliser pour votre cluster d'utilisateur, créez un fichier de blocs d'adresses IP nommé user-cluster-ipblock.yaml. Vous avez besoin de trois adresses IP pour vos nœuds de cluster d'utilisateur et d'une adresse supplémentaire à utiliser temporairement lors des mises à niveau. Voici un exemple de fichier de bloc d'adresses IP avec quatre adresses :

    blocks:
      - netmask: 255.255.255.0
        gateway: 172.16.20.1
        ips:
        - ip: 172.16.20.55
          hostname: user-vm-1
        - ip: 172.16.20.56
          hostname: user-vm-2
        - ip: 172.16.20.57
          hostname: user-vm-3
        - ip: 172.16.20.58
          hostname: user-vm-4
    

Renseigner le fichier de configuration du cluster d'utilisateur

Lorsque gkeadm a créé votre poste de travail administrateur, il a généré un fichier de configuration nommé user-cluster.yaml. Ce fichier de configuration vous permet de créer votre cluster d'utilisateur.

  1. Se familiariser avec le fichier de configuration du cluster d'utilisateur.

    Consultez la documentation du fichier de configuration du cluster d'utilisateur pour avoir une idée générale du contenu de ce fichier. Vous pouvez ouvrir la page dans un onglet ou une fenêtre séparés afin de pouvoir la consulter lorsque vous renseignez les valeurs des champs.

  2. Ouvrez user-cluster.yaml pour y apporter des modifications.

    Plusieurs champs du fichier de configuration de votre cluster utilisateur sont déjà renseignés avec des valeurs par défaut, des valeurs générées, ou des valeurs que vous avez fournies lors de la création de votre poste de travail administrateur. Vous pouvez laisser ces champs tels quels.

  3. Dans le champ nom, indiquez le nom de votre choix pour le cluster d'utilisateur.

Renseigner les champs de la section réseau

  1. Saisissez les adresses IP pour les champs suivants dans la section network.hostConfig :

    dnsServers:
    ntpServers:
    
  2. Définissez network.ipMode.type sur "static".

  3. Définissez network.ipMode.ipBlockFilePath sur "user-cluster-ipblock.yaml".

  4. Renseignez les champs ou conservez les valeurs par défaut pour network.serviceCIDR et network.podCIDR.

Remplir les champs de la section "Équilibreur de charge"

  1. Renseignez les champs suivants dans la section loadBalancer.vips :

    controlPlaneVIP:
    ingressVIP:
    
  2. Définissez loadBalancer.kind sur "MetalLB".

  3. Renseignez la section loadBalancer.metalLB. Pour en savoir plus, consultez la page Équilibrage de charge groupé avec MetalLB.

  4. Pour au moins un de vos pools de nœuds, définissez enableLoadBalancer sur true. Pour en savoir plus, consultez la page Équilibrage de charge groupé avec MetalLB.

  5. Définissez antiAffinityGroups.enabled sur false.

Exemple de fichier de configuration de cluster d'utilisateur

Voici un exemple de fichier de configuration de cluster d'utilisateur renseigné :

apiVersion: v1
kind: UserCluster
name: "my-user-cluster"
gkeOnPremVersion: "1.11.0-gke.543"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
  serviceCIDR: "10.96.0.0/20"
  podCIDR: "192.168.0.0/16"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.61"
    ingressVIP: "172.16.20.62"
  kind: "MetalLB"
  metalLB:
    addressPools:
    - name: "uc-address-pool"
      addresses:
      - "172.16.20.63-172.16.20.72"
nodePools:
- name: "uc-node-pool"
  cpus: 4
  memoryMB: 8192
  replicas: 3
  enableLoadBalancer: true
antiAffinityGroups:
  enabled: false
gkeConnect:
  projectID: "my-project-123"
  registerServiceAccountKeyPath: "connect-register-sa-2203040617.json"
stackdriver:
  projectID: "my-project-123"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "log-mon-sa-2203040617.json"
  disableVsphereResourceMetrics: false
autoRepair:
  enabled: true

Valider la configuration et créer le cluster

  1. Vérifiez que le fichier de configuration de votre cluster utilisateur est valide et qu'il peut être utilisé pour créer un cluster :

    gkectl check-config --kubeconfig kubeconfig --config user-cluster.yaml
    
  2. Créez le cluster d'utilisateur :

    gkectl create cluster --kubeconfig kubeconfig --config user-cluster.yaml
    

    La création du cluster prend environ 30 minutes.

Localiser le fichier kubeconfig du cluster d'utilisateur

La commande gkectl create cluster crée un fichier kubeconfig nommé USER_CLUSTER_NAME-kubeconfig dans le répertoire actuel. Vous aurez besoin de ce fichier kubeconfig ultérieurement pour interagir avec votre cluster d'utilisateur.

Vérifier que le cluster d'utilisateur est en cours d'exécution

Vérifiez que votre cluster d'utilisateur est en cours d'exécution :

kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG

Remplacez USER_CLUSTER_KUBECONFIG par le chemin d'accès de votre fichier kubeconfig.

Le résultat affiche les nœuds du cluster d'utilisateur. Exemple :

my-user-cluster-node-pool-69-d46d77885-7b7tx   Ready ...
my-user-cluster-node-pool-69-d46d77885-lsvzk   Ready ...
my-user-cluster-node-pool-69-d46d77885-sswjk   Ready ...

Étapes suivantes

Déployer une application