Gérer les équilibreurs de charge

L'appliance Google Distributed Cloud (GDC) sous air gap fournit des équilibreurs de charge qui permettent aux applications d'exposer des services les unes aux autres. Les équilibreurs de charge attribuent une adresse IP virtuelle (VIP) stable qui équilibre le trafic sur un ensemble de charges de travail de backend. Les équilibreurs de charge dans GDC effectuent un équilibrage de charge de couche 4 (L4), ce qui signifie qu'ils mappent un ensemble de ports TCP ou UDP de frontend configurés aux ports de backend correspondants. Les équilibreurs de charge sont configurés au niveau du projet.

Les équilibreurs de charge sont configurés pour les types de charges de travail suivants :

  • Charges de travail exécutées sur des VM.
  • Charges de travail conteneurisées dans le cluster Kubernetes.

Il existe trois façons de configurer des équilibreurs de charge dans GDC :

  • Utilisez l'API Networking Kubernetes Resource Model (KRM). Vous pouvez utiliser cette API pour créer des équilibreurs de charge.
  • Utilisez la CLI gdcloud. Vous pouvez utiliser cette API pour créer des équilibreurs de charge.
  • Utilisez le service Kubernetes directement depuis le cluster Kubernetes. Cette méthode ne crée que des équilibreurs de charge zonaux.

Composants de l'équilibreur de charge

Lorsque vous utilisez l'API KRM ou la CLI gdcloud pour configurer l'équilibreur de charge, vous utilisez un équilibreur de charge de transfert L4 :

  • L4 signifie que le protocole est TCP ou UDP.
  • "Passthrough" signifie qu'il n'y a pas de proxy entre la charge de travail et le client.

L'équilibreur de charge se compose des composants configurables suivants :

  • Règles de transfert : spécifient le trafic à transférer et le service de backend vers lequel le transférer. Les règles de transfert présentent les spécifications suivantes :

    • Il se compose de trois tuples (CIDR, port et protocole) pour l'accès client.
    • Compatible avec les protocoles TCP et UDP.
    • Propose des règles de transfert internes et externes. Les clients peuvent accéder aux règles de transfert internes depuis le cloud privé virtuel (VPC). Les clients peuvent accéder aux règles de transfert externes depuis l'extérieur de la plate-forme GDC ou depuis l'intérieur par des charges de travail dont la valeur EgressNAT est définie.
    • Les règles de transfert se connectent à un service de backend. Vous pouvez faire pointer plusieurs règles de transfert vers le même service de backend.
  • Les services de backend sont le centre d'équilibrage de charge qui relie les règles de transfert, les vérifications de l'état et les backends. Un service de backend fait référence à un objet de backend qui identifie les charges de travail vers lesquelles l'équilibreur de charge transfère le trafic. Il existe des limites concernant les backends auxquels un même service de backend peut faire référence :

    • Une ressource de backend zonal par zone.
    • Une ressource de backend de cluster par cluster. Il ne peut pas être associé aux backends du projet.
  • Backends : objet zonal qui spécifie les points de terminaison servant de backends pour les services de backend créés. Les ressources de backend doivent être limitées à une zone. Sélectionnez des points de terminaison à l'aide de libellés. Définissez le champ d'application du sélecteur sur un projet ou un cluster :

    • Un backend de projet est un backend pour lequel le champ ClusterName n'est pas spécifié. Dans ce cas, les libellés spécifiés s'appliquent à toutes les charges de travail du projet spécifique, dans le VPC spécifique d'une zone. Les libellés sont appliqués aux charges de travail des VM et des pods sur plusieurs clusters. Lorsqu'un service de backend utilise un backend de projet, vous ne pouvez pas référencer un autre backend pour cette zone dans ce service de backend.

    • Un backend de cluster est un backend dont le champ ClusterName est spécifié. Dans ce cas, les libellés spécifiés s'appliquent à toutes les charges de travail du cluster nommé dans le projet spécifié. Vous pouvez spécifier au maximum un backend par zone et par cluster dans un même service de backend.

  • Vérifications de l'état : spécifiez les sondes permettant de déterminer si un point de terminaison de charge de travail donné dans le backend est opérationnel. Le point de terminaison non opérationnel est retiré de l'équilibreur de charge jusqu'à ce qu'il redevienne opérationnel. Les vérifications de l'état ne s'appliquent qu'aux charges de travail de VM. Les charges de travail des pods peuvent utiliser le mécanisme de sonde Kubernetes intégré pour déterminer si un point de terminaison spécifique est sain.

Lorsque vous utilisez directement le service Kubernetes, vous utilisez l'objet Service au lieu des composants listés précédemment. Vous ne pouvez cibler que les charges de travail du cluster dans lequel l'objet Service est créé.

Équilibrage de charge externe et interne

Les applications GDC ont accès aux types de services réseau suivants :

  • Équilibreur de charge interne (ILB) : vous permet d'exposer un service à d'autres clusters de l'organisation.
  • Équilibreur de charge externe (ELB) : alloue une adresse IP virtuelle à partir d'une plage routable à partir de charges de travail externes et expose les services en dehors de l'organisation GDC, tels que d'autres organisations à l'intérieur ou à l'extérieur de l'instance GDC.

Adresses IP virtuelles de service

Les équilibreurs de charge internes attribuent des adresses IP virtuelles qui sont internes à l'organisation. Ces adresses IP virtuelles ne sont pas accessibles depuis l'extérieur de l'organisation. Vous ne pouvez donc les utiliser que pour exposer des services à d'autres applications au sein d'une organisation. Ces adresses IP peuvent se chevaucher entre les organisations d'une même instance.

En revanche, les ELB allouent des adresses IP virtuelles accessibles en externe depuis l'extérieur de l'organisation. C'est pourquoi les adresses VIP ELB doivent être uniques pour toutes les organisations. En général, moins d'adresses IP virtuelles ELB seront disponibles pour l'organisation.

Étapes suivantes