Équilibrage de charge groupé avec Seesaw

Anthos clusters on VMware (GKE On-Prem) peut s'exécuter dans l'un des trois modes d'équilibrage de charge : intégré, manuel ou groupé. Cet article explique comment configurer Anthos clusters on VMware pour qu'il s'exécute en mode d'équilibrage de charge groupé.

Les instructions sont ici complètes. Pour une présentation plus courte de l'utilisation de l'équilibreur de charge Seesaw, consultez la page Équilibreur de charge Seesaw (guide de démarrage rapide).

En mode d'équilibrage de charge groupé, Anthos clusters on 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 minimale.

L'équilibreur de charge groupé fourni par Anthos clusters on VMware est l'équilibreur de charge Seesaw.

Avantages du mode d'équilibrage de charge groupé

Le mode d'équilibrage de charge groupé offre les avantages suivants par rapport au mode d'équilibrage de charge manuel :

  • Une seule équipe peut être chargée à la fois de la création du cluster et de la configuration de l'équilibreur de charge. Par exemple, une équipe d'administration de clusters n'a pas besoin de dépendre d'une équipe réseau distincte pour acquérir, exécuter et configurer l'équilibreur de charge à l'avance.

  • Anthos clusters on VMware configure automatiquement les adresses IP virtuelles de l'équilibreur de charge. Au moment de la création du cluster, Anthos clusters on VMware configure l'équilibreur de charge avec des adresses IP virtuelles pour le serveur d'API Kubernetes, le service d'entrée et les modules complémentaires du cluster. Lorsque des clients créent des services de type LoadBalancer, Anthos clusters on VMware configure automatiquement les adresses IP virtuelles de l'objet Service sur l'équilibreur de charge.

  • Les dépendances entre les organisations, les groupes et les administrateurs sont réduites. En particulier, le groupe qui gère un cluster dépend moins du groupe qui gère le réseau.

Nous vous recommandons vivement d'utiliser les versions 6.7 de vSphere et 6.6 de Virtual Distributed Switch (VDS) pour le mode d'équilibrage de charge groupé.

Vous pouvez utiliser des versions antérieures si vous le souhaitez, mais votre installation sera moins sécurisée. Les sections restantes de cette rubrique fournissent des informations plus détaillées sur les avantages de vSphere 6.7 et de Virtual Distributed Switch (VDS) 6.6 en termes de sécurité.

Planifier vos VLAN

Une installation Anthos clusters on VMware comporte un cluster d'administrateur et un ou plusieurs clusters d'utilisateur. Avec le mode d'équilibrage de charge groupé, nous vous recommandons vivement de disposer vos clusters sur des VLAN distincts. Votre cluster d'administrateur doit notamment se trouver sur son propre VLAN.

Si votre cluster d'administrateur se trouve sur son propre VLAN, le trafic du plan de contrôle est séparé du trafic du plan de données. Cette séparation protège le cluster d'administrateur et les plans de contrôle du cluster d'utilisateur contre les erreurs de configuration accidentelles. De telles erreurs peuvent entraîner, par exemple, des problèmes tels qu'une tempête de diffusion due à des boucles de couche 2 dans le même VLAN, ou à une adresse IP en conflit qui élimine la séparation souhaitée entre le plan de données et le plan de contrôle.

Provisionner des ressources de VM pour l'équilibrage de charge groupé (Seesaw)

Avec l'équilibrage de charge groupé, provisionnez les ressources de processeur et de mémoire de la VM en fonction du trafic réseau prévu.

L'équilibreur de charge groupé n'est pas gourmand en mémoire et peut s'exécuter sur des VM dotées de 1 Go de mémoire. Cependant, des augmentations dans le débit des paquets réseau nécessitent davantage de ressources processeur.

Le tableau ci-dessous présente les consignes en matière d'espace de stockage, de processeur et de mémoire pour le provisionnement de VM. Le taux de paquets n'étant pas une mesure typique des performances du réseau, le tableau indique également le nombre maximal de connexions réseau actives. Les consignes supposent également un environnement dans lequel les VM ont une liaison de 10 Gbit/s, et des processeurs exécutés à moins de 70 %.

