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

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

  • 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 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 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 se trouve sur son propre VLAN.

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.

Mettre de côté des adresses IP et des adresses IP virtuelles pour les VM Seesaw

Vous devez à présent mettre de côté les adresses IP et les adresses IP virtuelles 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 standards.

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. Toujours pour votre cluster d'administrateur, définissez une adresse IP virtuelle 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. Toujours pour chaque cluster d'utilisateur, définissez une adresse IP virtuelle 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. Toujours pour votre cluster d'administrateur, mettez de côté une adresse IP virtuelle 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'utilisateur, mettez également de côté une adresse IP virtuelle 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 l'adresse IP virtuelle de votre équilibreur de charge Seesaw. 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 l'adresse IP virtuelle de l'équilibreur de charge Seesaw 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 conteneur 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é à la VM de votre équilibreur de charge, et non aux 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 hostconfig distinct pour ces adresses. Voici un exemple de fichier hostconfig qui spécifie deux adresses IP pour les VM Seesaw :

hostconfig:
  dns: "172.16.255.1"
  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.252.0"
    gateway: "110.116.232.1"
    ips:
    - ip: "172.16.20.18"
      hostname: "seesaw-1"
    - ip: "172.16.20.19"
      hostname: "seesaw-2"

Remplir le fichier de configuration GKE On-Prem

Avant de créer un cluster, préparez un fichier de configuration GKE On-Prem.

Dans votre fichier de configuration, définissez lbmode sur "Bundled".

Un fichier de configuration peut contenir les spécifications d'un ou de plusieurs clusters. Pour chaque cluster de votre fichier de configuration, remplissez la section loadbalancerconfig.

loadbalancerconfig:
  ipblockfilepath:
  vrid:
  vip:
  cpus:
  memorymb:
  enableha:
  antiaffinitygroups:
    enabled:
  network:

loadbalancerconfig.ipblockfilepath

Définissez loadbalancerconfig.ipfileblockpath sur le chemin d'accès du fichier hostconfig pour votre équilibreur de charge. Exemple :

ipblockfilepath: "config-file-directory/my-user-hostconfig.yaml"

loadbalancerconfig.vrid

Définissez loadbalancerconfig.vrid sur l'identifiant de routeur virtuel de votre groupe Seesaw. Cet identifiant doit être unique dans un VLAN. La plage valide est comprise entre 1 et 255. Exemple :

vrid: 125

loadbalancerconfig.vip

Définissez loadbalancerconfig.vip sur l'adresse IP virtuelle du groupe Seesaw. Exemple :

vip: "172.16.20.21"

loadbalancerconfig.cpus

Définissez loadbalancerconfig.cpus sur le nombre de processeurs de chacune de vos VM Seesaw. Exemple :

cpus: 4

loadbalancerconfig.memorymb

Définissez loadbalancerconfig.memorymb sur le nombre de mégaoctets de mémoire de chacune de vos VM Seesaw. Exemple :

memorymb: 3072

loadbalancerconfig.antiaffinitygroups.enabled

Si vous souhaitez appliquer une règle anti-affinité à vos VM Seesaw, définissez la valeur de loadbalancerconfig.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 :

antiaffinitygroups:
  enabled: true

loadbalancerconfig.enableha

Si vous souhaitez un équilibreur de charge Seesaw à haute disponibilité, définissez la valeur loadbalancerconfig.enableha sur true. Sinon, définissez cette valeur sur false. La valeur par défaut est false.

enableha: true

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

loadbalancerconfig.network

Définissez loadbalancerconfig.network sur le nom du groupe de ports de votre équilibreur de charge. Si vous laissez ce champ vide, l'interface réseau configurée avec l'adresse IP virtuelle de votre équilibreur de charge Seesaw sera connectée à votre groupe de ports de nœud de cluster.

Exemple :

network: "USER_SEESAW_VIP_PORT_GROUP"

Exemple à partir d'un fichier de configuration GKE On-Prem

Voici un exemple qui montre des parties d'un fichier de configuration GKE On-Prem. Le fichier de configuration décrit deux clusters : un cluster d'administrateur et un cluster d'utilisateur. Chaque cluster possède une section loadbalancerconfig :

lbmode: "Bundled"
...

admincluster:
  loadbalancerconfig:
    ipblockfilepath: "admin-hostconfig.yaml"
    vrid: 124
    vip: 172.16.20.20
    cpus: 2
    memorymb: 3072
    enableha: true
    antiaffinitygroups:
      enabled: true
    network: "ADMIN_LOAD_BALANCER_PORT_GROUP"
