Créer un cluster d'utilisateur

Ce document explique comment créer un cluster d'utilisateur pour Anthos clusters on VMware (GKE On-Prem). Un cluster d'utilisateur est un emplacement dans lequel vous pouvez exécuter vos charges de travail. Chaque cluster d'utilisateur est associé à un cluster d'administrateur.

Pour en savoir plus sur les clusters d'administrateur et les clusters d'utilisateur, consultez la présentation de l'installation.

Présentation de la procédure

Voici les principales étapes à suivre pour créer un cluster d'utilisateur :

  1. Se connecter au poste de travail administrateur
    Le poste de travail administrateur est une VM disposant des outils nécessaires pour créer un cluster d'utilisateur.
  2. Remplir vos fichiers de configuration
    Spécifiez les détails de votre nouveau cluster en remplissant un fichier de configuration du cluster d'utilisateur, un fichier de configuration des identifiants et éventuellement un fichier de bloc d'adresses IP.
  3. Créer un équilibreur de charge Seesaw (facultatif)
    Si vous avez choisi d'utiliser l'équilibreur de charge Seesaw, exécutez gkectl create loadbalancer.
  4. Créer un cluster d'utilisateur
    Exécutez gkectl create cluster pour créer un cluster comme spécifié dans votre fichier de configuration.
  5. Vérifier que votre cluster d'utilisateur est en cours d'exécution
    Utilisez kubectl pour afficher les nœuds de votre cluster.

À la fin de cette procédure, vous disposerez d'un cluster d'utilisateur en cours d'exécution dans lequel vous pourrez déployer vos charges de travail.

Avant de commencer

  • Assurez-vous d'avoir créé un poste de travail administrateur et un cluster d'administrateur .

  • Consultez le document de planification des adresses IP. Assurez-vous que vous disposez de suffisamment d'adresses IP et examinez à nouveau la manière dont vous souhaitez que les nœuds de votre cluster obtiennent leurs adresses IP : DHCP ou statique. Si vous décidez d'utiliser des adresses IP statiques, vous devez renseigner un fichier de bloc d'adresses IP contenant les adresses choisies.

  • Consultez la présentation de l'équilibrage de charge et examinez votre décision concernant le type d'équilibreur de charge que vous souhaitez utiliser. Pour certains équilibreurs de charge, vous devez configurer l'équilibreur de charge avant de créer votre cluster d'utilisateur.

  • Consultez la section vcenter. Déterminez si vous souhaitez utiliser des clusters vSphere distincts pour votre cluster d'administrateur et vos clusters d'utilisateur, et si vous souhaitez utiliser des centres de données distincts. Les options permettant d'avoir des clusters vSphere et des centres de données distincts sont en version bêta.

  • Consultez la section nodePools. Déterminez le nombre de pools de nœuds dont vous avez besoin et le système d'exploitation que vous souhaitez exécuter dans chacun de vos pools.

1. Se connecter au poste de travail administrateur

Obtenez une connexion SSH à votre poste de travail administrateur.

Rappelez-vous que gkeadm a activé votre compte de service d'accès au composant sur le poste de travail administrateur.

Effectuez toutes les étapes décrites dans cette rubrique sur votre poste de travail administrateur dans le répertoire d'accueil.

2. Remplir le fichier de configuration

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.

Familiarisez-vous avec le fichier de configuration en analysant le fichier de configuration du cluster d'utilisateur. Nous vous recommandons de conserver ce document ouvert dans un nouvel onglet ou dans une autre fenêtre, car vous en aurez besoin pour réaliser les étapes suivantes.

name

Saisissez le nom de votre choix pour le cluster d'utilisateur dans le champ name.

gkeOnPremVersion

Ce champ est déjà renseigné. Il spécifie la version des clusters Anthos sur VMware. Par exemple : 1.11.0-gke.543

vCenter

Les valeurs définies dans la section vCenter du fichier de configuration du cluster d'administrateur sont globales. Autrement dit, elles s'appliquent au cluster d'administrateur et aux clusters d'utilisateur.

Pour chaque cluster d'utilisateur que vous créez, vous avez la possibilité de remplacer certaines des valeurs vCenter globales.