Lorsque l'équilibreur de charge groupé s'exécute en mode haute disponibilité, il exécute une paire active et de sauvegarde, de sorte que tout le trafic passe par une seule VM.

Étant donné que les cas d'utilisation réels varient, ces consignes doivent être modifiées en fonction de votre trafic réel. Surveillez les métriques liées au processeur et aux paquets pour effectuer les modifications nécessaires.

Si vous devez modifier le processeur et la mémoire pour les VM Seesaw, vous devez suivre les instructions de mise à niveau des équilibreurs de charge. Sachez que vous pouvez conserver la même version de l'équilibreur de charge groupé et ne modifier que le nombre de processeurs et l'allocation de mémoire.

Pour les clusters d'administrateur de petite taille, nous recommandons 2 processeurs. Pour les clusters d'administrateur de grande taille, nous recommandons 4 processeurs.

Stockage Processeur Mémoire Débit de paquets Nombre maximal de connexions actives
20 Go 1 (environnement hors production) 1 Go 250 k 100
20 Go 2 3 Go 450 k 300
20 Go 4 3 Go 850k 6 000
20 Go 6 3 Go 1 000 k 10 000

Notez que dans un environnement hors production, vous ne devez provisionner qu'un seul processeur.

Réserver des adresses IP virtuelles

Quel que soit le mode d'équilibrage de charge que vous avez choisi, vous devez mettre de côté les adresses IP virtuelles (VIP) que vous souhaitez utiliser 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.

Vous devez mettre de côté un ensemble de VIP pour votre cluster d'administrateur et pour chaque cluster d'utilisateur que vous souhaitez créer. Pour un cluster donné, ces VIP doivent se trouver sur le même VLAN que les nœuds du cluster et ses VM Seesaw.

Pour savoir comment mettre de côté les adresses IP virtuelles, consultez la section Mettre de côté les adresses IP virtuelles.

Réserver des adresses IP de nœud

Avec le mode d'équilibrage de charge groupé, vous pouvez spécifier des adresses IP statiques pour vos nœuds de cluster, mais ces derniers peuvent également obtenir leurs adresses IP à partir d'un serveur DHCP.

Si vous souhaitez que vos nœuds de cluster aient des adresses IP statiques, réservez suffisamment d'adresses aux nœuds du cluster d'administrateur et aux nœuds de tous les clusters d'utilisateurs que vous souhaitez créer. Pour en savoir plus sur le nombre d'adresses IP de nœuds à réserver, consultez la section Configurer des adresses IP statiques.

Réserver des adresses IP pour les VM Seesaw

Ensuite, mettez de côté les adresses IP des VM qui exécuteront vos équilibreurs de charge Seesaw.

Le nombre d'adresses à mettre de côté varie selon que vous souhaitez créer des équilibreurs de charge à disponibilité élevée ou des équilibreurs de charge standard.

Scénario 1 : équilibreurs de charge Seesaw à disponibilité élevée

Pour votre cluster d'administrateur, définissez deux adresses IP pour une paire de VM Seesaw. Également pour votre cluster d'administration, réservez une adresse IP principale unique pour la paire de VM Seesaw. Ces trois adresses doivent se trouver sur le même VLAN que les nœuds de votre cluster d'administrateur.

Pour chaque cluster d'utilisateur que vous souhaitez créer, mettez de côté deux adresses IP pour une paire de VM Seesaw. De même, pour chaque cluster d'utilisateurs, réservez une adresse IP principale unique pour la paire de VM Seesaw. Pour un cluster d'utilisateur donné, ces trois adresses doivent se trouver sur le même VLAN que les nœuds du cluster d'utilisateur.

Scénario 2 : équilibreurs de charge Seesaw standards

Pour votre cluster d'administrateur, définissez une adresse IP pour une VM Seesaw. Également pour votre cluster d'administrateur, réservez une adresse IP principale pour l'équilibreur de charge Seesaw. Ces deux adresses doivent se trouver sur le même VLAN que les nœuds de votre cluster d'administrateur.

