Activer le mode d'équilibrage de charge manuel

Les clusters GKE sur VMware peuvent s'exécuter avec l'un des trois modes d'équilibrage de charge: intégré, groupé ou manuel.

  • En mode intégré, GKE sur VMware utilise l'équilibreur de charge F5 BIG-IP.

  • En mode groupé, GKE sur VMware fournit et gère l'équilibreur de charge. Vous n'avez pas besoin d'obtenir une licence pour un équilibreur de charge et la configuration à effectuer est minime.

  • En mode manuel, GKE sur VMware utilise l'équilibreur de charge de votre choix. Le mode d'équilibrage de charge manuel nécessite une configuration plus importante que le mode intégré. L'équilibreur de charge Citrix est un exemple d'équilibreur de charge que vous pouvez utiliser avec le mode d'équilibrage de charge manuel.

L'équilibrage de charge manuel est compatible avec les types de clusters suivants:

  • Clusters d'utilisateur pour lesquels le plan de contrôle V2 est activé. Avec le plan de contrôle V2, les nœuds du plan de contrôle d'un cluster d'utilisateur se trouvent dans le cluster d'utilisateur lui-même.

  • Clusters d'utilisateur qui utilisent kubeception. Le terme kubeception fait référence au cas où le plan de contrôle d'un cluster d'utilisateur s'exécute sur un ou plusieurs nœuds du cluster d'administrateur. Si le plan de contrôle V2 n'est pas activé, un cluster d'utilisateur utilise kubeception.

Cette page décrit la procédure à suivre si vous choisissez d'utiliser le mode d'équilibrage de charge manuel.

Dans cette rubrique, vous allez réserver des adresses IP pour les nœuds du plan de contrôle et les nœuds de calcul en vue d'une utilisation ultérieure. Vous mettez également de côté des adresses IP pour les adresses IP virtuelles (VIP) et décidez des valeurs de nodePort. L'idée est de choisir les adresses IP et les valeurs nodePort que vous souhaitez utiliser, puis de les enregistrer dans une feuille de calcul ou un autre outil. Lorsque vous êtes prêt à créer vos clusters, vous avez besoin des adresses IP et des valeurs nodePort pour remplir les fichiers de configuration de votre cluster d'administrateur et de votre cluster d'utilisateur, ainsi que les fichiers de blocs d'adresses IP pour vos clusters.

Vous aurez également besoin des adresses IP et des valeurs nodePort lorsque vous configurerez manuellement votre équilibreur de charge pour les clusters d'utilisateur. Bien que vous n'ayez pas besoin de configurer l'équilibrage de charge pour les clusters d'administrateur haute disponibilité 1.28 et versions ultérieures, cet article décrit la configuration des adresses IP pour les nœuds du plan de contrôle et l'adresse IP virtuelle du plan de contrôle pour les clusters d'administrateur haute disponibilité.

Réserver des adresses IP pour les nœuds

En mode d'équilibrage de charge manuel, vous ne pouvez pas utiliser DHCP. Vous devez spécifier des adresses IP statiques pour les nœuds de votre cluster. Vous devez réserver suffisamment d'adresses à la fois pour les nœuds du cluster d'administrateur et pour les nœuds de tous les clusters d'utilisateur que vous souhaitez créer. Pour en savoir plus sur le nombre d'adresses IP de nœuds à réserver, consultez les sections Planifier vos adresses IP (Controlplane V2) et Planifier vos adresses IP (kubeception).

Configurer les adresses IP

L'endroit où vous configurez les adresses IP statiques que vous avez réservées dépend du type de cluster et de l'activation ou non du plan de contrôle V2 sur vos clusters d'utilisateur.

Cluster d'administrateur haute disponibilité

Le tableau suivant décrit à quoi servent les adresses IP et où vous les configurez pour les clusters d'administrateur à haute disponibilité.

