Nous vous recommandons de configurer l'un des modes d'équilibrage de charge suivants :
En mode groupé, Google Distributed Cloud fournit et gère l'équilibreur de charge. Vous n'avez pas besoin d'obtenir de licence pour un équilibreur de charge, et la configuration à effectuer est minimale.
En mode manuel, Google Distributed Cloud utilise un équilibreur de charge de votre choix, tel que F5 BIG-IP ou Citrix. Le mode d'équilibrage de charge manuel nécessite une configuration plus importante que le mode groupé.
L'équilibrage de charge manuel est compatible avec les types de clusters suivants :
Clusters d'utilisateur pour lesquels Controlplane V2 est activé. Avec Controlplane V2, les nœuds du plan de contrôle pour le 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 Controlplane 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 réservez des adresses IP pour les nœuds du plan de contrôle et les nœuds de calcul pour une utilisation ultérieure. Vous réservez également des adresses IP pour les adresses IP virtuelles (VIP) et définissez les valeurs 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 serez prêt à créer vos clusters, vous aurez besoin des adresses IP et des valeurs nodePort
pour renseigner les fichiers de configuration de votre cluster d'administrateur et de votre cluster d'utilisateur, ainsi que les fichiers de blocs d'adresses IP de vos clusters.
Vous aurez également besoin de ces adresses IP et de ces valeurs nodePort
lorsque vous configurerez manuellement l'équilibreur de charge pour les clusters d'utilisateur.
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œud à réserver, consultez Planifier les adresses IP (Controlplane V2) et Planifier les adresses IP (kubeception).
Configurer les adresses IP
L'emplacement où vous configurez les adresses IP statiques que vous avez réservées dépend du type de cluster et de l'activation de Controlplane V2 sur vos clusters d'utilisateur.
Cluster d'administrateur à haute disponibilité
Le tableau suivant décrit l'utilité des adresses IP et où les configurer pour les clusters d'administrateur HA.
IP statiques | Configuration |
---|---|
Nœuds du plan de contrôle | Fichier de configuration du cluster d'administrateur dans la section network.controlPlaneIPBlock.ips |
Version 1.16 et versions antérieures : nœuds complémentaires | 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. |
Dans la version 1.28 et les versions ultérieures, les nouveaux clusters d'administrateur HA ne disposent pas de nœuds supplémentaires. Vous n'avez donc pas besoin de réserver d'adresses IP pour les nœuds supplémentaires, comme dans les versions précédentes.
Cluster d'administrateur standard
Le tableau suivant décrit l'utilité des adresses IP et l'endroit où les configurer pour les clusters d'administrateur standard.
IP statiques | Configuration |
---|---|
Nœud 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 complémentaires | Fichier de bloc d'adresses IP du cluster d'administrateur |
Dans la version 1.28 et les suivantes, tous les nouveaux clusters d'administrateur doivent être des clusters à haute disponibilité (HA) avec trois nœuds de plan de contrôle.
Cluster d'utilisateur CP V2
Le tableau suivant décrit l'utilité des adresses IP et où les configurer pour les clusters d'utilisateur avec Controlplane V2 activé.
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 l'utilité des adresses IP et où les configurer pour les clusters d'utilisateur qui utilisent kubeception.
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 VIP
Que vous utilisiez le mode d'équilibrage de charge intégré, groupé ou manuel, vous devez réserver plusieurs adresses IP que vous comptez utiliser 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 VIP
L'emplacement où vous configurez les VIP dépend du type de cluster.
Cluster d'administrateur à haute disponibilité
Le tableau suivant décrit l'utilité de l'adresse VIP et où la configurer pour les clusters d'administrateur HA.
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 |
1.15 et versions antérieures : VIP pour les modules complémentaires | Fichier de configuration du cluster d'administrateur dans le champ loadBalancer.vips.addonsVIP |
Notez les différences suivantes entre les versions :
Dans la version 1.16 et les versions ultérieures, vous n'avez pas besoin de configurer un VIP de modules complémentaires pour les clusters d'administrateur à haute disponibilité.
Dans la version 1.28 et les versions ultérieures, les nouveaux clusters d'administrateur HA ne comportent pas de nœuds complémentaires.
Cluster d'administrateur standard
Le tableau suivant décrit l'utilité de l'adresse VIP et où la configurer pour les clusters d'administrateur standard.
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 |
1.15 et versions antérieures : VIP pour les modules complémentaires | Fichier de configuration du cluster d'administrateur dans le champ loadBalancer.vips.addonsVIP |
Notez les différences suivantes entre les versions :
Dans la version 1.16 et les versions ultérieures, vous n'avez pas besoin de configurer une adresse VIP pour les modules complémentaires pour les clusters d'administrateur standard.
Cluster d'utilisateur CP V2
Le tableau suivant décrit l'utilité des adresses VIP et où les configurer pour les clusters d'utilisateur avec Controlplane V2 activé.
Adresses IP virtuelles | 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 VIP 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 l'utilité des adresses VIP et où les configurer pour les clusters d'utilisateur qui utilisent kubeception.
Adresses IP virtuelles | 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 VIP 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 Google Distributed Cloud, le serveur d'API Kubernetes et le service d'entrée sont exposés par 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 où vous configurez les valeurs nodePort
dépend de l'activation ou non de ControlPlane V2 sur le cluster d'utilisateur.
Cluster d'administrateur à haute disponibilité
Le tableau suivant décrit l'utilité de nodePort
et où le configurer pour les clusters d'administrateur HA.
nodePort |
Configuration |
---|---|
Version 1.15 et antérieures : nodePort pour les nœuds complémentaires |
Fichier de configuration du cluster d'administrateur dans le champ loadBalancer.manualLB.addonsNodePort |
Dans la version 1.16 et les versions ultérieures, vous n'avez pas besoin de configurer un nodePort
pour les nœuds de module complémentaire pour les clusters d'administrateur HA.
Cluster d'administrateur standard
Le tableau suivant décrit l'utilité des valeurs nodePort
et où les configurer pour les clusters d'administrateur standard.
nodePort |
Configuration |
---|---|
1.16 et versions antérieures : nodePort pour le serveur d'API Kubernetes du cluster d'administrateur |
Version 1.15 et antérieures : fichier de configuration du cluster d'administrateur dans le champ loadBalancer.vips.controlPlaneNodePort |
1.15 et versions antérieures : nodePort pour les nœuds de module |
Fichier de configuration du cluster d'administrateur dans le champ loadBalancer.manualLB.addonsNodePort |
Dans la version 1.16 et les versions ultérieures, vous n'avez pas besoin de configurer un nodePort
pour les nœuds supplémentaires des clusters d'administrateur standard.
Cluster d'utilisateur CP V2
Le tableau suivant décrit l'utilité des nodePorts
et où les configurer pour les clusters d'utilisateur avec Controlplane V2 activé.
nodePorts |
Configuration |
---|---|
nodePort HTTP pour le service d'entrée dans le cluster d'utilisateur |
Fichier de configuration du cluster d'utilisateur dans loadBalancer.manualLB.ingressHTTPNodePort |
nodePort HTTPS pour le service d'entrée dans le cluster d'utilisateur |
Fichier de configuration du cluster d'utilisateur dans loadBalancer.manualLB.ingressHTTPSNodePort |
Vous n'avez pas besoin de configurer un nodePort
pour l'adresse VIP du plan de contrôle, car Google Distributed Cloud gère l'équilibrage de charge sur les nœuds du plan de contrôle pour les clusters d'utilisateur avec Controlplane V2 activé.
Cluster d'utilisateur Kubeception
Le tableau suivant décrit l'utilité des valeurs nodePort
et indique où les configurer 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 VIP du plan de contrôle) |
Fichier de configuration du cluster d'utilisateur dans le champ loadBalancer.manualLB.konnectivityServerNodePort |
nodePort HTTP pour le service d'entrée dans le cluster d'utilisateur |
Fichier de configuration du cluster d'utilisateur dans loadBalancer.manualLB.ingressHTTPNodePort |
nodePort HTTPS pour le service d'entrée dans le cluster d'utilisateur |
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é
Version 1.16 ou ultérieure :
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
Les versions 1.15 et antérieures nécessitent un VIP et
nodeport
pour les nœuds de module complémentaire.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" addonsVIP: "203.0.113.4" kind: ManualLB manualLB: addonsNodePort: 31405
Cluster d'administrateur standard
Version 1.16 ou ultérieure :
network: ipMode: type: static ipBlockFilePath: "ipblock-admin.yaml" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" kind: ManualLB manualLB: controlPlaneNodePort: 30562
La version 1.15 et les versions antérieures nécessitent un VIP et
nodeport
pour les nœuds de module complémentaire.network: ipMode: type: static ipBlockFilePath: "ipblock-admin.yaml" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" addonsVIP: "172.16.21.41" kind: ManualLB manualLB: controlPlaneNodePort: 30562 addonsNodePort: 30563
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é
Trafic vers les nœuds du plan de contrôle
Google Distributed Cloud gère automatiquement l'équilibrage de charge du trafic du plan de contrôle pour les clusters d'administrateur à haute disponibilité. Bien que vous n'ayez pas besoin de configurer un mappage dans l'équilibreur de charge, vous devez spécifier une adresse IP dans le champ loadBalancer.vips.controlPlaneVIP
.
Trafic vers les services dans les nœuds de module complémentaire
Version 1.15 et antérieures : le code suivant montre le mappage des adresses IP et des valeurs nodePort
pour le trafic vers les services dans les nœuds de modules complémentaires :
- (
addonsVIP
:8443) -> (NODE_IP_ADDRESSES:addonsNodePort
)
Ajoutez ce mappage pour tous les nœuds du cluster d'administrateur, à la fois les nœuds du plan de contrôle et les nœuds complémentaires.
Dans la version 1.16 et les versions ultérieures, vous n'avez pas besoin de configurer ce mappage pour les nœuds de module complémentaire des clusters d'administrateur HA.
Cluster d'administrateur standard
Trafic du plan de contrôle
L'exemple suivant montre le mappage vers l'adresse IP et la valeur nodePort
pour le nœud du plan de contrôle :
- (
controlPlaneVIP
:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort
)
Ajoutez ce mappage pour tous les nœuds du cluster d'administrateur, y compris le nœud du plan de contrôle et les nœuds complémentaires.
Trafic vers les services dans les nœuds de module complémentaire
Version 1.15 et antérieures : le code suivant montre le mappage des adresses IP et des valeurs nodePort
pour les services exécutés dans des nœuds de modules complémentaires :
- (
addonsVIP
:8443) -> (NODE_IP_ADDRESSES:addonsNodePort
)
Ajoutez ce mappage pour tous les nœuds du cluster d'administrateur, y compris le nœud du plan de contrôle et les nœuds complémentaires.
Dans la version 1.16 et les versions ultérieures, vous n'avez pas besoin de configurer ce mappage pour les nœuds de module complémentaire pour les clusters d'administrateur standard.
Cluster d'utilisateur CP V2
Trafic du plan de contrôle
Google Distributed Cloud gère automatiquement l'équilibrage de charge du trafic du plan de contrôle pour les clusters d'utilisateur avec Controlplane V2 activé. Bien que vous n'ayez pas besoin de configurer de 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
Voici le mappage des adresses IP et des 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, à la fois les nœuds du plan de contrôle et les nœuds de calcul. Comme vous avez configuré des NodePorts sur le cluster, Kubernetes ouvre les NodePorts 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 que vous avez configuré les mappages, l'équilibreur de charge écoute le trafic sur l'adresse IP que vous avez configurée pour l'entrée VIP 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
Voici le mappage des adresses IP et des 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 d'admin, y compris les nœuds du plan de contrôle du cluster d'administrateur et du cluster d'utilisateur.
Trafic du plan de données
Voici le mappage des adresses IP et des 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 utilisant kubeception, tous les nœuds du cluster sont des nœuds de calcul.
Réinitialiser les connexions à des nœuds défaillants (recommandé)
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.