Équilibrage de charge groupé avec Seesaw

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

En mode d'équilibrage de charge groupé, GKE On-Prem 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 fourni par GKE on-Prem 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 ne dépendrait pas d'une équipe réseau distincte pour acquérir, exécuter et configurer l'équilibreur de charge à l'avance.

  • GKE On-Prem configure automatiquement les adresses IP virtuelles (VIP) de l'équilibreur de charge. Au moment de la création du cluster, GKE On-Prem configure l'équilibreur de charge avec des adresses IP 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, GKE On-Prem configure automatiquement les VIP de 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 GKE On-Prem comporte un cluster d'administrateur et un ou plusieurs clusters d'utilisateurs. Avec le mode d'équilibrage de charge groupé, nous vous recommandons vivement de disposer vos clusters sur des VLAN distincts. Il est particulièrement important que votre cluster d'administrateur soit sur son propre VLAN.

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 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.

Processeur Mémoire Débit de paquets Nombre maximal de connexions actives
1 (environnement hors production) 1 Go 250 k 100
2 3 Go 450 k 300
4 3 Go 850k 6 000
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é plusieurs adresses IP virtuelles que vous souhaitez utiliser pour l'équilibrage de charge. Ces VIP permettent aux clients externes d'accéder à vos serveurs d'API Kubernetes, à vos services d'entrée et à vos services complémentaires.

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

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

Mettre de côté 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, ou ces derniers peuvent obtenir leurs adresses IP à partir d'un serveur DNS.

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.

Cas 1 : équilibreurs de charge à disponibilité élevée Seesaw

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 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 standard

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. Vos nœuds de cluster GKE On-Prem 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 hostconfig

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

hostconfig:
  dns: "110.116.232"
  tod: "192.138.210.214"
  otherdns:
  - "8.8.8.8"
  - "8.8.4.4"
  othertod:
  - "ntp.ubuntu.com"
  searchdomainsfordns:
  - "my.local.com"
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 ce paramètre sur le chemin du fichier hostconfig de vos VM Seesaw. Exemple :

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

seesaw.vird

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 de 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 standard Seesaw, 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 GKE On-Prem. Pour ce faire, vous devez disposer de l'autorisation dvPort group.Modify.

Minime. Si le groupe de ports de votre équilibreur de charge est connecté uniquement à 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, toutes les VM du groupe de ports de votre équilibreur de charge peuvent voir tout le trafic. Si le groupe de ports de votre équilibreur de charge n'est connecté qu'à vos VM Seesaw, seules ces VM peuvent consulter tout le trafic.
Commutateur logique NSX-T Activez l'apprentissage MAC sur le commutateur logique. vSphere ne prend pas en charge la création de 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 réaliser un MAC falsifié 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, toutes les VM du groupe de ports de votre équilibreur de charge peuvent voir tout le trafic. Si le groupe de ports de votre équilibreur de charge n'est connecté qu'à vos VM Seesaw, seules ces VM peuvent consulter tout le trafic.

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

Après avoir créé vos fichiers hostconfig et votre fichier de configuration du cluster d'administreur GKE On-Prem, exécutez une vérification préliminaire dans votre fichier de configuration :

gkectl check-config --config [ADMIN_CONFIG_FILE]

[ADMIN_CONFIG_FILE] correspond au chemin d'accès de votre fichier de configuration d'administrateur GKE On-Prem.

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] correspond au 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 GKE On-Prem et à vos fichiers hostconfig. Ensuite, relancez la vérification préliminaire.

Importer les images d'OS

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

gkectl prepare --config [ADMIN_CONFIG_FILE]

[ADMIN_CONFIG_FILE] correspond au chemin d'accès de votre fichier de configuration d'administrateur GKE On-Prem.

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 GKE On-Prem pour le cluster d'administrateur.

Créez le cluster d'administrateur :

gkectl create admin --config [CONFIG_FILE]

[CONFIG_FILE] correspond au chemin d'accès de votre fichier de configuration d'administrateur GKE On-Prem.

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 du fichier kubeconfig pour votre cluster d'administrateur et [CONFIG_FILE] est le chemin de votre fichier de configuration de cluster d'utilisateur GKE On-Prem.

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 au 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