Adresses IP statiques Configuration
Nœuds du plan de contrôle Fichier de configuration du cluster d'administrateur dans la section network.controlPlaneIPBlock.ips

Cluster d'utilisateur CP V2

Le tableau suivant décrit à quoi servent les adresses IP et où vous les configurez pour les clusters d'utilisateur avec le plan de contrôle V2 activé.

Adresses IP statiques Configuration
nœuds du plan de contrôle Fichier de configuration du cluster d'utilisateur dans la section network.controlPlaneIPBlock.ips
Nœuds de calcul Fichier de bloc d'adresses IP du cluster d'utilisateur et ajoutez le chemin d'accès dans le champ network.ipMode.ipBlockFilePath du fichier de configuration du cluster d'utilisateur

Cluster d'utilisateur Kubeception

Le tableau suivant décrit à quoi servent les adresses IP et où vous les configurez pour les clusters d'utilisateur qui utilisent kubeception.

Adresses IP statiques Configuration
nœuds du plan de contrôle Fichier de bloc d'adresses IP du cluster d'administrateur et ajoutez le chemin d'accès dans le champ network.ipMode.ipBlockFilePath du fichier de configuration du cluster d'administrateur
Nœuds de calcul Fichier de bloc d'adresses IP du cluster d'utilisateur et ajoutez le chemin d'accès dans le champ network.ipMode.ipBlockFilePath du fichier de configuration du cluster d'utilisateur

Réserver des adresses IP pour les adresses IP virtuelles

Que vous utilisiez le mode d'équilibrage de charge intégré, groupé ou manuel, vous devez mettre de côté plusieurs adresses IP que vous prévoyez d'utiliser pour les adresses IP virtuelles pour l'équilibrage de charge. Ces adresses IP virtuelles permettent aux clients externes d'accéder aux serveurs d'API Kubernetes et à votre service d'entrée sur les clusters d'utilisateur.

Configurer des adresses IP virtuelles

L'endroit où vous configurez les adresses IP virtuelles dépend du type de cluster.

Cluster d'administrateur haute disponibilité

Le tableau suivant décrit à quoi sert l'adresse IP virtuelle et où la configurer pour les clusters d'administrateur à haute disponibilité.

VIP Configuration
Adresse IP virtuelle pour le serveur d'API Kubernetes du cluster d'administrateur Fichier de configuration du cluster d'administrateur dans le champ loadBalancer.vips.controlPlaneVIP

Cluster d'utilisateur CP V2

Le tableau suivant décrit le rôle des adresses IP virtuelles et l'endroit où vous les configurez pour les clusters d'utilisateur avec le plan de contrôle V2 activé.

VIP Configuration
Adresse IP virtuelle pour le serveur d'API Kubernetes du cluster d'utilisateur Fichier de configuration du cluster d'utilisateur dans le champ loadBalancer.vips.controlPlaneVIP
Adresse IP virtuelle pour le service d'entrée dans le cluster d'utilisateur Fichier de configuration du cluster d'utilisateur dans le champ loadBalancer.vips.ingressVIP

Cluster d'utilisateur Kubeception

Le tableau suivant décrit à quoi servent les adresses IP virtuelles et où vous les configurez pour les clusters d'utilisateur qui utilisent kubeception.

VIP Configuration
Adresse IP virtuelle pour le serveur d'API Kubernetes du cluster d'utilisateur Fichier de configuration du cluster d'utilisateur dans le champ loadBalancer.vips.controlPlaneVIP
Adresse IP virtuelle pour le service d'entrée dans le cluster d'utilisateur Fichier de configuration du cluster d'utilisateur dans le champ loadBalancer.vips.ingressVIP

Réserver des valeurs nodePort

Dans GKE sur VMware, le serveur d'API Kubernetes et le service d'entrée sont exposés par les services Kubernetes. En mode d'équilibrage de charge manuel, vous devez choisir les valeurs de port nodePort pour ces services. Choisissez des valeurs comprises entre 30000 et 32767.

