Exposition d'applications conteneurisées

Procédez de la façon suivante pour exposer un déploiement d'application afin que les applications de noeud de travail puissent être accessibles à partir de l'extérieur de Compute Cloud@Customer :

  • Créez un équilibreur de charge externe.

  • Mettre à jour les règles de trafic entrant et sortant si nécessaire pour prendre en charge les exigences de port de vos applications en conteneur. Par exemple, si une application utilise le port TCP 3000, une règle de trafic entrant doit être ajoutée avec le port 3000.

Créer un équilibreur de charge externe

Un équilibreur de charge externe est un service de type LoadBalancer. Le service assure l'équilibrage de la charge pour une application qui a plusieurs instances en cours d'exécution.

Si vous utilisez les options --service-lb-defined-tags ou --service-lb-flexible-tags pour spécifier des marqueurs à appliquer aux équilibreurs de charge externes, assurez-vous que le groupe dynamique applicable inclut la politique suivante. Voir Créer un groupe dynamique et des politiques de grappe.

allow dynamic-group dynamic-group-name to use tag-namespaces in compartment compartment-name

Assurez-vous que le paramètre de forme de l'équilibreur de charge a l'une des valeurs suivantes :

  • 400Mbps
  • flexible - Exige que vous fournissiez également des annotations flex-min et flex-max.

Vous devrez peut-être modifier le fichier de déploiement d'application pour modifier la valeur de la forme de l'équilibreur de charge. Pour plus d'informations et des exemples sur la définition de ces valeurs, voir Spécification d'autres formes d'équilibreur de charge et Spécification de formes d'équilibreur de charge flexibles.

Pour créer un équilibreur de charge de service sur une grappe privée (grappe avec un sous-réseau d'équilibreurs de charge de travail privé), utilisez l'annotation suivante dans votre modèle d'équilibreur de charge externe :

service.beta.kubernetes.io/oci-load-balancer-internal: "true"

Utilisez la commande suivante pour créer l'équilibreur de charge externe :

# kubectl create -f expose_lb

Le contenu du fichier expose_lb est le suivant :

apiVersion: v1
kind: Service
metadata:
  name: my-nginx-svc
  labels:
    app: nginx
  annotations:
    oci.oraclecloud.com/load-balancer-type: "lb"
    service.beta.kubernetes.io/oci-load-balancer-shape: "400Mbps"
spec:
  type: LoadBalancer
  ports:
   - port: 80
  selector:
    app: nginx

La commande suivante affiche plus d'informations sur cet équilibreur de charge externe. L'adresse IP entrante LoadBalancer est l'adresse IP utilisée pour atteindre les applications de noeud à partir de l'extérieur de Compute Cloud@Customer. Dans la console Cloud@Customer de calcul, l'adresse IP entrante LoadBalancer est affichée sous l'en-tête "Adresse IP" au bas de la première colonne de la page de détails de l'équilibreur de charge, suivie de l'étiquette "(Public)."

# kubectl describe svc my-nginx-svc
Name:                     my-nginx-svc
Namespace:                default
Labels:                   app=nginx
Annotations:              oci.oraclecloud.com/load-balancer-type: lb
                          service.beta.kubernetes.io/oci-load-balancer-shape: 400Mbps
Selector:                 app=nginx
Type:                     LoadBalancer
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       IP_address
IPs:                      IP_address
LoadBalancer Ingress:     Load_Balancer_IP_address
Port:                     <unset> 80/TCP
TargetPort:               80/TCP
NodePort:                 <unset> 32145/TCP
Endpoints:                IP_address:port, IP_address+1:port, IP_address+2:port
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason                Age    From                Message
  ----
  Normal  EnsuringLoadBalancer  7m48s  service-controller  Ensuring load balancer
  Normal  EnsuredLoadBalancer   6m40s  service-controller  Ensured load balancer

Pour une description des politiques de trafic, voir Conservation de l'adresse IP source du client.

Utilisez la commande suivante pour lister les adresses IP et les ports de l'équilibreur de charge externe :

# kubectl get svc
NAME          TYPE          CLUSTER-IP  EXTERNAL-IP               PORT(S)       AGE
kubernetes    ClusterIP     IP_address  <none>                    443/TCP       6h17m
my-nginx-svc  LoadBalancer  IP_address
         Load_Balancer_IP_address  80:32145/TCP  5h5m

Étape suivante :

Ajout de stockage pour les applications conteneurisées