Pour chaque cluster d'utilisateur que vous souhaitez créer, mettez de côté une adresse IP pour une VM Seesaw. Pour chaque cluster d'utilisateurs, réservez également une adresse IP principale pour l'équilibreur de charge Seesaw. Ces deux adresses doivent se trouver sur le même VLAN que les nœuds du cluster d'utilisateur.

Planifier des groupes de ports

Chacune de vos VM Seesaw possède deux interfaces réseau. L'une de ces interfaces réseau est configurée avec les adresses IP virtuelles de service. L'autre interface réseau est configurée avec l'adresse IP de la VM elle-même.

Pour une VM Seesaw, les deux interfaces réseau peuvent être connectées au même groupe de ports vSphere ou peuvent être associées à des groupes de ports distincts. Si les groupes de ports sont distincts, ils doivent se trouver sur le même VLAN.

Cette rubrique fait référence à deux groupes de ports :

  • Groupe de ports de l'équilibreur de charge : pour une VM Seesaw, l'interface réseau configurée avec les adresses IP de service est connectée à ce groupe de ports.

  • Groupe de ports du nœud de cluster : pour une VM Seesaw, l'interface réseau configurée avec l'adresse IP de la VM elle-même est connectée à ce groupe de ports. Les nœuds de votre cluster Anthos clusters on VMware sont également connectés à ce groupe de ports.

Le groupe de ports de l'équilibreur de charge et le groupe de ports du nœud de cluster peuvent être identiques. Toutefois, nous vous recommandons vivement qu'ils soient distincts.

Créer des fichiers de blocs d'adresses IP

Pour chaque cluster que vous souhaitez créer, spécifiez les adresses que vous avez choisies pour vos VM Seesaw dans un fichier de bloc d'adresses IP. Ce fichier de bloc d'adresses IP concerne les VM de votre équilibreur de charge, et non les nœuds de votre cluster. Si vous avez l'intention d'utiliser des adresses IP statiques pour vos nœuds de cluster, vous devez créer un fichier de bloc d'adresses IP distinct pour ces adresses. Voici un exemple de fichier de bloc d'adresses IP qui spécifie deux adresses IP pour les VM Seesaw :

blocks:
  - netmask: "255.255.255.0"
    gateway: "172.16.20.1"
    ips:
    - ip: "172.16.20.18"
      hostname: "seesaw-vm"

Remplir vos fichiers de configuration

Préparez un fichier de configuration pour chacun des clusters : cluster d'administrateur et cluster d'utilisateur.

Dans le fichier de configuration de chaque cluster, définissez loadBalancer.kind sur "Seesaw".

Pour chaque cluster de votre fichier de configuration, remplissez la section seesaw dans la section loadBalancer.

loadBalancer:
  kind: Seesaw
  seesaw:
    ipBlockFilePath::
    vrid:
    masterIP:
    cpus:
    memoryMB:
    vCenter:
      networkName:
    enableha:
    antiAffinityGroups:
      enabled:

seesaw.ipBlockFilePath

Chaîne. Définissez cette chaîne sur le chemin d'accès du fichier de bloc d'adresses IP pour vos VM Seesaw. Exemple :

loadBalancer:
  seesaw:
    ipBlockFilePath: "admin-seesaw-ipblock.yaml"

seesaw.vrid

Entier. Identifiant de routeur virtuel de votre VM Seesaw. Cet identifiant doit être unique dans un VLAN. La plage valide est comprise entre 1 et 255. Exemple :

loadBalancer:
  seesaw:
    vrid: 125

seesaw.masterIP

Chaîne. L'adresse IP principale de Seesaw. Exemple :

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

seesaw.cpus

Entier. Nombre de processeurs de votre VM Seesaw. Exemple :

loadBalancer:
  seesaw:
    cpus: 4

seesaw.memoryMB

Entier. Nombre de mégaoctets de mémoire pour votre VM Seesaw. Exemple :

loadBalancer:
  seesaw:
    memoryMB: 3072

seesaw.vCenter.networkName

