Activer le mode d'équilibrage de charge manuel

Les clusters GKE On-Prem peuvent s'exécuter avec l'un des deux modes d'équilibrage de charge : "intégré" ou "manuel". En mode intégré, les clusters GKE On-Prem fonctionnent avec l'équilibreur de charge F5 BIG-IP. Avec le mode manuel, vous configurez manuellement un autre équilibreur de charge. Par exemple, vous pouvez configurer manuellement l'équilibreur de charge Citrix ou l'équilibreur de charge Seesaw.

Le mode d'équilibrage de charge manuel nécessite plus de configuration que le mode intégré. Cette page décrit la procédure à suivre pour le mode manuel.

Limites

L'utilisation de l'équilibrage de charge manuel présente les limites suivantes :

  • Vous ne pouvez pas utiliser le protocole DNS pour attribuer des adresses IP à des nœuds de cluster. Vous devez attribuer des adresses IP de nœuds statiques.

  • Vous ne pouvez pas exposer des services de type LoadBalancer à des clients extérieurs au cluster. Cependant, vous pouvez créer des services de type NodePort et configurer manuellement votre équilibreur de charge pour les utiliser en tant que backends. Vous pouvez également exposer vos services à l'aide d'objets Ingress.

  • Si vous ajoutez ou supprimez des nœuds de cluster, vous devez configurer manuellement votre équilibreur de charge en conséquence.

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

Google ne prend pas en charge les équilibreurs de charge configurés à l'aide du mode d'équilibrage de charge manuel. Si vous rencontrez des problèmes avec l'équilibreur de charge, contactez le fournisseur de l'équilibreur de charge.

Réserver vos adresses IP

Chaque cluster que vous créez possède trois VM ou plus, appelées nœuds. Réservez une adresse IP pour chaque nœud des clusters que vous souhaitez créer. Par exemple, si vous souhaitez créer un cluster d'administration avec quatre nœuds et un cluster utilisateur avec trois nœuds, réservez sept adresses IP pour les nœuds. Configurez vos routeurs de sorte que toutes les adresses IP des nœuds puissent être routées.

Vous devez également réserver les adresses IP virtuelles suivantes pour l'équilibrage de charge :

  • VIP pour le plan de contrôle administrateur (port exposé : TCP 443)
  • VIP pour le contrôleur d'entrée du cluster d'administration (ports exposés : TCP 80, TCP 443)
  • VIP pour le gestionnaire de module complémentaire (port exposé : TCP 8443)
  • VIP pour le plan de contrôle utilisateur (port exposé : TCP 443)
  • VIP pour le contrôleur d'entrée du cluster utilisateur (ports exposés : TCP 80, TCP 443)

Réserver des ports de nœud

GKE On-Prem utilise des objets de service Kubernetes de type NodePort pour acheminer le trafic vers les pods.

Un objet Service possède un champ ports, qui est un tableau d'objets ServicePort. Dans un Service de type NodePort, chaque objet ServicePort possède un champ protocol, un champ port, un champ nodePort et un champ targetPort. Par exemple, voici une partie d'un fichier manifeste d'un service dont le tableau ports contient deux objets ServicePort :

...
kind: Service
...
spec:
  ...
  type: NodePort
  ports:
  - protocol: TCP
    port: 80
    nodePort: 32676
    targetPort: 8080
  - protocol: TCP
    port: 443
    nodePort: 32677
    targetPort: 443
...

Supposons que le service précédent représente le contrôleur d'entrée de votre cluster utilisateur. Supposons également que vous ayez effectué les choix suivants :

  • 203.0.113.5 est l'adresse IP virtuelle de votre contrôleur d'entrée de cluster utilisateur.
  • Les adresses de nœuds de votre cluster utilisateur sont 192.168.0.10, 192.168.0.11 et 192.168.0.12.