Pour remplacer l'une des valeurs vCenter globales, renseignez les champs appropriés dans la section vCenter du fichier de configuration de votre cluster d'utilisateur.

Vous pouvez par exemple utiliser des clusters vSphere distincts pour votre cluster d'administrateur et vos clusters d'utilisateur, ainsi que des centres de données distincts pour votre cluster d'administrateur et vos clusters d'utilisateur.

Utiliser un centre de données et un cluster vSphere

L'option par défaut consiste à utiliser un centre de données et un cluster vSphere pour le cluster d'administrateur et pour tous les clusters d'utilisateur. Les valeurs du fichier de configuration du cluster d'administrateur sont également utilisées pour le cluster d'utilisateur. Ne définissez aucune valeur vCenter dans le fichier de configuration du cluster d'utilisateur.

Créer un cluster d'utilisateur dans un cluster vSphere distinct

Cette fonctionnalité est disponible en version bêta pour la version 1.11.

Si vous souhaitez créer un cluster d'utilisateur dans son propre cluster vSphere, spécifiez une valeur pour vCenter.cluster dans le fichier de configuration du cluster d'utilisateur.

Si votre cluster d'administrateur et votre cluster d'utilisateur se trouvent dans des clusters vSphere distincts, ils peuvent se trouver dans le même centre de données ou dans des centres de données différents.

Créer un cluster d'utilisateur avec un centre de données distinct

Cette fonctionnalité est disponible en version bêta pour la version 1.11.

Le cluster d'utilisateur et le cluster d'administrateur peuvent se trouver dans différents centres de données. Dans ce cas, ils se trouvent également dans des clusters vSphere distincts.

Si vous spécifiez vCenter.datacenter dans le fichier de configuration du cluster d'utilisateur, vous devez également spécifier vCenter.datastore et vCenter.networkName, et vous devez indiquer vCenter.cluster ou vCenter.resourcePool.

Pour utiliser différents centres de données pour le cluster d'administrateur et le cluster d'utilisateur, nous vous recommandons de créer un datastore distinct pour chaque plan de contrôle de cluster d'utilisateur du centre de données du cluster d'administrateur, de sorte que le plan de contrôle du cluster d'administrateur et les plans de contrôle du cluster d'utilisateur ont des domaines de défaillance de datastore isolés. Bien que vous puissiez utiliser le datastore du cluster d'administrateur pour les nœuds du plan de contrôle du cluster, cela place les nœuds du plan de contrôle du cluster et le cluster d'administrateur dans le même domaine de défaillance de datastore.

Compte vCenter différent pour un cluster d'utilisateur dans son propre centre de données

Un cluster d'utilisateur peut utiliser un autre compte vCenter que celui du cluster d'administrateur, avec un champ vCenter.credentials différent. Le compte vCenter du cluster d'administrateur doit avoir accès au centre de données du cluster d'administrateur, tandis que le compte vCenter destiné au cluster d'utilisateur n'a besoin que d'accéder au centre de données du cluster d'utilisateur.

network

Décidez comment vous souhaitez que les nœuds de votre cluster obtiennent leurs adresses IP. Vous disposez des options suivantes :

  • Depuis un serveur DHCP que vous avez configuré à l'avance. Définissez network.ipMode.type sur "dhcp".

  • À partir d'une liste d'adresses IP statiques que vous fournissez. Définissez network.ipMode.type sur "static", puis créez un fichier de bloc d'adresses IP qui fournit les adresses IP statiques. Pour obtenir un exemple de fichier de bloc d'adresses IP, consultez la section Exemple de fichiers de configuration renseignés.

Renseignez les autres champs selon les besoins dans la section réseau :

  • Si vous avez décidé d'utiliser des adresses IP statiques pour vos nœuds de cluster d'utilisateur, le network.ipMode.ipBlockFilePath et la section network.hostconfig sont obligatoires. La section network.hostconfig contient des informations sur les serveurs NTP, les serveurs DNS et les domaines de recherche DNS utilisés par vos nœuds de cluster.

    Si vous utilisez l'équilibreur de charge Seesaw, la section network.hostconfig est obligatoire, même si vous prévoyez d'utiliser le protocole DHCP pour vos nœuds de cluster.

  • Les champs network.podCIDR et network.serviceCIDR sont préremplis avec des valeurs que vous pouvez laisser inchangées, sauf si elles entrent en conflit avec des adresses déjà utilisées sur votre réseau. Kubernetes utilise ces plages pour attribuer des adresses IP aux pods et aux services de votre cluster.