...

usercluster:
  loadbalancerconfig:
    ipblockfilepath: "user-hostconfig.yaml"
    vrid: 125
    vip: 172.16.20.21
    cpus: 4
    memorymb: 3072
    enableha: true
    antiaffinitygroups:
      enabled: true
    network: "USER_LOAD_BALANCER_PORT_GROUP"

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 GKE On-Prem. 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éé vos fichiers hostconfig et votre fichier de configuration GKE On-Prem, exécutez une vérification préliminaire dans votre fichier de configuration :

gkectl check-config --config [CONFIG_FILE]

[CONFIG_FILE] représente le chemin d'accès de votre fichier de configuration GKE On-Prem.

Si vous avez déjà un cluster d'administrateur et que votre fichier de configuration ne contient que des spécifications usercluster, vous devez inclure le fichier kubeconfig de votre cluster dans la commande :

gkectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] check-config --config [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 GKE On-Prem et à vos fichiers hostconfig. 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 [CONFIG_FILE]

[CONFIG_FILE] représente le chemin de votre fichier de configuration GKE On-Prem.

Créer l'équilibreur de charge

Créez et configurez la ou les VM pour votre équilibreur de charge :

gkectl create loadbalancer --config [CONFIG_FILE]

[CONFIG_FILE] représente le chemin de votre fichier de configuration GKE On-Prem.

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

Créez vos clusters :

gkectl create cluster --config [CONFIG_FILE]

[CONFIG_FILE] représente le chemin de votre fichier de configuration GKE On-Prem.

Si vous avez déjà un cluster d'administrateur et que votre fichier de configuration ne contient que des spécifications usercluster, vous devez inclure le fichier kubeconfig de votre cluster dans la commande :

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

[ADMIN_CLUSTER_KUBECONFIG] représente le chemin d'accès au fichier kubeconfig du cluster d'administrateur.

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 ressources de processeur et de mémoire consommée 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 dotée de 8 processeurs et de 8 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 d'importer 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.

Pour mettre à niveau/à jour l'équilibreur de charge séparément, utilisez le même fichier de configuration que celui que vous comptez utiliser pour mettre à niveau le cluster.

Dans ce fichier de configuration, mettez à jour le champ bundlepath et vérifiez que lbmode est défini sur "Bundled".

Si vous souhaitez modifier les processeurs et la mémoire de vos VM Seesaw, spécifiez les valeurs des champs cpus et memorymb. Sinon, laissez ces champs vides.

Exemple :

lbmode: "Bundled"
bundlepath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.3.2-gke.1-full.tgz"
admincluster:
  loadbalancerconfig:
    cpus: 6
    memorymb: 4096

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

gkectl upgrade loadbalancer --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CLUSTER_CONFIG] --name gke-admin

où :

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

  • [CLUSTER_CONFIG] représente le fichier de configuration du cluster que vous comptez mettre à niveau.

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 exécuter la commande gkectl upgrade loadbalancer ci-dessous pour mettre à jour certains paramètres.

Pour mettre à niveau/à jour l'équilibreur de charge séparément pour un cluster d'utilisateur, suivez la procédure ci-dessous pour mettre à niveau l'équilibreur de charge de votre cluster d'administrateur en apportant ces deux modifications :

  • Dans le fichier de configuration, vérifiez que usercluster.clustername est défini sur le nom du cluster que vous souhaitez mettre à jour. Exemple :

    lbmode: "Bundled"
    bundlepath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.3.2-gke.1-full.tgz"
    usercluster:
      clustername: "my-cluster"
      loadbalancerconfig:
        cpus: 6
        memorymb: 4096
    
  • Dans la commande gkectl upgrade loadbalancer, définissez --name sur le nom du cluster d'utilisateur.

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.

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, ainsi que la VM qui représente le plan de contrôle :

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 Seesaw

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 objet Service
  • VM de plan de contrôle et VM de 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 vous est également 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 sous 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] représente l'adresse IP de l'une de vos VM Seesaw.
  • [SEESAW_VM2_IP] représente 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 de ce cluster. Pour ce faire, supprimez les VM Seesaw dans l'interface utilisateur vSphere.

Vous pouvez également supprimer les VM Seesaw et le fichier de groupe Seesaw en exécutant la commande suivante :

gkectl delete loadbalance --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.