Containerisierte Anwendungen bereitstellen

Gehen Sie wie folgt vor, um ein Anwendungs-Deployment bereitzustellen, damit Worker-Knotenanwendungen von außerhalb von Compute Cloud@Customer erreicht werden können:

  • Externen Load Balancer erstellen

  • Aktualisieren Sie die Ingress- und Egress-Regeln nach Bedarf, um die Portanforderungen Ihrer containerisierten Anwendungen zu unterstützen. Beispiel: Wenn eine Anwendung TCP-Port 3000 verwendet, muss eine Ingress-Regel mit Port 3000 hinzugefügt werden.

Externen Load Balancer erstellen

Ein externer Load Balancer ist ein Service vom Typ LoadBalancer. Der Service bietet Load Balancing für eine Anwendung mit mehreren ausgeführten Instanzen.

Wenn Sie die Optionen --service-lb-defined-tags oder --service-lb-flexible-tags verwenden, um Tags anzugeben, die auf externe Load Balancer angewendet werden sollen. Stellen Sie dann sicher, dass die anwendbare dynamische Gruppe die folgende Policy enthält. Siehe Dynamische Clustergruppe und Policys erstellen.

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

Stellen Sie sicher, dass der Load Balancer-Ausprägungsparameter einen der folgenden Werte aufweist:

  • 400Mbps
  • flexible: Sie müssen auch flex-min- und flex-max-Annotationen angeben.

Möglicherweise müssen Sie die Anwendungs-Deployment-Datei bearbeiten, um den Load Balancer-Ausprägungswert zu ändern. Weitere Informationen und Beispiele zum Festlegen dieser Werte finden Sie unter Alternative Load-Balancer-Ausprägungen angeben und Flexible Load-Balancer-Ausprägungen angeben.

Um einen Service-Load Balancer in einem privaten Cluster (ein Cluster mit einem privaten Worker-Load-Balancer-Subnetz) zu erstellen, verwenden Sie die folgende Annotation in Ihrer externen Load-Balancer-Vorlage:

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

Verwenden Sie den folgenden Befehl, um den externen Load Balancer zu erstellen:

# kubectl create -f expose_lb

Der Inhalt der Datei expose_lb lautet wie folgt:

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

Der folgende Befehl zeigt weitere Informationen zu diesem externen Load Balancer an. Die Ingress-IP-Adresse LoadBalancer ist die IP-Adresse, mit der Knotenanwendungen von außerhalb von Compute Cloud@Customer erreicht werden. In der Compute Cloud@Customer-Konsole wird die Ingress-IP-Adresse LoadBalancer unter der Überschrift "IP-Adresse" unten in der ersten Spalte auf der Detailseite des Load Balancers angezeigt, gefolgt vom Label "(Öffentlich)."

# 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

Eine Beschreibung der Traffic-Policys finden Sie unter Clientquell-IP reservieren.

Mit dem folgenden Befehl können Sie IP-Adressen und Ports für den externen Load Balancer auflisten:

# 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

Weitere Schritte:

Speicher für containerisierte Anwendungen hinzufügen