Chaîne. Nom du réseau contenant vos VM Seesaw. S'il n'est pas défini, il utilise le même réseau que le cluster. Exemple :

loadBalancer:
  seesaw:
    vCenter:
      networkName: "my-seesaw-network"

seesaw.enableHA

Valeur booléenne. Si vous souhaitez créer un équilibreur de charge Seesaw à haute disponibilité, définissez cette valeur sur true. Sinon, définissez cette valeur sur false. Exemple :

loadBalancer:
  seesaw:
    enableHA: true

Si vous définissez enableha sur true, vous devez activer l'apprentissage MAC.

seesaw.antiAffinityGroups.enabled

Si vous souhaitez appliquer une règle anti-affinité à vos VM Seesaw, définissez la valeur de seesaw.antiAffinityGroups.enabled sur true. Sinon, définissez la valeur sur false. La valeur par défaut est true. La valeur recommandée est true, de sorte que vos VM Seesaw soient placées sur des hôtes physiques différents chaque fois que cela est possible. Exemple :

loadBalancer:
  seesaw
    antiAffinityGroups:
      enabled: true

Activer l'apprentissage MAC ou le mode promiscuité (haute disponibilité uniquement)

Si vous configurez un équilibreur de charge Seesaw standard, vous pouvez ignorer cette section.

Si vous configurez un équilibreur de charge Seesaw à haute disponibilité, vous devez activer une combinaison d'apprentissage MAC, de transmissions falsifiées et de mode promiscuité sur le groupe de ports de l'équilibreur de charge.

La méthode d'activation de ces fonctionnalités varie selon le type de commutateur :

Type de commutateurActivation des fonctionnalitésImpact sur la sécurité
vSphere 6.7 avec VDS 6.6

Activez l'apprentissage MAC et les transmissions falsifiées pour votre équilibreur de charge en exécutant la commande gkectl prepare network --config [CONFIG_FILE], où [CONFIG_FILE] représente le chemin d'accès à votre fichier de configuration Anthos clusters on VMware. Pour ce faire, vous devez disposer de l'autorisation dvPort group.Modify.

Minimal. Si le groupe de ports de votre équilibreur de charge n'est connecté qu'à vos VM Seesaw, vous pouvez limiter l'apprentissage MAC à vos VM Seesaw de confiance.

vSphere 6.5 ou

vSphere 6.7 avec une version de VDS antérieure à 6.6

Activez le mode promiscuité et les transmissions falsifiées pour le groupe de ports de votre équilibreur de charge. Dans l'onglet Mise en réseau, utilisez l'interface utilisateur de vSphere sur la page du groupe de ports : Modifier les paramètres -> Sécurité. Toutes les VM du groupe de ports de l'équilibreur de charge sont en mode promiscuité. Ainsi, elles peuvent toutes voir l'ensemble du trafic. Si le groupe de ports de votre équilibreur de charge n'est connecté qu'à vos VM Seesaw, seules ces VM verront l'ensemble du trafic.
Commutateur logique NSX-T Activez l'apprentissage MAC sur le commutateur logique. vSphere ne permet pas de créer deux commutateurs logiques dans le même domaine de couche 2. Par conséquent, les VM Seesaw et les nœuds de cluster doivent se trouver sur le même commutateur logique. Cela signifie que l'apprentissage MAC est activé pour tous les nœuds de cluster. Un pirate informatique peut être en mesure de falsifier une adresse MAC en exécutant des pods privilégiés dans le cluster.
Commutateur standard vSphere Activez le mode promiscuité et les transmissions falsifiées pour le groupe de ports de votre équilibreur de charge. Utilisez l'interface utilisateur vSphere sur chaque hôte ESXI : Configurer -> Commutateurs virtuels -> Commutateur standard -> Modifier le paramètre sur le groupe de ports -> Sécurité. Toutes les VM du groupe de ports de l'équilibreur de charge sont en mode promiscuité. Ainsi, elles peuvent toutes voir l'ensemble du trafic. Si le groupe de ports de votre équilibreur de charge n'est connecté qu'à vos VM Seesaw, seules ces VM verront l'ensemble du trafic.

