Configurer des équilibreurs de charge externes

Les équilibreurs de charge externes (ELB) exposent les services en dehors du projet à partir des adresses IP d'un pool attribué au projet à partir du pool d'adresses IP externes des instances plus vaste.

Les adresses IP virtuelles (VIP) ELB ne sont pas en conflit entre les organisations et sont uniques pour toutes les organisations. Pour cette raison, vous ne devez utiliser les services ELB que pour les services auxquels les clients en dehors du projet doivent nécessairement accéder.

Les charges de travail exécutées dans le projet peuvent accéder aux services ELB à condition que vous leur permettiez de quitter le projet. Ce modèle de trafic nécessite effectivement un trafic sortant du projet avant de revenir au service interne.

Avant de commencer

Pour configurer les services ELB, vous devez disposer des éléments suivants :

  • Être propriétaire du projet pour lequel vous configurez l'équilibreur de charge. Pour en savoir plus, consultez Créer un projet.
  • Règle d'entrée ProjectNetworkPolicy (PNP) personnalisée pour autoriser le trafic vers ce service ELB. Pour en savoir plus, consultez Configurer PNP pour autoriser le trafic vers ELB.
  • Rôles d'identité et d'accès nécessaires :

    • Administrateur NetworkPolicy du projet : a accès à la gestion des règles réseau du projet dans l'espace de noms du projet. Demandez à votre administrateur IAM de l'organisation de vous accorder le rôle Administrateur NetworkPolicy du projet (project-networkpolicy-admin).
    • Administrateur de l'équilibreur de charge : demandez à l'administrateur IAM de votre organisation de vous attribuer le rôle Administrateur de l'équilibreur de charge (load-balancer-admin).

Configurer PNP pour autoriser le trafic vers ELB

Pour que les services ELB fonctionnent, vous devez configurer et appliquer votre propre règle d'entrée ProjectNetworkPolicy personnalisée afin d'autoriser le trafic vers ce service ELB. Spécifiez l'adresse CIDR externe pour autoriser le trafic vers cet ELB :

kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF
apiVersion: networking.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
  namespace: PROJECT
  name: allow-inbound-traffic-from-external
spec:
  policyType: Ingress
  subject:
    subjectType: UserWorkload
  ingress:
  - from:
    - ipBlock:
        cidr: CIDR
    ports:
    - protocol: TCP
      port: PORT
EOF

Remplacez les éléments suivants :

  • MANAGEMENT_API_SERVER : chemin kubeconfig du serveur kubeconfig de l'API Management. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API dans votre zone cible, consultez Se connecter pour en savoir plus.
  • PROJECT : nom de votre projet GDC.
  • CIDR : CIDR externe à partir duquel l'ELB doit être accessible. Cette règle est requise, car l'équilibreur de charge externe utilise le retour direct du serveur (DSR, Direct Server Return), qui préserve l'adresse IP externe source et contourne l'équilibreur de charge sur le chemin de retour.
  • PORT : port de backend sur les pods situés derrière l'équilibreur de charge. Cette valeur se trouve dans le champ .spec.ports[].targetPort du fichier manifeste de la ressource Service.

Créer un équilibreur de charge externe

Créez des ELB à l'aide de trois méthodes différentes dans GDC :

Vous pouvez cibler des charges de travail de pods ou de VM à l'aide de l'API KRM et de la CLI gdcloud. Lorsque vous utilisez le service Kubernetes directement dans le cluster Kubernetes, vous ne pouvez cibler que les charges de travail du cluster dans lequel l'objet Service est créé.