Que vous utilisiez un serveur DHCP ou que vous spécifiiez une liste d'adresses IP statiques, vous devez disposer de suffisamment d'adresses IP disponibles pour votre cluster d'utilisateur. Cela inclut les nœuds de votre cluster d'utilisateur et les nœuds du cluster d'administrateur qui exécutent le plan de contrôle de votre cluster d'utilisateur. Pour connaître le nombre d'adresses IP dont vous avez besoin, consultez la section Planifier vos adresses IP.

Règles de pare-feu pour un cluster d'utilisateur avec une valeur network.vCenter.networkName distincte

Dans leur fichier de configuration respectif, le cluster d'administrateur et le cluster d'utilisateur peuvent utiliser des valeurs network.vCenter.networkName distinctes représentant différents VLAN et centres de données. Toutefois, la communication entre les VLAN doit être autorisée comme indiqué ci-dessous.

  • Les nœuds utilisateur peuvent accéder aux ports 443 et 8132 sur l'adresse VIP du plan de contrôle du cluster utilisateur et obtenir des paquets en retour.

loadBalancer

Définissez une adresse IP virtuelle pour le serveur d'API Kubernetes de votre cluster d'utilisateur. Définissez-en une autre pour le service d'entrée de votre cluster d'utilisateur. Indiquez vos adresses IP virtuelles comme valeurs pour loadBalancer.vips.controlPlaneVIP et loadBalancer.vips.ingressVIP.

Pour en savoir plus, consultez les pages Adresses IP virtuelles dans le sous-réseau de cluster d'utilisateur et Adresses IP virtuelles dans le sous-réseau de cluster d'administrateur.

Choisissez le type d'équilibrage de charge que vous souhaitez utiliser. Vous disposez des options suivantes :

Pour en savoir plus sur les options d'équilibrage de charge, consultez la page Présentation de l'équilibrage de charge.

enableDataplaneV2

Indiquez si vous souhaitez activer Dataplane V2 pour votre cluster d'utilisateur et définissez enableDataplaneV2 en conséquence.

enableWindowsDataplaneV2

Si vous prévoyez de disposer d'un pool de nœuds Windows, décidez si vous souhaitez activer Windows Dataplane V2 et définissez enableWindowsDataplaneV2 en conséquence.

advancedNetworking

Si vous envisagez de créer une passerelle NAT de sortie, définissez advancedNetworking sur true.

multipleNetworkInterfaces

Décidez si vous souhaitez configurer plusieurs interfaces réseau pour les pods et définissez multipleNetworkInterfaces en conséquence.

storage

Si vous souhaitez désactiver le déploiement des composants CSI vSphere, définissez storage.vSphereCSIDisabled sur true.

masterNode

Le plan de contrôle de votre cluster d'utilisateur s'exécute sur les nœuds du cluster d'administrateur.

Dans la section masterNode, vous pouvez spécifier le nombre de nœuds de plan de contrôle souhaités pour votre cluster d'utilisateur. Vous pouvez également spécifier un datastore pour les nœuds du plan de contrôle et si vous souhaitez activer le redimensionnement automatique des nœuds.

nodePools

Un pool de nœuds est un groupe de nœuds au sein d'un cluster qui possèdent tous la même configuration. Par exemple, les nœuds d'un pool peuvent exécuter Windows et les nœuds d'un autre pool peuvent exécuter Linux.

Vous devez spécifier au moins un pool de nœuds en remplissant la section nodePools.

Pour en savoir plus, consultez les pages Pools de nœuds et Créer et gérer des pools de nœuds.

antiAffinityGroups

Définissez antiAffinityGroups.enabled sur true ou false.

Ce champ indique si les clusters Anthos sur VMware créent des règles d'anti-affinité DRS (Distributed Resource Scheduler) pour vos nœuds de cluster utilisateur, avec pour effet de les répartir sur au moins trois hôtes physiques de votre centre de données.

stackdriver

Si vous souhaitez activer Cloud Logging et Cloud Monitoring pour votre cluster, renseignez la section stackdriver.

gkeConnect

Votre cluster d'utilisateur doit être enregistré dans un parc Google Cloud.

Renseignez la section gkeConnect pour spécifier un projet hôte du parc et un compte de service associé.

usageMetering

Si vous souhaitez activer la mesure de l'utilisation de votre cluster, renseignez la section usageMetering.

cloudAuditLogging

Si vous souhaitez intégrer les journaux d'audit du serveur d'API Kubernetes de votre cluster avec Cloud Audit Logs, remplissez la section cloudAuditLogging.

Exemple de fichiers de configuration préremplis

Voici un exemple de fichier de bloc d'adresses IP renseigné et de fichier de configuration de cluster d'utilisateur renseigné. La configuration active certaines des fonctionnalités disponibles, mais pas toutes.

vc-01-ipblock-user.yaml

blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.21
      hostname: user-host1
    - ip: 172.16.20.22
      hostname: user-host2
    - ip: 172.16.20.23
      hostname: user-host3
    - ip: 172.16.20.24
      hostname: user-host4
    - ip: 172.16.20.25
      hostname: user-host5
    - ip: 172.16.20.26
      hostname: user-host6

vc-01-user-cluster.yaml

apiVersion: v1
kind: UserCluster
name: "gke-user-01"
gkeOnPremVersion: 1.11.0-gke.543
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: dhcp
    ipBlockFilePath: "vc-01-ipblock-user.yaml"
  serviceCIDR: 10.96.0.0/20
  podCIDR: 192.168.0.0/16
  vCenter:
    networkName: "vc01-net-1"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.32"
    ingressVIP: "172.16.21.30"
  kind: "MetalLB"
   metalLB:
    addressPools:
    - name: "gke-address-pool-01"
      addresses:
      - "172.16.21.30 - 172.16.21.39"
enableDataplaneV2: true
masterNode:
  cpus: 4
  memoryMB: 8192
  replicas: 1
nodePools:
- name: "gke-node-pool-01"
  cpus: 4
  memoryMB: 8192
  replicas: 3
  osImageType: "ubuntu_containerd"
antiAffinityGroups:
  enabled: true
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"
autoRepair:
  enabled: true

Valider votre fichier de configuration

Une fois que vous avez rempli le fichier de configuration du cluster d'utilisateur, exécutez gkectl check-config pour vérifier que le fichier est valide :

gkectl check-config --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Remplacez les éléments suivants :

  • ADMIN_CLUSTER_KUBECONFIG : chemin d'accès au fichier kubeconfig du cluster d'administrateur.

  • USER_CLUSTER_CONFIG : chemin d'accès au fichier de configuration du cluster d'utilisateur

Si la commande renvoie des messages d'échec, corrigez les problèmes et validez à nouveau le fichier.

Si vous souhaitez ignorer les validations les plus longues, transmettez l'option --fast. Pour ignorer des validations individuelles, utilisez les options --skip-validation-xxx. Pour en savoir plus sur la commande check-config, consultez la page Exécuter des vérifications préliminaires.

3. Créer un équilibreur de charge Seesaw pour votre cluster d'utilisateur (facultatif)

Si vous avez choisi d'utiliser l'équilibreur de charge groupé Seesaw, suivez la procédure dans cette section. Sinon, ignorez cette section.

Créez et configurez la VM pour votre équilibreur de charge Seesaw :

gkectl create loadbalancer --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

4. Créer un cluster d'utilisateur

Créez un cluster d'utilisateur :

gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

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.

Si vous le souhaitez, vous pouvez modifier le nom et l'emplacement de votre fichier kubeconfig.

5. Vérifier que votre 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 du fichier kubeconfig de votre cluster d'utilisateur.

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

Dépannage

Consultez la section Dépanner la création et la mise à niveau du cluster.

Étapes suivantes