Exécuter une vérification préliminaire sur votre fichier de configuration

Après avoir créé les fichiers de bloc d'adresses IP et le fichier de configuration de votre cluster d'administrateur, exécutez une vérification préliminaire sur ce fichier :

gkectl check-config --config [ADMIN_CONFIG_FILE]

[ADMIN_CONFIG_FILE] est le chemin d'accès au fichier de configuration de votre cluster d'administrateur Anthos clusters on VMware.

Pour le fichier de configuration du cluster d'utilisateur, vous devez inclure le fichier kubeconfig de votre cluster d'administrateur dans la commande :

gkectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] check-config --config [USER_CONFIG_FILE]

[ADMIN_CLUSTER_KUBECONFIG] représente le chemin du fichier kubeconfig de votre cluster d'administrateur.

Si la vérification préliminaire échoue, apportez les modifications nécessaires à votre fichier de configuration Anthos clusters on VMware et à vos fichiers de bloc d'adresses IP. Ensuite, relancez la vérification préliminaire.

Importer des images de l'OS

Exécutez cette commande pour importer des images d'OS dans votre environnement vSphere :

gkectl prepare --config [ADMIN_CONFIG_FILE]

[ADMIN_CONFIG_FILE] est le chemin d'accès au fichier de configuration de votre cluster d'administrateur Anthos clusters on VMware.

Créer un cluster d'administrateur utilisant le mode d'équilibrage de charge groupé

Créez et configurez la ou les VM pour votre équilibreur de charge du cluster d'administrateur :

gkectl create loadbalancer --config [CONFIG_FILE]

[CONFIG_FILE] est le chemin d'accès de votre fichier de configuration Anthos clusters on VMware pour le cluster d'administrateur.

Créez le cluster d'administrateur :

gkectl create admin --config [CONFIG_FILE]

[CONFIG_FILE] est le chemin d'accès au fichier de configuration de votre cluster d'administrateur Anthos clusters on VMware.

Créer un cluster d'utilisateur utilisant le mode d'équilibrage de charge groupé

Créez et configurez la ou les VM pour votre équilibreur de charge du cluster d'utilisateur :

gkectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] create loadbalancer --config [CONFIG_FILE]

Créez le cluster d'utilisateur :

gkectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] create cluster --config [CONFIG_FILE]

[ADMIN_CLUSTER_KUBECONFIG] est le chemin d'accès au fichier kubeconfig de votre cluster d'administrateur et [CONFIG_FILE] est le chemin d'accès au fichier de configuration du cluster d'utilisateur Anthos clusters on VMware.

Tests de performance et de charge

Le débit de téléchargement de votre application évolue de manière linéaire avec le nombre de backends. En effet, les backends envoient des réponses directement aux clients, en contournant l'équilibreur de charge, à l'aide du retour direct du serveur.

En revanche, le débit de transfert de votre application est limité par la capacité de la VM Seesaw qui exécute l'équilibrage de charge.

La quantité de consommation de processeur et de mémoire requises varie en fonction des applications. Il est donc essentiel de procéder à un test de charge avant de commencer à traiter un grand nombre de clients.

Les tests indiquent qu'une seule machine de type Seesaw avec 6 processeurs et 3 Go de mémoire peut gérer 10 Go/s (débit en ligne) en important 10 Ko de connexions TCP simultanées. Cependant, il est important d'exécuter votre propre test de charge si vous envisagez de prendre en charge un grand nombre de connexions TCP simultanées.

Limites de scaling

Le mode d'équilibrage de charge groupé limite l'évolutivité de votre cluster. Par exemple, le nombre de nœuds de votre cluster et de services pouvant être configurés sur votre équilibreur de charge est limité. C'est également le cas des vérifications de l'état. Leur nombre dépend à la fois du nombre de nœuds et du nombre de services.

En effet, à partir de la version 1.3.1, le nombre de vérifications d'état dépend du nombre de nœuds et de services locaux de trafic. Un service local de trafic est un service dont externalTrafficPolicy est défini sur "Local".