Avec le mode d'équilibrage de charge groupé, il y a des limites à l'évolutivité de votre cluster. Le nombre de nœuds de votre cluster et le nombre de services pouvant être configurés sur votre équilibreur de charge sont limités. Les vérifications d'état sont également limitées. Le nombre de vérifications d'état dépend à la fois du nombre de nœuds et du nombre de services.

À partir de la version 1.3.1, le nombre de vérifications d'état dépend du nombre de nœuds et du nombre 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'étatS * N <= 10 000N + L * N <= 10 000, où L est 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. Le nombre de vérifications d'état est ensuite de 100 + 99 * 100 = 10 000, ce qui correspond à la limite de 10 000.

Mettre à niveau l'équilibreur de charge pour 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 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 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 [CLUSTER_CONFIG] --admin-cluster

où :

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

  • [CLUSTER_CONFIG] est le fichier de configuration que vous avez crée.

Pendant la mise à niveau d'un équilibreur de charge, des interruptions auront lieu. 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 [CLUSTER_CONFIG] --name=[CLUSTER_NAME]

où :

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

  • [CLUSTER_CONFIG] est le fichier de configuration que vous avez crée.

  • [CLUSTER_NAME] est le nom du cluster mis à niveau.

Afficher les journaux Seesaw

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

Afficher les informations sur vos VM Seesaw

Vous pouvez obtenir des informations sur vos VM Seesaw pour 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] est 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 intégré Seesaw fournit les métriques suivantes :

  • Débit par service ou nœud
  • Débit de paquets par service ou nœud
  • Connexions actives par 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é

Vous pouvez utiliser toutes les solutions de surveillance et de tableau de bord de votre choix, à condition qu'elles soient compatibles avec le format Prometheus. Il est possible d'utiliser les modules complémentaires Prometheus et Grafana intégrés à GKE On-Prem.

Utiliser les modules complémentaires Prometheus et Grafana intégrés

Activez Prometheus et Grafana pour votre cluster.

L'étape suivante consiste à créer un objet Service et un objet Endpoints afin que le module complémentaire Prometheus connaisse vos VM Seesaw.

Enregistrez la configuration suivante comme seesaw-metrics.yaml. La configuration comprend un fichier manifeste Service et un fichier manifeste Endpoints :

apiVersion: v1
kind: Service
metadata:
   name: seesaw-metrics
    annotations:
      monitoring.gke.io/scrape: 'true'
      monitoring.gke.io/scheme: 'https'
      monitoring.gke.io/tls_config: 'seesaw-ca'
spec:
    type: ClusterIP
    clusterIP: "None"
    ports:
    - name: metrics
      port: 20257
      protocol: TCP
      targetPort: 20257
---
kind: Endpoints
apiVersion: v1
metadata:
  name: seesaw-metrics
subsets:
 - addresses:
     - ip: [SEESAW_VM1_IP]
     - ip: [SEESAW_VM2_IP]
   ports:
     - name: metrics
       port: 20257

où :

  • [SEESAW_VM1_IP] est l'adresse IP de l'une de vos VM Seesaw.
  • [SEESAW_VM2_IP] est l'adresse IP de votre autre VM Seesaw.

Créez les objets Service et Endpoints :

kubectl --kubeconfig [CLUSTER_KUBECONFIG] apply seesaw-metrics.yaml

Vous pouvez maintenant créer des tableaux de bord et graphiques Grafana pour afficher les métriques.

Supprimer un équilibreur de charge

Si vous supprimez un cluster qui utilise un équilibrage de charge groupé, vous devez supprimer les VM Seesaw pour 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] est 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 est 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] est le fichier kubeconfig de votre cluster.

  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 seesaw-for-[CLUSTER_NAME]-[IDENTIFIER].yaml.

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

    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] est 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'indicateur --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] est le fichier kubeconfig pour 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] est le chemin du fichier de groupe pour le 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.