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 s'exécutent avec l'équilibreur de charge BIG-IP de F5. En mode manuel, vous pouvez utiliser l'équilibreur de charge BIG-IP de F5 ou tout autre équilibreur de charge de votre choix. Le mode d'équilibrage de charge manuel nécessite davantage de configuration que le mode intégré. Cette page décrit la procédure à suivre si vous optez pour le mode d'équilibrage de charge manuel.

L'équilibreur de charge Citrix et l'équilibreur de charge Seesaw sont des exemples d'équilibreurs de charge que vous pouvez utiliser en mode d'équilibrage de charge manuel.

Dans cette rubrique, vous réservez des adresses IP et des valeurs de port nodePort pour une utilisation ultérieure. L'idée est de choisir les adresses IP et les valeurs nodePort que vous souhaitez utiliser pour l'équilibrage de charge et pour vos nœuds de cluster. Mais vous n'utilisez pas les adresses et les valeurs nodePort à ce stade. Vous vous servirez de ces adresses et de ces valeurs nodePort ultérieurement, lorsque vous serez prêt à installer GKE On-Prem, pour renseigner le fichier de configuration de votre cluster. Vous aurez également besoin de ces adresses et de ces valeurs nodePort lorsque vous configurerez manuellement l'équilibreur de charge.

Réserver des adresses IP virtuelles

Que vous utilisiez le mode d'équilibrage de charge intégré ou manuel, vous devez réserver plusieurs adresses IP virtuelles qui seront utilisées pour l'équilibrage de charge. Ces adresses IP virtuelles permettent aux clients externes d'accéder à vos serveurs d'API Kubernetes, à vos services Ingress et à vos services complémentaires. Pour obtenir des instructions détaillées sur la réservation d'adresses IP virtuelles, consultez la section Réserver des adresses IP virtuelles.

Réserver des adresses IP de nœud

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œud à réserver, consultez la page Configurer des adresses IP statiques.

Réserver des valeurs nodePort

Dans un cluster GKE On-Prem, le serveur d'API Kubernetes, le service Ingress et le service complémentaire sont mis en œuvre en tant que services Kubernetes de type NodePort. 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. Après avoir choisi les valeurs nodePort, mettez-les à part afin de pouvoir les réutiliser ultérieurement lorsque vous modifierez le fichier de configuration de votre cluster.

Choisissez et réservez des valeurs nodePort pour les usages suivants :

  • Pour chaque adresse IP virtuelle que vous avez réservée pour un serveur d'API Kubernetes, réservez une valeur nodePort.

  • Pour chaque adresse IP virtuelle que vous avez réservée pour un service Ingress de cluster, réservez deux valeurs nodePort : l'une pour le trafic HTTP et l'autre pour le trafic HTTPS. Ceci ne s'applique qu'aux clusters d'utilisateur.

  • Pour chaque adresse IP virtuelle que vous avez réservée pour un service complémentaire de cluster, réservez une valeur nodePort. Cela ne s'applique qu'au cluster d'administrateur.

Supposons, par exemple, que vous souhaitiez disposer de deux clusters d'utilisateur et employer des modules complémentaires dans tous vos clusters. Vous devez dans ce cas choisir et réserver des valeurs nodePort pour les usages suivants :

  • Une valeur nodePort pour le serveur d'API Kubernetes du cluster d'administrateur

  • Une valeur nodePort pour le serveur d'API Kubernetes de chacun des deux clusters d'utilisateur

  • Une valeur nodePort pour le trafic HTTP vers le service Ingress de chacun des deux clusters d'utilisateur

  • Une valeur nodePort pour le trafic HTTPS vers le service Ingress de chacun des deux clusters d'utilisateur

  • Une valeur nodePort pour le service complémentaire du cluster d'administrateur

  • Une valeur nodePort pour le serveur complémentaire de chacun des deux clusters d'utilisateur

Au total, vous devez donc réserver 11 valeurs nodePort.

Modifier le fichier de configuration GKE On-Prem

Un fichier de configuration est généré lors de l'installation de GKE On-Prem. Pour mettre en place le mode d'équilibrage de charge manuel, vous devez apporter les modifications suivantes à ce fichier :

  • 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:
    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 l'équilibreur de charge et configurez les adresses IP virtuelles.

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
  • 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'Ingress du cluster d'utilisateur, port TCP 443

Exemple d'équilibrage de charge

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. Voici à titre d'exemple un extrait de fichier manifeste pour un objet 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 ci-dessus représente le service Ingress pour l'un de vos clusters d'utilisateur. Supposons également que vous ayez effectué les choix suivants pour ce cluster d'utilisateur :

  • L'adresse IP virtuelle du service Ingress est 203.0.113.5.

  • Les adresses des nœuds 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 transfèrent la requête à un pod approprié sur le port TCP 443.

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

Dépannage

Pour en savoir plus, consultez Dépannage.