Version 1.3.0Version 1.3.1 et ultérieure
Nombre maximal de services (S)100500
Nombre maximal de nœuds (N)100100
Nombre maximal de vérifications d'état S * N <= 10 000N + L * N <= 10 000, où L représente le nombre de services locaux de trafic

Exemple : Dans la version 1.3.1, supposons que vous ayez 100 nœuds et 99 services locaux de trafic. Dans ce cas, le nombre de vérifications d'état est de 100 + 99 * 100 = 10 000, ce qui correspond à la limite de 10 000.

Mettre à niveau l'équilibreur de charge de votre cluster d'administrateur

À partir de la version 1.4, les équilibreurs de charge sont mis à niveau lors de la mise à niveau du cluster. Vous n'avez pas besoin d'exécuter une autre commande pour mettre à niveau les équilibreurs de charge séparément. Toutefois, vous pouvez exécuter la commande gkectl upgrade loadbalancer ci-dessous pour mettre à jour certains paramètres.

Vous pouvez mettre à jour les processeurs et la mémoire pour vos VM Seesaw. Créez un fichier de configuration comme dans l'exemple ci-dessous, puis définissez les processeurs et la mémoire pour vos VM Seesaw. Laissez-les vides pour les conserver tels quels. Si bundlePath est défini, il met à niveau l'équilibreur de charge vers celui spécifié dans le groupe.

Exemple :

apiVersion: v1
kind: AdminCluster
bundlePath:
loadBalancer:
  kind: Seesaw
  seesaw:
    cpus: 3
    memoryMB: 3072

Exécutez ensuite cette commande pour mettre à niveau votre équilibreur de charge :

gkectl upgrade loadbalancer --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [ADMIN_CLUSTER_CONFIG] --admin-cluster

où :

  • [ADMIN_CLUSTER_KUBECONFIG] représente le fichier kubeconfig de votre cluster d'administrateur.

  • [ADMIN_CLUSTER_CONFIG] est le fichier de configuration du cluster d'administrateur que vous avez créé.

La mise à niveau d'un équilibreur de charge entraîne des temps d'arrêt. Si le mode haute disponibilité est activé pour l'équilibreur de charge, le temps d'arrêt maximal est de deux secondes.

Mettre à niveau l'équilibreur de charge pour un cluster d'utilisateur

À partir de la version 1.4, les équilibreurs de charge sont mis à niveau lors de la mise à niveau du cluster. Vous n'avez pas besoin d'exécuter une autre commande pour mettre à niveau les équilibreurs de charge séparément. Toutefois, vous pouvez utiliser le gkectl upgrade loadbalancer ci-dessous pour mettre à jour certains paramètres.

Vous pouvez mettre à jour les processeurs et la mémoire pour vos VM Seesaw. Créez un fichier de configuration comme dans l'exemple ci-dessous, puis définissez les processeurs et la mémoire pour vos VM Seesaw. Laissez-les vides pour les conserver tels quels. Si gkeOnPremVersion est défini, il met à niveau l'équilibreur de charge vers celui spécifié par cette version.

Exemple :

apiVersion: v1
kind: UserCluster
name: cluster-1
gkeOnPremVersion:
loadBalancer:
  kind: Seesaw
  seesaw:
    cpus: 4
    memoryMB: 3072

Exécutez ensuite cette commande pour mettre à niveau votre équilibreur de charge :

gkectl upgrade loadbalancer --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [USER_CLUSTER_CONFIG]

où :

  • [ADMIN_CLUSTER_KUBECONFIG] représente le fichier kubeconfig de votre cluster d'administrateur.

  • [USER_CLUSTER_CONFIG] est le fichier de configuration utilisateur que vous avez créé.

Afficher les journaux Seesaw

L'équilibreur de charge groupé Seesaw stocke les fichiers journaux sur les VM Seesaw dans /var/log/seesaw/. Le fichier journal le plus important est seesaw_engine.INFO.

À partir de la version 1.6, si Stackdriver est activé, les journaux sont également importés dans le cloud. Vous pouvez les consulter sous la ressource "anthos_l4lb". Pour désactiver l'importation des journaux, vous pouvez vous connecter en SSH à la VM et exécuter la commande suivante :

