Exposer des applications en conteneur
Sur Compute Cloud@Customer, vous pouvez exposer un déploiement d'application afin que les applications de noeud de processus actif puissent être atteintes depuis l'extérieur de l'infrastructure.
Pour afficher les applications de noeud de processus actif en dehors de l'infrastructure, procédez comme suit :
-
Créez un équilibreur de charge externe.
-
Mettez à jour les règles entrantes et sortantes si nécessaire pour prendre en charge les exigences de port des applications en conteneur. Par exemple, si une application utilise le port TCP 3000, une règle entrante doit être ajoutée avec le port 3000.
Création d'un équilibreur de charge externe
Un équilibreur de charge externe est un service de type LoadBalancer. Le service fournit un équilibrage de 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 indiquer les balises à appliquer aux équilibreurs de charge externes, assurez-vous que le groupe dynamique applicable inclut la stratégie suivante. Reportez-vous à Création d'un groupe dynamique de cluster et de stratégies.
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: vous devez également fournir des annotationsflex-minetflex-max.
Vous devrez peut-être modifier le fichier de déploiement d'application pour modifier la valeur de forme de l'équilibreur de charge. Pour plus d'informations et d'exemples sur la définition de ces valeurs, reportez-vous à Spécification de formes d'équilibreur de charge alternatives et à Spécification de formes d'équilibreur de charge flexibles.
Pour créer un équilibreur de charge de service sur un cluster privé (cluster avec un sous-réseau d'équilibreur de charge de processus actif privé), utilisez l'annotation suivante dans le modèle d'équilibreur de charge externe :
service.beta.kubernetes.io/oci-load-balancer-internal: "true"
Pour créer l'équilibreur de charge externe, utilisez la commande suivante :
# kubectl create -f expose_lbLe 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: nginxLa 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, l'adresse IP entrante LoadBalancer apparaît 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 balancerPour une description des stratégies de trafic, reportez-vous à Conservation de l'adresse IP source du client.
Utilisez la commande suivante pour répertorier 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 5h5mProchaine étape :