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 auchflex-min
- undflex-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: