Découvrez comment créer un cluster d'administrateur et un cluster d'utilisateur avec la configuration de base.
Les étapes décrites sur cette page supposent que vous avez utilisé gkeadm
pour créer votre poste de travail administrateur.
Si vous n'avez pas utilisé gkeadm
, mais que vous avez suivi la procédure avancée décrite sur la page Créer un poste de travail administrateur avec une adresse IP statique, vous devrez peut-être procéder à des ajustements comme expliqué à chaque étape.
Pour un poste de travail d'administrateur DHCP, vous devez utiliser le guide d'installation DHCP correspondant.
Si vous êtes protégé par un proxy, toutes les commandes gkectl
utilisent automatiquement le même proxy que celui défini dans votre fichier de configuration pour les requêtes Internet provenant du poste de travail administrateur. Si votre poste de travail n'est pas protégé par le même proxy, consultez la section "Options de proxy manuel" dans les rubriques avancées Créer un poste de travail administrateur : Adresse IP statique | DHCP.
Se connecter en SSH au poste de travail administrateur
Connectez-vous en SSH à votre poste de travail administrateur en suivant les instructions de la section Obtenir une connexion SSH à votre poste de travail administrateur.
Le compte de service sur liste d'autorisation est activé sur votre poste de travail administrateur. Effectuez toutes les étapes restantes de cette page sur votre poste de travail administrateur.
Configurer des adresses IP statiques pour votre cluster d'administrateur
Pour spécifier les adresses IP statiques que vous souhaitez utiliser pour votre cluster d'administrateur, créez un fichier de configuration d'hôte nommé admin-hostconfig.yaml
. Pour cet exercice, vous devez spécifier cinq adresses IP à utiliser par le cluster d'administrateur.
Voici un exemple de fichier de configuration d'hôte avec cinq hôtes :
hostconfig: dns: 172.16.255.1 tod: 216.239.35.0 otherdns: - 8.8.8.8 - 8.8.4.4 othertod: - ntp.ubuntu.com searchdomainsfordns: - "my.local.com" blocks: - netmask: 255.255.252.0 gateway: 172.16.23.254 ips: - ip: 172.16.20.10 hostname: admin-host1 - ip: 172.16.20.11 hostname: admin-host2 - ip: 172.16.20.12 hostname: admin-host3 - ip: 172.16.20.13 hostname: admin-host4 - ip: 172.16.20.14 hostname: admin-host5
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 que GKE On-Prem va affecter à vos nœuds de cluster d'administrateur.
Dans le fichier de configuration d'hôte, spécifiez également les adresses des serveurs DNS, des serveurs de temps et de la passerelle par défaut que les nœuds du cluster d'administrateur utiliseront.
Le champ searchdomainsfordns
est un tableau de domaines de recherche DNS à utiliser dans le cluster. Ces domaines sont utilisés dans le cadre d'une liste de recherche de domaines.
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 configuration d'hôte nommé user-hostconfig.yaml
.
Voici un exemple de fichier de configuration d'hôte comportant trois hôtes :
hostconfig: dns: 172.16.255.1 tod: 216.239.35.0 otherdns: - 8.8.8.8 - 8.8.4.4 othertod: - ntp.ubuntu.com searchdomainsfordns: - "my.local.com" blocks: - netmask: 255.255.252.0 gateway: 172.16.23.254 ips: - ip: 172.16.20.15 hostname: user-host1 - ip: 172.16.20.16 hostname: user-host2 - ip: 172.16.20.17 hostname: user-host3
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 que GKE On-Prem va attribuer aux nœuds de votre cluster d'utilisateur.
Dans le fichier de configuration de l'hôte, spécifiez également les adresses des serveurs DNS, des serveurs de temps et de la passerelle par défaut que les nœuds du cluster d'utilisateur utiliseront.
Le champ searchdomainsfordns
est un tableau de domaines de recherche DNS à utiliser dans le cluster. Ces domaines sont utilisés dans le cadre d'une liste de recherche de domaines.
Champs renseignés dans votre fichier de configuration GKE On-Prem
Rappelez-vous que lorsque vous avez créé votre poste de travail administrateur, vous avez rempli un fichier de configuration nommé admin-ws-config.yaml
. L'outil de ligne de commande gkeadm
a utilisé votre fichier admin-ws-config.yaml
pour créer le poste de travail administrateur.
Lorsque gkeadm
a créé votre poste de travail administrateur, il a généré un second fichier de configuration nommé config.yaml
. Ce fichier de configuration, qui se trouve sur votre poste de travail administrateur, permet de créer des clusters GKE On-Prem.
Les fichiers admin-ws-config.yaml
et config.yaml
ont plusieurs champs en commun. Les valeurs de ces champs communs sont déjà renseignées dans votre fichier config.yaml
.
Il s'agit des champs déjà renseignés avec les valeurs que vous avez fournies lors de la création de votre poste de travail administrateur :
vcenter: credentials: address: username: password: datacenter: datastore: cluster: network: resourcepool: cacertpath: gkeconnect: projectid: registerserviceaccountkeypath: agentserviceaccountkeypath: stackdriver: projectid: serviceaccountkeypath: gcrkeypath:
Remplir le reste de votre fichier de configuration GKE On-Prem
Vous devez ensuite remplir les autres champs de votre fichier config.yaml
.
bundlepath
Le fichier de groupe GKE On-Prem contient tous les composants d'une version particulière de GKE On-Prem. Définissez la valeur de bundlepath
sur le chemin d'accès du fichier de groupe du poste de travail administrateur.
bundlepath: /var/lib/gke/bundles/gke-onprem-vsphere-1.4.3-gke.3-full.tgz
vcenter.datadisk
GKE On-Prem crée un disque de machine virtuelle (VMDK) afin d'y stocker les données de l'objet Kubernetes pour le cluster d'administrateur. Le programme d'installation crée le VMDK, mais vous devez lui attribuer un nom dans le champ vcenter.datadisk
.
Exemple :
vcenter: ... datadisk: "my-disk.vmdk"
- Datastore vSAN : créer un dossier pour le VMDK
Si vous utilisez un datastore vSAN, vous devez placer le VMDK dans un dossier. Vous devez créer le dossier manuellement à l'avance. Pour ce faire, vous pouvez utiliser
govc
:govc datastore.mkdir -namespace=true my-gke-on-prem-folder
Définissez ensuite
vcenter.datadisk
sur le chemin d'accès du VMDK, en y incluant le nom du dossier. Exemple :vcenter: ... datadisk: "my-gke-on-prem-folder/my-disk.vmdk"
Dans la version 1.1.1, un problème connu nécessite que vous fournissiez l'identifiant unique universel (UUID) du dossier au lieu de son chemin.
proxy
Si votre réseau se trouve derrière un serveur proxy, vous devez spécifier l'adresse du proxy et toutes les adresses qui ne doivent pas passer par le serveur proxy.
Définissez proxy.url
pour spécifier l'adresse HTTP
de votre serveur proxy. Vous devez inclure le numéro de port, même s'il est identique au port par défaut du schéma.
Le serveur proxy que vous spécifiez ici est utilisé par vos clusters GKE On-Prem. En outre, votre poste de travail administrateur est automatiquement configuré pour utiliser ce même serveur proxy, sauf si vous définissez la variable d'environnement HTTPS_PROXY
sur votre poste de travail administrateur.
Configurez proxy.noproxy
pour définir une liste d'adresses IP, de plages d'adresses IP, de noms d'hôte et de noms de domaine qui ne doivent pas passer par le serveur proxy. Lorsque GKE On-Prem envoie une requête à l'une de ces adresses, ou à l'un de ces hôtes ou domaines, cette requête est envoyée directement.
Exemple :
proxy: url: "http://my-proxy.example.local:80" noproxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"
admincluster.ipblockfilepath
Étant donné que vous utilisez des adresses IP statiques, vous devez disposer d'un fichier de configuration d'hôte comme décrit dans la section Configurer des adresses IP statiques. Indiquez le chemin d'accès de votre fichier de configuration d'hôte dans le champ admincluster.ipblockfilepath
. Exemple :
admincluster: ipblockfilepath: "/my-config-directory/admin-hostconfig.yaml"
admincluster.bigip.credentials
GKE On-Prem doit connaître l'adresse IP ou le nom d'hôte, le nom d'utilisateur et le mot de passe de l'équilibreur de charge F5 BIG-IP. Définissez les valeurs sous admincluster.bigip
pour fournir ces informations. Placez une ancre (&bigip-credentials
) après credentials
afin de ne pas avoir à répéter ces informations dans la section usercluster
. Exemple :
admincluster: ... bigip: credentials: &bigip-credentials address: "203.0.113.2" username: "my-admin-f5-name" password: "rJDlm^%7aOzw"
admincluster.bigip.partition
Vous avez précédemment créé une partition BIG-IP pour votre cluster d'administrateur. Définissez admincluster.bigip.partition
sur le nom de votre partition. Exemple :
admincluster: ... bigip: partition: "my-admin-f5-partition"
admincluster.vips
Définissez la valeur de admincluster.vips.controlplanevip
sur l'adresse IP que vous avez choisi de configurer sur l'équilibreur de charge pour le serveur d'API Kubernetes du cluster d'administrateur. Définissez la valeur de ingressvip
sur l'adresse IP que vous avez choisi de configurer dans l'équilibreur de charge pour le service d'entrée du cluster d'administrateur. Exemple :
admincluster: ... vips: controlplanevip: 203.0.113.3 ingressvip: 203.0.113.4
admincluster.serviceiprange
et admincluster.podiprange
Le cluster d'administrateur doit disposer d'une plage d'adresses IP à utiliser pour les services et d'une plage d'adresses IP à utiliser pour les pods. Ces plages sont spécifiées par les champs admincluster.serviceiprange
et admincluster.podiprange
. Ces champs sont renseignés lorsque vous exécutez gkectl create-config
. Si vous le souhaitez, vous pouvez remplacer les valeurs renseignées par celles de votre choix.
Les plages de services et de pods ne doivent pas se chevaucher. En outre, les plages de services et de pods ne doivent pas chevaucher les adresses IP utilisées pour les nœuds d'un cluster.
Exemple :
admincluster: ... serviceiprange: 10.96.232.0/24 podiprange: 192.168.0.0/16
usercluster.ipblockfilepath
Étant donné que vous utilisez des adresses IP statiques, vous devez disposer d'un fichier de configuration d'hôte comme décrit dans la section Configurer des adresses IP statiques. Indiquez le chemin d'accès de votre fichier de configuration d'hôte dans le champ usercluster.ipblockfilepath
. Exemple :
usercluster: ipblockfilepath: "/my-config-directory/user-hostconfig.yaml"
usercluster.bigip.credentials
Placez une référence, *bigip-credentials
, après usercluster.bigip.credentials
pour utiliser les mêmes valeurs address
, username
et password
que celles que vous avez spécifiées dans admincluster.bigip.credentials
. Exemple :
usercluster: ... bigip: credentials: *bigip-credentials
usercluster.bigip.partition
Vous avez précédemment créé une partition BIG-IP pour votre cluster d'utilisateur. Définissez usercluster.bigip.partition
sur le nom de votre partition. Exemple :
usercluster: ... bigip: partition: "my-user-f5-partition" ...
usercluster.vips
Définissez la valeur de usercluster.vips.controlplanevip
sur l'adresse IP que vous avez choisi de configurer sur l'équilibreur de charge pour le serveur d'API Kubernetes du cluster d'utilisateur. Définissez la valeur de ingressvip
sur l'adresse IP que vous avez choisi de configurer dans l'équilibreur de charge pour le service d'entrée du cluster d'utilisateur. Exemple :
usercluster: ... vips: controlplanevip: 203.0.113.6 ingressvip: 203.0.113.7
usercluster.serviceiprange
et usercluster.podiprange
Le cluster d'utilisateur doit disposer d'une plage d'adresses IP à utiliser pour les services et d'une plage d'adresses IP à utiliser pour les pods. Ces plages sont spécifiées par les champs usercluster.serviceiprange
et usercluster.podiprange
. Ces champs sont renseignés lorsque vous exécutez gkectl create-config
. Si vous préférez, vous pouvez remplacer les valeurs renseignées par les valeurs de votre choix.
Les plages de services et de pods ne doivent pas se chevaucher. En outre, les plages de services et de pods ne doivent pas chevaucher les adresses IP utilisées pour les nœuds d'un cluster.
Exemple :
usercluster: ... serviceiprange: 10.96.233.0/24 podiprange: 172.16.0.0/12
Désactiver les règles anti-affinité VMware DRS
GKE On-Prem crée automatiquement des règles anti-affinités VMware DRS (Distributed Resource Scheduler) pour les nœuds de votre cluster d'utilisateur, avec pour effet de les répartir sur au moins trois hôtes physiques dans votre centre de données.
Cette fonctionnalité nécessite que votre environnement vSphere remplisse les conditions suivantes :
- La fonctionnalité VMware DRS est activée. VMware DRS nécessite l'édition de licence vSphere Enterprise Plus. Pour en savoir plus sur l'activation de DRS, consultez l'article Enabling VMware DRS in a cluster (Activer VMware DRS dans un cluster).
- Le compte utilisateur vSphere indiqué dans le champ
vcenter
dispose de l'autorisationHost.Inventory.EditCluster
. - Au moins trois hôtes physiques sont disponibles.
Rappelez-vous que si vous possédez une licence standard vSphere, vous ne pouvez pas activer VMware DRS.
Si vous n'avez pas activé DRS ou si vous n'avez pas au moins trois hôtes sur lesquels les VM vSphere peuvent être planifiées, ajoutez usercluster.antiaffinitygroups.enabled: false
à votre fichier de configuration.
Exemple :
usercluster: ... antiaffinitygroups: enabled: false
Pour en savoir plus, consultez les notes de version pour la version 1.1.0-gke.6.
lbmode
Définissez lbmode
sur "Integrated"
. Exemple :
lbmode: "Integrated"
stackdriver.clusterlocation
Définissez stackdriver.clusterlocation
sur une région Google Cloud dans laquelle vous souhaitez stocker les journaux. Nous vous recommandons de choisir une région à proximité de votre centre de données sur site.
stackdriver.enablevpc
Définissez stackdriver.enablevpc
sur true
si le réseau de votre cluster est contrôlé par un VPC. Ainsi, toute la télémétrie passe par les adresses IP restreintes de Google.
Champs supplémentaires dans le fichier de configuration
Le fichier de configuration GKE On-Prem comporte plusieurs champs en plus de ceux présentés dans cet article. Par exemple, vous pouvez utiliser le champ manuallbspec
afin de configurer GKE On-Prem pour qu'il s'exécute en mode d'équilibrage de charge manuel.
Pour obtenir une description complète des champs du fichier de configuration, consultez les pages Effectuer l'installation via DHCP et Effectuer l'installation à l'aide d'adresses IP statiques.
Valider le fichier de configuration
Après avoir modifié le fichier de configuration, exécutez gkectl check-config
pour vérifier que le fichier est valide et peut être utilisé pour l'installation :
gkectl check-config --config config.yaml
Si la commande renvoie des messages FAILURE
, 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.
Exécuter gkectl prepare
Exécutez gkectl prepare
pour initialiser votre environnement vSphere :
gkectl prepare --config config.yaml --skip-validation-all
Créer les clusters d'administrateur et d'utilisateur
Créez le cluster d'administrateur et le cluster d'utilisateur en exécutant la commande
gkectl create cluster
.gkectl create cluster --config config.yaml --skip-validation-all
La commande
gkectl create cluster
crée les fichierskubeconfig
nommés[CLUSTER_NAME]-kubeconfig
dans le répertoire actuel, où [CLUSTER_NAME] est le nom que vous avez défini pourcluster
. Exemple :MY-CLUSTER-kubeconfig
La documentation GKE On-Prem utilise les espaces réservés suivants pour faire référence à ces fichiers
kubeconfig
:- Cluster d'administrateur : [ADMIN_CLUSTER_KUBECONFIG]
- Cluster d'utilisateur : [USER_CLUSTER_KUBECONFIG]
Vérifiez que les clusters sont créés et en cours d'exécution.
Pour le cluster d'administrateur, exécutez la commande suivante :
kubectl get nodes --kubeconfig [ADMIN_CLUSTER_KUBECONFIG]
Le résultat affiche les nœuds du cluster d'administrateur.
Pour le cluster d'utilisateur, exécutez la commande suivante :
kubectl get nodes --kubeconfig [USER_CLUSTER_KUBECONFIG]
Le résultat affiche les nœuds du cluster d'utilisateur. Exemple :
NAME STATUS ROLES AGE VERSION xxxxxx-1234-ipam-15008527 Ready <none> 12m v1.14.7-gke.24 xxxxxx-1234-ipam-1500852a Ready <none> 12m v1.14.7-gke.24 xxxxxx-1234-ipam-15008536 Ready <none> 12m v1.14.7-gke.24
Conseil : Si vos clusters sont enregistrés, vous pouvez vous connecter à la console Google Cloud pour vérifier qu'ils ont bien été créés.
Passez à la section suivante pour savoir comment déployer une application sur votre cluster d'utilisateur.