Créer des load balancers dans OKS

Vos clients peuvent accéder librement à vos clusters grâce aux load balancers OKS. Un load balancer OKS est un point d’entrée d’un cluster Kubernetes. Il détecte les demandes de création de load balancer dans les manifestes qui sont appliqués au cluster, crée le Load Balancing Unit (LBU) correspondant, et attache ce nouveau LBU à votre cluster.

Pour en savoir plus sur les load balancers, voir Load Balancing Unit (LBU).

Créer un load balancer

Pour créer un load balancer, vous devez attacher les annotations nécessaires à vos manifestes.

Dans l’exemple suivant, nous allons créer un load balancer basique autorisant l’accès HTTPS aux ressources du cluster.

Cette micro-application surveillerait les requêtes HTTP sur le port TCP 80 et renverrait les en-têtes de requête reçus en réponse :

Exemple de réponse
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: echoheaders
  namespace: default
  labels:
    app: echoheaders
spec:
  replicas: 1
  selector:
    matchLabels:
      app: echoheaders
  template:
    metadata:
      labels:
        app: echoheaders
    spec:
      containers:
      - name: echoheaders
        image: gcr.io/google_containers/echoserver:1.10
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
          protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: echoheaders-lb-public
  namespace: default
  labels:
    app: echoheaders
  annotations:
    service.beta.kubernetes.io/osc-load-balancer-name: "simple-lb-test"
spec:
  ports:
  - port: 80
    name: http
    protocol: TCP
    targetPort: 8080
  selector:
    app: echoheaders
  type: LoadBalancer

Utiliser des annotations dans vos load balancers

Le tableau ci-dessous liste les différentes annotations supportées par vos load balancers OKS.

Sauf indication spécifique, les listes doivent être séparées par des virgules.

Annotation Mutabilité Description Valeur par défaut

service.beta.kubernetes.io/osc-load-balancer-name

Non

Le nom du load balancer.

namespace_of_service-name_of_service

Au-delà de 31 caractères, la valeur est tronquée.

service.beta.kubernetes.io/osc-load-balancer-scheme

Non

Le schéma (ou type) du load balancer.

internet-facing

Cette valeur peut être soit internet-facing, soit internal.

service.beta.kubernetes.io/osc-load-balancer-target-node-pools

Oui

La liste des node pools à utiliser comme VM backend sur le LBU.

Par exemple : worker-pool-1,worker-pool-2, power-nodes-pool.

* (tous les node pools)

service.beta.kubernetes.io/osc-load-balancer-additional-resource-tags

Oui

La liste des paires clé-valeur à enregistrer comme tags additionnels dans le ELB.

Par exemple : Key1=Val1,Key2=Val2,KeyNoVal1=,KeyNoVal2.

Aucune

service.beta.kubernetes.io/osc-load-balancer-source-ranges

Plutôt que d’utiliser cette annotation, vous pouvez spécifier les CIDR dans le service spec.LoadBalancerSourceRanges pour pouvoir utiliser le validateur Kubernetes.

Oui

La liste des CIDR autorisées à accéder au load balancer.

0.0.0.0/0 (Toutes les IP)

service.beta.kubernetes.io/osc-load-balancer-healthcheck-interval

Oui

La durée entre deux requêtes de health check (entre 5 et 600 secondes).

30

service.beta.kubernetes.io/osc-load-balancer-healthcheck-healthy-threshold

Oui

Le nombre de requêtes de health check qui doivent réussir de manière consécutive pour considérer le nœud comme sain (entre 2 et 10).

10

service.beta.kubernetes.io/osc-load-balancer-healthcheck-path

Oui

Le chemin d’accès facultatif vers l’URL pour les requêtes de health check, uniquement utilisé pour les protocoles de health check HTTP ou HTTPS.

Par exemple : /healthz.

Aucune

service.beta.kubernetes.io/osc-load-balancer-healthcheck-port

Oui

Le numéro de port pour les requêtes de health check (entre 1 et 65 535).

Automatiquement attribué au nodePort du service.

service.beta.kubernetes.io/osc-load-balancer-healthcheck-protocol

Oui

Le protocole pour les requêtes de health check (parmi HTTP/HTTPS/TCP/SSL).

Automatiquement assigné au protocole du service.

service.beta.kubernetes.io/osc-load-balancer-healthcheck-timeout

Oui

Le temps d’attente maximum d’une réponse avant de considérer le nœud comme non sain (entre 2 et 60 secondes).

5

service.beta.kubernetes.io/osc-load-balancer-healthcheck-unhealthy-threshold

Oui

Le nombre de requêtes de health check qui doivent échouer de manière consécutive pour considérer le nœud comme non sain (entre 2 et 10).

2

Pages connexes