Une fois que vous avez configuré l'équilibreur de charge, le trafic est acheminé de la façon suivante :

  • Un client envoie une requête à l'adresse 203.0.113.5 sur le port TCP 80. L'équilibreur de charge choisit un nœud du cluster d'utilisateur. Supposons par exemple que l'adresse du nœud choisi soit 192.168.0.11. L'équilibreur de charge transfère la requête à l'adresse 192.168.0.11 sur le port TCP 32676. Les règles iptables du nœud transfèrent la requête à un pod approprié sur le port TCP 8080.

  • Un autre client envoie une requête à l'adresse 203.0.113.5 sur le port TCP 443. L'équilibreur de charge choisit un nœud du cluster d'utilisateur. Supposons par exemple que l'adresse du nœud choisi soit 192.168.0.10. L'équilibreur de charge transfère la requête à l'adresse 192.168.0.10 sur le port TCP 32677. Les règles iptables du nœud transmettent la requête à un pod approprié sur le port TCP 443.

Vous n'avez pas besoin de créer les objets Service pour vos VIP. GKE On-Prem s'en charge pour vous. Toutefois, pour chaque paire (port VIP, port TCP), vous devez sélectionner et spécifier les éléments suivants :

  • Un ensemble d'adresses IP de nœuds
  • Une valeur nodePort

Vous devez réserver sept valeurs nodePort :

  • nodePort pour le plan de contrôle du cluster d'administration, port TCP 443
  • nodePort pour le contrôleur d'entrée du cluster d'administration, port TCP 80
  • nodePort pour le contrôleur d'entrée du cluster d'administration, port TCP 443
  • nodePort pour le gestionnaire de module complémentaire, port TCP 8443
  • nodePort pour le plan de contrôle utilisateur, port TCP 80
  • nodePort pour pour le contrôleur d'entrée du cluster utilisateur, port TCP 80
  • nodePort pour le contrôleur d'entrée du cluster utilisateur, port TCP 443

Modifier le fichier de configuration GKE On-Prem

Lorsque vous installez GKE On-Prem, vous générez un fichier de configuration. Vous devez modifier les sections suivantes de votre fichier de configuration :

  • Définissez lbmode sur Manual.

  • Définissez admincluster:ipblockfilepath sur le chemin d'accès au fichier YAML contenant les adresses IP statiques du cluster d'administrateur. Cette opération est décrite dans la section Configurer des adresses IP statiques. Le protocole DHCP n'est pas disponible en mode Manual.

  • Définissez usercluster: ipblockfilepath sur le chemin d'accès au fichier YAML contenant les adresses IP statiques du cluster d'utilisateur.

  • Mettez à jour le champ admincluster:manuallbspec avec les valeurs nodePort que vous avez choisies pour le cluster d'administrateur.

  • Mettez à jour la section usercluster:manuallbspec avec les valeurs nodePort que vous avez choisies pour le cluster d'utilisateur.

Voici à titre d'exemple un extrait de fichier de configuration mis à jour :

lbmode: Manual

admincluster:
  ipblockfilepath: "ipblock1.yaml"
  manuallbspec:
    ingresshttpnodeport: 32527
    ingresshttpsnodeport: 30139
    controlplanenodeport: 30968
    addonsnodeport: 31405

usercluster:
  ipblockfilepath: "env/default/ipblock2.yaml"
  manuallbspec:
    ingresshttpnodeport: 30243
    ingresshttpsnodeport: 30879
    controlplanenodeport: 30562

Configurer l'équilibreur de charge

Maintenant que vous avez mis à jour le fichier de configuration, connectez-vous à la console de gestion de votre équilibreur de charge et configurez vos adresses IP virtuelles.

Commencez par vérifier que votre cluster d'administration et votre cluster utilisateur disposent de pools d'adresses IP différents.

Comme indiqué précédemment, vous devez configurer cinq adresses IP virtuelles et sept ports. Vous créez donc sept services virtuels sur l'équilibreur de charge :

  • Plan de contrôle du cluster d'administrateur, port TCP 443
  • Contrôleur d'Ingress du cluster d'utilisateur, port TCP 80
  • Contrôleur d'Ingress du cluster d'utilisateur, port TCP 443
  • Gestionnaire de modules complémentaires, port TCP 8443
  • Plan de contrôle du cluster d'utilisateur, port TCP 80
  • Contrôleur d'Ingress du cluster d'utilisateur, port TCP 80
  • Contrôleur d'entrée du cluster utilisateur, port TCP 443

Étapes suivantes

Dépannage

Pour en savoir plus, consultez Dépannage.