Configurer les valeurs nodePort

L'emplacement de configuration des valeurs nodePort varie selon que ControlPlane V2 est activé sur le cluster d'utilisateur.

Cluster d'administrateur haute disponibilité

Vous n'avez pas besoin de configurer nodePorts pour les clusters d'administrateur à haute disponibilité.

Cluster d'utilisateur CP V2

Le tableau suivant décrit à quoi servent les nodePorts et où vous les configurez pour les clusters d'utilisateur avec le plan de contrôle V2 activé.

nodePorts Configuration
HTTP nodePort pour le service d'entrée dans le cluster d'utilisateur Le fichier de configuration du cluster d'utilisateur dans loadBalancer.manualLB.ingressHTTPNodePort
nodePort HTTPS pour le service d'entrée dans le cluster d'utilisateur Le fichier de configuration du cluster d'utilisateur dans loadBalancer.manualLB.ingressHTTPSNodePort

Vous n'avez pas besoin de configurer un nodePort pour l'adresse IP virtuelle du plan de contrôle, car GKE sur VMware gère l'équilibrage de charge sur les nœuds du plan de contrôle pour les clusters d'utilisateur sur lesquels le plan de contrôle V2 est activé.

Cluster d'utilisateur Kubeception

Le tableau suivant décrit à quoi servent les valeurs nodePort et où vous les configurez pour les clusters d'utilisateur qui utilisent kubeception.

nodePort Configuration
nodePort pour le serveur d'API Kubernetes du cluster d'utilisateur Fichier de configuration du cluster d'utilisateur dans le champ loadBalancer.manualLB.controlPlaneNodePort
nodePort pour le serveur Konnectivity du cluster d'utilisateur (le serveur Konnectivity utilise l'adresse IP virtuelle du plan de contrôle) Fichier de configuration du cluster d'utilisateur dans le champ loadBalancer.manualLB.konnectivityServerNodePort
HTTP nodePort pour le service d'entrée dans le cluster d'utilisateur Le fichier de configuration du cluster d'utilisateur dans loadBalancer.manualLB.ingressHTTPNodePort
nodePort HTTPS pour le service d'entrée dans le cluster d'utilisateur Le fichier de configuration du cluster d'utilisateur dans loadBalancer.manualLB.ingressHTTPSNodePort

Exemple de fichier de configuration de cluster

L'exemple suivant montre une partie d'un fichier de configuration de cluster d'administrateur et d'utilisateur:

Cluster d'administrateur haute disponibilité

network:
  controlPlaneIPBlock:
    netmask: "255.255.248.0"
    gateway: "21.0.143.254"
    ips:
    - ip: "21.0.140.226"
      hostname: "admin-cp-vm-1"
    - ip: "21.0.141.48"
      hostname: "admin-cp-vm-2"
    - ip: "21.0.141.65"
      hostname: "admin-cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
  kind: ManualLB

Cluster d'utilisateur CP V2

network:
  ipMode:
    type: static
    ipBlockFilePath: "ipblock1.yaml"
  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: ManualLB
  manualLB:
    ingressHTTPNodePort: 30243
    ingressHTTPSNodePort: 30879

Cluster d'utilisateur Kubeception

network:
  ipMode:
    type: static
    ipBlockFilePath: "ipblock1.yaml"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
    ingressVIP: "172.16.21.30"
  kind: ManualLB
  manualLB:
    ingressHTTPNodePort: 30243
    ingressHTTPSNodePort: 30879
    konnectivityServerNodePort: 30563
    controlPlaneNodePort: 30562

Configurer l'équilibreur de charge

Utilisez la console de gestion ou les outils de votre équilibreur de charge pour configurer les mappages suivants dans votre équilibreur de charge. La procédure à suivre dépend de votre équilibreur de charge.

Cluster d'administrateur haute disponibilité