sudo systemctl disable --now docker.fluent-bit.service

Afficher les informations sur vos VM Seesaw

Vous pouvez obtenir des informations sur les VM Seesaw d'un cluster à partir de la ressource personnalisée SeesawGroup.

Affichez la ressource personnalisée SeesawGroup d'un cluster :

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get seesawgroups -n kube-system -o yaml

[CLUSTER_KUBECONFIG] représente le chemin du fichier kubeconfig pour le cluster.

Le résultat comporte un champ isReady qui indique si les VM sont prêtes à gérer le trafic. Le résultat affiche également les noms et les adresses IP des VM Seesaw, et la VM principale :

apiVersion: seesaw.gke.io/v1alpha1
kind: SeesawGroup
metadata:
  ...
  name: seesaw-for-cluster-1
  namespace: kube-system
  ...
spec: {}
status:
  machines:
  - hostname: cluster-1-seesaw-1
    ip: 172.16.20.18
    isReady: true
    lastCheckTime: "2020-02-25T00:47:37Z"
    role: Master
  - hostname: cluster-1-seesaw-2
    ip: 172.16.20.19
    isReady: true
    lastCheckTime: "2020-02-25T00:47:37Z"
    role: Backup

Afficher les métriques Seedaw

L'équilibreur de charge groupé Seesaw fournit les métriques suivantes :

  • Débit par objet Service ou nœud
  • Débit de paquets par objet Service ou nœud
  • Connexions actives par objet Service ou nœud
  • Utilisation du processeur et de la mémoire
  • Nombre de pods backend sains par service
  • Quelle VM est la VM principale et quelle VM est la sauvegarde
  • Disponibilité

À partir de la version 1.6, ces métriques sont importées dans Cloud avec Stackdriver. Vous pouvez les consulter sous la ressource de surveillance "anthos_l4lb".

Vous pouvez également utiliser toutes les solutions de surveillance et de tableau de bord de votre choix, à condition qu'elles soient compatibles avec le format Prometheus.

Supprimer un équilibreur de charge

Si vous supprimez un cluster qui utilise un équilibrage de charge groupé, vous devez supprimer les VM Seesaw de ce cluster. Pour ce faire, supprimez les VM Seesaws dans l'interface utilisateur vSphere.

À la place de la version 1.4.2, vous pouvez également exécuter gkectl et transmettre les fichiers de configuration pour supprimer l'équilibreur de charge groupé et son fichier de groupe.

Pour les clusters d'administrateur, exécutez la commande suivante:

gkectl delete loadbalancer --config [ADMIN_CONFIG_FILE] --seesaw-group-file [GROUP_FILE]

Pour les clusters d'utilisateur, exécutez la commande suivante:

gkectl delete loadbalancer --config [CLUSTER_CONFIG_FILE] --seesaw-group-file [GROUP_FILE] --kubeconfig [ADMIN_CLUSTER_KUBECONFIG]

Où :

  • [ADMIN_CONFIG_FILE] est le fichier de configuration du cluster d'administrateur

  • [CLUSTER_CONFIG_FILE] est le fichier de configuration du cluster d'utilisateur

  • [ADMIN_CLUSTER_KUBECONFIG] est le fichier kubeconfig du cluster d'administrateur.

  • [GROUP_FILE] est le fichier de groupe Seesaw. Le nom du fichier de groupe se présente sous la forme suivante : seesaw-for-[CLUSTER_NAME]-[IDENTIFIER].yaml.

Versions antérieures à 1.4.2

Dans les versions antérieures à 1.4.2, vous pouvez également exécuter cette commande, qui supprime les VM Seesaw et le fichier de groupe Seesaw :

gkectl delete loadbalancer --config vsphere.yaml --seesaw-group-file [GROUP_FILE]

Où :

  • [GROUP_FILE] représente le fichier de groupe Seesaw. Le fichier de groupe se trouve sur votre poste de travail administrateur, à côté de config.yaml. Le nom du fichier de groupe se présente sous la forme suivante : seesaw-for-[CLUSTER_NAME]-[IDENTIFIER].yaml.

  • vsphere.yaml représente un fichier contenant les informations suivantes sur votre serveur vCenter :

