Ce document explique comment créer un cluster d'utilisateur avec Controlplane V2 activé.
Avec le plan de contrôle V2, le plan de contrôle d'un cluster d'utilisateur s'exécute sur un ou plusieurs nœuds du cluster d'utilisateur lui-même. Le plan de contrôle V2 est le paramètre par défaut et recommandé pour la création de clusters.
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.
- (Facultatif) Importez des images d'OS dans vSphere et transférez des images de conteneurs vers la
- registre privé, le cas échéant.
- Exécutez
gkectl prepare
.
- 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 réexaminez votre décision concernant le type d'équilibreur de charge que vous souhaitez utiliser. Vous pouvez utiliser l'équilibreur de charge MetalLB groupé ou configurer manuellement un équilibreur de charge de votre choix. Pour l'équilibrage de charge manuel, vous devez configurer l'équilibreur de charge avant de créer le 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. Demandez-vous également si vous souhaitez utiliser des instances distinctes de vCenter Server.
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 de GKE sur VMware. Par exemple : 1.15.0-gke.581
enableControlplaneV2
Définissez enableControlplaneV2
sur true
.
enableDataplaneV2
Définissez enableDataplaneV2 sur true
.
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 en particulier 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 le cluster d'utilisateur. Pour cette option, ne définissez aucune valeur vCenter
dans le fichier de configuration du cluster d'utilisateur. Les valeurs vCenter
seront héritées du cluster d'administrateur.
Utiliser des clusters vSphere distincts
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.
Utiliser des centres de données vSphere distincts
Le cluster d'utilisateur et le cluster d'administrateur peuvent se trouver dans des centres de données différents. 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.networkName
vCenter.datastore
ouvCenter.storagePolicyName
vCenter.cluster
ouvCenter.resourcePool
Utiliser des comptes vCenter distincts
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 a besoin d'accéder au centre de données du cluster d'administrateur, tandis que le compte vCenter du cluster d'utilisateur n'a besoin d'accéder qu'au centre de données du cluster d'utilisateur.
Utiliser des instances distinctes de vCenter Server
Dans certains cas, il est judicieux de créer un cluster d'utilisateur qui utilise sa propre instance de vCenter Server. Autrement dit, le cluster d'administrateur et un cluster d'utilisateur associé utilisent des instances différentes de vCenter Server.
Par exemple, dans un emplacement périphérique, vous pouvez avoir une machine physique exécutant vCenter Server et une ou plusieurs machines physiques exécutant ESXi. Vous pouvez ensuite utiliser votre instance locale de vCenter Server pour créer une hiérarchie d'objets vSphere, y compris des centres de données, des clusters, des pools de ressources, des datastores et des dossiers.
Remplissez l'intégralité de la section vCenter
du fichier de configuration de votre cluster d'utilisateur. En particulier, spécifiez pour vCenter.address
une valeur différente de l'adresse du serveur vCenter spécifiée dans le fichier de configuration du cluster d'administrateur. Exemple :
vCenter: address: "vc-edge.example" datacenter: "vc-edge" cluster: "vc-edge-workloads" resourcePool: "vc-edge-pool datastore: "vc-edge-datastore caCertPath: "/usr/local/google/home/me/certs/edge-cacert.pem" credentials: fileRef: path: "credential.yaml" entry: "vCenter-edge" folder: "edge-vm-folder"
Renseignez également le champ network.vCenter.networkName
.
network
Décidez de quelle manière vous souhaitez que vos nœuds de calcul 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 blocs d'adresses IP, consultez la section Exemple de fichiers de configuration remplis.
Si vous avez décidé d'utiliser des adresses IP statiques pour vos nœuds de calcul, renseignez le champ network.ipMode.ipBlockFilePath
.
Les nœuds du plan de contrôle de votre cluster d'utilisateur doivent obtenir leurs adresses IP à partir d'une liste d'adresses statiques que vous fournissez. C'est le cas même si vos nœuds de calcul
obtiennent leurs adresses à partir d'un serveur DHCP. Pour spécifier des adresses IP statiques pour les nœuds du plan de contrôle, remplissez la section network.controlPlaneIPBlock
. Si vous souhaitez un cluster d'utilisateur haute disponibilité, spécifiez trois adresses IP. Sinon, spécifiez une adresse IP.
Spécifiez les serveurs DNS et NTP en remplissant la section hostConfig
. Ces serveurs DNS et NTP sont destinés aux nœuds du plan de contrôle. Si vous utilisez des adresses IP statiques pour vos nœuds de calcul, ces serveurs DNS et NTP sont également destinés aux nœuds de calcul.
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. Pour connaître le nombre d'adresses IP dont vous avez besoin, consultez la section Planifier vos adresses IP.
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
.
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 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.
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
Dans la section masterNode
, vous pouvez spécifier le nombre de nœuds du plan de contrôle que vous souhaitez pour votre cluster d'utilisateur: un ou trois. Vous pouvez également spécifier un datastore pour les nœuds du plan de contrôle et indiquer si vous souhaitez activer le redimensionnement automatique pour ces nœuds.
Rappelez-vous que vous avez spécifié les adresses IP des nœuds du plan de contrôle dans la section network.controlPlaneIPBlock
.
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 GKE sur VMware crée des règles anti-affinité Distributed Resource Scheduler (DRS) pour vos nœuds de calcul, avec pour effet de les répartir sur au moins trois hôtes physiques dans votre centre de données.
stackdriver
Si vous souhaitez activer Cloud Logging et Cloud Monitoring pour votre cluster, renseignez la section stackdriver
.
Cette section est obligatoire par défaut. Autrement dit, si vous ne remplissez pas cette section, vous devez inclure l'option --skip-validation-stackdriver
lorsque vous exécutez gkectl create cluster
.
Notez les exigences suivantes pour les nouveaux clusters:
L'ID dans
stackdriver.projectID
doit être identique à l'ID dansgkeConnect.projectID
etcloudAuditLogging.projectID
.La région Google Cloud définie dans
stackdriver.clusterLocation
doit être identique à celle définie danscloudAuditLogging.clusterLocation
. De plus, sigkeOnPremAPI.enabled
correspond àtrue
, la même région doit être définie dansgkeOnPremAPI.location
.
Si les ID de projet et les régions ne sont pas identiques, la création du cluster échoue.
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é.
Si vous incluez les sections stackdriver
et cloudAuditLogging
dans le fichier de configuration, l'ID de gkeConnect.projectID
doit être identique à celui défini dans stackdriver.projectID
et cloudAuditLogging.projectID
. Si les ID de projet sont différents, la création du cluster échoue.
gkeOnPremAPI
À partir de la version 1.16, si l'API GKE On-Prem est activée dans votre projet Google Cloud, tous les clusters du projet sont automatiquement enregistrés dans l'API GKE On-Prem dans la région configurée dans stackdriver.clusterLocation
.
Si vous souhaitez enregistrer tous les clusters du projet dans l'API GKE On-Prem, suivez la procédure décrite dans la section Avant de commencer pour activer et utiliser l'API GKE On-Prem dans le projet.
Si vous ne souhaitez pas enregistrer le cluster dans l'API GKE On-Prem, incluez cette section et définissez
gkeOnPremAPI.enabled
surfalse
. Si vous ne souhaitez enregistrer aucun cluster dans le projet, désactivezgkeonprem.googleapis.com
(nom de service pour l'API GKE On-Prem) dans le projet. Pour obtenir des instructions, consultez la section Désactiver des services.
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
.
Notez les exigences suivantes pour les nouveaux clusters:
L'ID dans
cloudAuditLogging.projectID
doit être identique à l'ID dansgkeConnect.projectID
etstackdriver.projectID
.La région Google Cloud définie dans
cloudAuditLogging.clusterLocation
doit être identique à celle définie dansstackdriver.clusterLocation
. De plus, sigkeOnPremAPI.enabled
correspond àtrue
, la même région doit être définie dansgkeOnPremAPI.location
.
Si les ID de projet et les régions ne sont pas identiques, la création du cluster échoue.
Exemple de fichiers de configuration préremplis
Voici un exemple de fichier de bloc d'adresses IP et de fichier de configuration de cluster d'utilisateur.
user-ipblock.yaml
blocks: - netmask: 255.255.255.0 gateway: 172.16.21.1 ips: - ip: 172.16.21.2 hostname: worker-vm-1 - ip: 172.16.21.3 hostname: worker-vm-2 - ip: 172.16.21.4 hostname: worker-vm-3 - ip: 172.16.21.5 hostname: worker-vm-4
user-cluster.yaml
cat user-cluster.yaml apiVersion: v1 kind: UserCluster name: "my-user-cluster" gkeOnPremVersion: 1.15.0-gke.581 enableControlplaneV2: true enableDataplaneV2: true network: hostConfig: dnsServers: - "203.0.113.2" - "198.51.100.2" ntpServers: - "216.239.35.4" ipMode: type: "static" ipBlockFilePath: "user-ipblock.yaml" serviceCIDR: 10.96.0.0/20 podCIDR: 192.168.0.0/16 controlPlaneIPBlock: netmask: "255.255.255.0" gateway: "172.16.21.1" ips: - ip: "172.16.21.6" hostname: "cp-vm-1" - ip: "172.16.21.7" hostname: "cp-vm-2" - ip: "172.16.21.8" hostname: "cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" ingressVIP: "172.16.21.30" kind: MetalLB metalLB: addressPools: - name: "address-pool-1" addresses: - "172.16.21.30-172.16.21.39" masterNode: cpus: 4 memoryMB: 8192 replicas: 3 nodePools: - name: "worker-node-pool" cpus: 4 memoryMB: 8192 replicas: 3 enableLoadBalancer: true 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
Voici les points importants à comprendre dans l'exemple précédent :
Les adresses IP statiques des nœuds de calcul sont spécifiées dans un fichier de bloc d'adresses IP. Le fichier de blocs d'adresses IP comporte quatre adresses, même s'il n'y a que trois nœuds de calcul. L'adresse IP supplémentaire est nécessaire lors de la mise à niveau, de la mise à jour et de la réparation automatique du cluster.
Les serveurs DNS et NTP sont spécifiés dans la section
hostConfig
. Dans cet exemple, ces serveurs DNS et NTP sont destinés aux nœuds du plan de contrôle et aux nœuds de calcul. En effet, les nœuds de calcul possèdent des adresses IP statiques. Si les nœuds de calcul obtiennent leurs adresses IP à partir d'un serveur DHCP, ces serveurs DNS et NTP ne concerneront que les nœuds du plan de contrôle.Les adresses IP statiques des trois nœuds de plan de contrôle sont spécifiées dans la section
network.controlPlaneIPBlock
du fichier de configuration du cluster d'utilisateur. Aucune adresse IP supplémentaire n'est nécessaire dans ce bloc.Le champ
masterNode.replicas
est défini sur3
.L'adresse IP virtuelle du plan de contrôle et l'adresse IP virtuelle d'entrée se trouvent dans le même VLAN que les nœuds de calcul et les nœuds du plan de contrôle.
Les adresses IP virtuelles réservées pour les services de type LoadBalancer sont spécifiées dans la section
loadBalancer.metalLB.addressPools
du fichier de configuration du cluster d'utilisateur. Ces adresses IP virtuelles se trouvent sur le même VLAN que les nœuds de calcul et les nœuds du plan de contrôle. L'ensemble d'adresses IP virtuelles spécifié dans cette section doit inclure l'adresse IP virtuelle d'entrée et non celle du plan de contrôle.Le fichier de configuration du cluster d'utilisateur n'inclut pas de section
vCenter
. Le cluster d'utilisateur utilise donc les mêmes ressources vSphere que le cluster d'administrateur.
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. (Facultatif) Importez des images d'OS dans vSphere et transférez des images de conteneurs vers un registre privé
Exécutez gkectl prepare
si l'une des conditions suivantes est remplie:
Votre cluster d'utilisateur se trouve dans un centre de données vSphere différent de votre cluster d'administrateur.
Votre cluster d'utilisateur possède un serveur vCenter différent de votre cluster d'administrateur.
Votre cluster d'utilisateur utilise un registre de conteneurs privé différent du registre privé utilisé par votre cluster d'administrateur.
gkectl prepare --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --bundle-path BUNDLE \ --user-cluster-config USER_CLUSTER_CONFIG
Remplacez les éléments suivants :
ADMIN_CLUSTER_KUBECONFIG: chemin d'accès au fichier kubeconfig du cluster d'administrateur
BUNDLE: chemin d'accès au fichier de bundle. Ce fichier se trouve sur votre poste de travail administrateur dans
/var/lib/gke/bundles/
. Exemple :/var/lib/gke/bundles/gke-onprem-vsphere-1.14.0-gke.421-full.tgz
USER_CLUSTER_CONFIG : chemin d'accès au fichier de configuration du cluster d'utilisateur
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.
Le fichier kubeconfig contient le nom de votre cluster d'utilisateur. Pour afficher le nom du cluster, vous pouvez exécuter la commande suivante:
kubectl config get-clusters --kubeconfig USER_CLUSTER_KUBECONFIG
Le résultat affiche le nom du cluster. Exemple :
NAME my-user-cluster
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 :
cp-vm-1 Ready control-plane,master 18m cp-vm-2 Ready control-plane,master 18m cp-vm-3 Ready control-plane,master 18m worker-vm-1 Ready 6m7s worker-vm-2 Ready 6m6s worker-vm-3 Ready 6m14s
Mettre à niveau un cluster d'utilisateur
Suivez les instructions de la page Mettre à niveau Anthos clusters on VMware.
Supprimer un cluster
Pour supprimer un cluster d'utilisateur sur lequel Controlplane V2 est activé, suivez les instructions de la section Supprimer un cluster d'utilisateur.
Lorsque vous supprimez un cluster d'utilisateur sur lequel le plan de contrôle V2 est activé, le disque de données est automatiquement supprimé.
Dépannage
Consultez la section Dépanner la création et la mise à niveau du cluster.