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 :
- 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.
- 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.
- Créer un équilibreur de charge Seesaw (facultatif)
- Si vous avez choisi d'utiliser l'équilibreur de charge Seesaw, exécutez
gkectl create loadbalancer
.
- Créer un cluster d'utilisateur
- Exécutez
gkectl create cluster
pour créer un cluster comme spécifié dans votre fichier de configuration.
- 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 sectionnetwork.hostconfig
sont obligatoires. La sectionnetwork.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 :
Équilibrage de charge groupé MetalLB. Définissez
loadBalancer.kind
sur"MetalLB"
. Renseignez également la sectionloadBalancer.metalLB.addressPools
, puis définissezenableLoadBalancer
surtrue
pour au moins l'un de vos pools de nœuds. Pour en savoir plus, consultez la page Équilibrage de charge groupé avec MetalLB.Équilibrage de charge groupé Seesaw. Définissez
loadBalancer.kind
sur"Seesaw"
, puis remplissez la sectionloadBalancer.seesaw
. Pour en savoir plus, consultez la page Équilibrage de charge groupé avec Seesaw.Équilibrage de charge intégré avec F5 BIG-IP Définissez
loadBalancer.kind
sur"F5BigIP"
, puis remplissez la sectionf5BigIP
. Pour en savoir plus, consultez la section Équilibrage de charge avec F5 BIG-IP.Équilibrage de charge manuel. Définissez
loadBalancer.kind
sur"ManualLB"
, puis remplissez la sectionmanualLB
. Pour en savoir plus, consultez la page sur l'équilibrage de charge manuel.
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.