vcenter:
  credentials:
    address:
    username:
    password:
  datacenter:
  cacertpath:

Dépannage

Obtenir une connexion SSH à une VM Seesaw

Il peut arriver que vous souhaitiez vous connecter en SSH à une VM Seesaw pour le dépannage ou le débogage.

Obtenir la clé SSH

Si vous avez déjà créé votre cluster, procédez comme suit pour obtenir la clé SSH :

  1. Récupérez le Secret seesaw-ssh du cluster. Obtenez la clé SSH du Secret et décodez-la en base64. Enregistrez la clé décodée dans un fichier temporaire :

    kubectl --kubeconfig [CLUSTER_KUBECONFIG] get -n  kube-system secret seesaw-ssh -o \
    jsonpath='{@.data.seesaw_ssh}' | base64 -d | base64 -d > /tmp/seesaw-ssh-key

    [CLUSTER_KUBECONFIG] représente le fichier kubeconfig de votre cluster d'utilisateur.

  2. Définissez les autorisations appropriées pour le fichier de clé :

    chmod 0600 /tmp/seesaw-ssh-key

Si vous n'avez pas encore créé votre cluster, procédez comme suit pour obtenir la clé SSH :

  1. Recherchez le fichier nommé seesaw-for-[CLUSTER_NAME]-[IDENTIFIER].yaml.

    Le fichier est appelé fichier de groupe et se trouve à côté du fichier config.yaml.

    La commande gkectl create loadbalancer imprime également l'emplacement du fichier de groupe.

  2. Dans le fichier, récupérez la valeur de credentials.ssh.privateKey et décodez-la en base64. Enregistrez la clé décodée dans un fichier temporaire :

    cat seesaw-for-[CLUSTER_NAME]-[IDENTIFIER].yaml  | grep privatekey | sed 's/    privatekey: //g' \
    | base64 -d > /tmp/seesaw-ssh-key
    
  3. Définissez les autorisations appropriées pour le fichier de clé :

    chmod 0600 /tmp/seesaw-ssh-key

Vous pouvez maintenant vous connecter en SSH à la VM Seesaw :

ssh -i /tmp/seesaw-ssh-key ubuntu@[SEESAW_IP]

[SEESAW_IP] représente l'adresse IP de la VM Seesaw.

Obtenir des instantanés

Vous pouvez capturer des instantanés pour les VM Seesaw à l'aide de la commande gkectl diagnose snapshot avec l'option --scenario.

Si vous définissez --scenario sur all ou all-with-logs, le résultat inclut des instantanés de Seesaw avec d'autres instantanés.

Si vous définissez --scenario sur seesaw, le résultat inclut uniquement les instantanés Seesaw.

Exemples :

gkectl diagnose snapshot --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --scenario seesaw

[ADMIN_CLUSTER_KUBECONFIG] représente le fichier kubeconfig de votre cluster d'administrateur.

gkectl diagnose snapshot --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --cluster-name [CLUSTER_NAME] --scenario seesaw
gkectl diagnose snapshot --seesaw-group-file [GROUP_FILE] --scenario seesaw

[GROUP_FILE] représente le chemin du fichier de groupe du cluster, par exemple : seesaw-for-gke-admin-xxxxxx.yaml.

Problèmes connus

Mise à niveau de l'équilibreur de charge vers la version 1.3.x impossible

Il est connu que si antiaffinitygroups est désactivé pour un équilibreur de charge Seesaw, la mise à niveau de l'équilibreur de charge de la version 1.3.x vers la version 1.3.x+ échouera en indiquant l'erreur suivante :

La valeur SeesawGroup mise à jour n'est pas valide : SeesawConfig n'est pas valide : AntiAffinityGroups doit être défini sur la valeur par défaut si l'utilisateur n'en fournit aucune.

Le problème a été corrigé dans la version 1.4 afin que vous puissiez ignorer la version 1.3.x+ et passer à la version 1.4.