GKE sur VMware gère automatiquement l'équilibrage de charge du trafic du plan de contrôle pour les clusters d'administrateur haute disponibilité. Bien qu'il ne soit pas nécessaire de configurer un mappage dans l'équilibreur de charge, vous devez spécifier une adresse IP dans le champ loadBalancer.vips.controlPlaneVIP.

Cluster d'utilisateur CP V2

Trafic du plan de contrôle

GKE sur VMware gère automatiquement l'équilibrage de charge du trafic du plan de contrôle pour les clusters d'utilisateur lorsque le plan de contrôle V2 est activé. Bien qu'il ne soit pas nécessaire de configurer un mappage dans l'équilibreur de charge, vous devez spécifier une adresse IP dans le champ loadBalancer.vips.controlPlaneVIP.

Trafic du plan de données

L'exemple suivant illustre le mappage avec les adresses IP et les valeurs nodePort pour le trafic du plan de données:

  • (ingressVIP:80) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort)
  • (ingressVIP:443) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort)

Ajoutez ces mappages pour tous les nœuds du cluster d'utilisateur, qu'il s'agisse des nœuds du plan de contrôle ou des nœuds de calcul. Comme vous avez configuré les NodePorts sur le cluster, Kubernetes les ouvre sur tous les nœuds du cluster. Cela permet à n'importe quel nœud du cluster de gérer le trafic du plan de données.

Une fois les mappages configurés, l'équilibreur de charge écoute le trafic sur l'adresse IP que vous avez configurée pour l'adresse IP virtuelle d'entrée du cluster d'utilisateur sur les ports HTTP et HTTPS standards. L'équilibreur de charge achemine les requêtes vers n'importe quel nœud du cluster. Une fois qu'une requête est acheminée vers l'un des nœuds du cluster, la mise en réseau Kubernetes interne prend le relais et achemine la requête vers le pod de destination.

Cluster d'utilisateur Kubeception

Trafic du plan de contrôle

Vous trouverez ci-dessous le mappage sur les adresses IP et les valeurs nodePort pour le trafic du plan de contrôle:

  • (controlPlaneVIP:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort)
  • (controlPlaneVIP:8132) -> (NODE_IP_ADDRESSES:konnectivityServerNodePort)

Ajoutez ce mappage pour tous les nœuds du cluster admin, à la fois le cluster d'administrateur et les nœuds du plan de contrôle du cluster d'utilisateur.

Trafic du plan de données

L'exemple suivant illustre le mappage avec les adresses IP et les valeurs nodePort pour le trafic du plan de données:

  • (ingressVIP:80) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort)
  • (ingressVIP:443) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort)

Ajoutez ces mappages pour tous les nœuds du cluster d'utilisateur. Avec les clusters d'utilisateur qui utilisent kubeception, tous les nœuds du cluster sont des nœuds de calcul.

Outre les exigences précédentes, nous vous recommandons de configurer l'équilibreur de charge pour réinitialiser les connexions client lorsqu'il détecte une défaillance du nœud de backend. Sans cette configuration, les clients du serveur d'API Kubernetes peuvent arrêter de répondre pendant plusieurs minutes lorsqu'une instance de serveur tombe en panne, ce qui peut provoquer une instabilité au niveau du plan de contrôle Kubernetes.

  • Avec F5 BIG-IP, ce paramètre s'appelle Action On Service Down sur la page de configuration du pool de backend.
  • Avec HAProxy, ce paramètre est appelé "on-marked-down shutdown-sessions" dans la configuration du serveur backend.
  • Si vous utilisez un autre équilibreur de charge, consultez la documentation pour trouver le paramètre équivalent.

Obtenir de l'aide concernant l'équilibrage de charge manuel

Google ne fournit pas d'assistance pour les équilibreurs de charge configurés en mode d'équilibrage de charge manuel. Veuillez contacter le fournisseur de l'équilibreur de charge si vous rencontrez des problèmes.

Étapes suivantes