CloudSigma PaaS ermöglicht es Benutzern, ihre Anwendungen über eine öffentliche IP-Adresse bereitzustellen. Diese Adresse muss an einen Knoten aus der Kubernetes-Cluster-Umgebung angehängt werden. Es gibt zwei Möglichkeiten, dies in der CloudSigma PaaS-Umgebung zu erreichen:
- Eine Möglichkeit besteht darin, die öffentliche IP an einen dedizierten Load Balancer anzuhängen.

- Eine andere Möglichkeit besteht darin, die öffentliche IP an einen Worker-Knoten von Kubernetes anzuhängen.
In dieser Anleitung zeigen wir Ihnen, wie Sie über einen dieser beiden Ansätze Zugriff auf die Kubernetes-Anwendung erhalten.
Einrichten eines dedizierten Load Balancers für den Zugriff auf Kubernetes-Anwendungen
Zuerst lernen wir, wie man einen dedizierten Load Balancer für den Anwendungszugriff einrichtet:
- Gehen Sie zum CloudSigma Marketplace, um das Kubernetes-Cluster zu finden und zu installieren. Stellen Sie dann Ihre Anwendung bereit. Als Beispiel werden wir den Jakarta EE Cargo Tracker.
- Suchen und klicken Sie neben Ihrem Kubernetes-Cluster auf Umgebungstopologie ändern. Fügen Sie im sich öffnenden Fenster einen dedizierten Load-Balancer-Knoten hinzu. Hängen Sie dann eine öffentliche IP-Adresse wie folgt daran an:

In unserem Beispiel haben wir den NGINX-Load-Balancer-Knoten verwendet. Es stehen mehrere andere Load Balancer zur Verfügung, darunter HAProxy, LS Web ADC und Varnish. Sie können denjenigen wählen, den Sie bevorzugen.
Wenn Sie mit der Änderung der Topologie fertig sind, sehen die angewendeten Änderungen wie folgt aus:


3. Der nächste Schritt besteht darin, einen A-Eintrag für eine benutzerdefinierte Domain zu erstellen. Sie verwenden dieselbe öffentliche IP-Adresse, die Sie in den vorherigen Schritten verwendet haben. In diesem Beispiel verwenden wir cargo-tracker.cloudsigma.website:

4. Jetzt können wir unsere benutzerdefinierte Domain an das K8s-Cluster anhängen. Dazu senden wir eine Anfrage zur Ausstellung eines vertrauenswürdigen Let’s Encrypt SSL-Zertifikats:
- Bewegen Sie den Mauszeiger über den Load Balancer und klicken Sie auf Add-Ons.
- Suchen und installieren Sie Let’s Encrypt Free SSL:

- Geben Sie in der Konfiguration Ihren benutzerdefinierten Domainnamen ein und klicken Sie dann auf Installieren. In unserem Fall lautet der Domainname wie folgt:

Schließlich haben wir nun unsere Anwendung so eingerichtet, dass wir über die benutzerdefinierte Domain https://cargo-tracker.cloudsigma.website darauf zugreifen können. Wir haben auch den Datenverkehr unserer Anwendung mit einem gültigen und vertrauenswürdigen Let’s Encrypt SSL-Zertifikat verschlüsselt.
Zugriff auf die Anwendung über die öffentliche IP-Adresse des Kubernetes-Worker-Knotens erhalten
Als Nächstes betrachten wir den alternativen Ansatz, den Sie wählen können, um die Anwendung außerhalb des Kubernetes-Clusters verfügbar zu machen. Im Wesentlichen lernen wir, wie man eine öffentliche IP-Adresse an einen Worker-Knoten im Kubernetes-Cluster anhängt, um die App direkt zugänglich zu machen:
Fahren wir mit demselben Beispiel fort, das wir Ihnen zuvor gezeigt haben. Wir verwenden dasselbe Cluster, auf dem wir unsere Cargo Tracker-Anwendung bereitgestellt haben. So gehen Sie vor:
1. Klicken Sie auf Umgebungstopologie ändern. Fügen Sie die öffentliche IP-Adresse zum Worker-Knoten hinzu:

2. Erstellen Sie als Nächstes einen A-Eintrag für Ihre benutzerdefinierte Domain und weisen Sie ihn der soeben hinzugefügten IP zu. Stellen Sie sicher, dass Sie einen Domainnamen verwenden, der sich von dem im vorherigen Kapitel verwendeten unterscheidet. Wir verwenden beispielsweise den folgenden Domainnamen: cargo-tracker-worker.cloudsigma.website:

3. Bewegen Sie den Mauszeiger über die Control Plane oder den Master-Knoten und klicken Sie auf Add-Ons. Suchen und installieren Sie Certificate Manager. Dadurch sollte ein cert-manager-Controller zusammen mit einem NGINX-Ingress-Controller mit dem Service-Typ LoadBalancer installiert werden. Letzterer enthält die IP-Adresse, die Ihrem Worker-Knoten zugeordnet ist. Er wird die Ingress-Klassen-Ressourcen „nginx-cert“ bedienen:

4. Geben Sie in das entsprechende Feld Ihren bevorzugten Domainnamen ein und klicken Sie auf Anwenden:

5. Zum Zeitpunkt der Installation installiert das Add-on auch eine Testanwendung namens helloworld-cert. Sie können die von ihr verwendeten Ressourcen einfach mit diesen Befehlen löschen:
|
1 2 3 4 5 |
$ kubectl delete deploy hello-cert-manager $ kubectl delete svc hello-cert-manager $ kubectl delete ing helloworld-cert |
Diese Befehle sollten eingegeben und ausgeführt werden über SSH (SFTP) oder das Web SSH Gate der Control Plane oder des Master-Knotens. Bewegen Sie den Mauszeiger über den Knoten und klicken Sie auf die Web SSH -Option daneben, um auf das Gate zuzugreifen.
Die andere Möglichkeit besteht darin, den Mauszeiger über die Control Plane oder Master Node zu bewegen und auf Config zu klicken. Gehen Sie von hier aus zum SFTP/SSH Gate und folgen Sie den Anweisungen.
6. Um den SSL-Verkehr der Anwendung zu beenden und das Routing zum cargo-tracker-Dienst zu verwalten, müssen wir eine Ingress-Ressource namens cargo-tracker-worker. erstellen. Nehmen wir an, wir verwenden cargo-tracker-worker-ingress.yaml. Sie können einen Editor wie vi verwenden, um eine Datei zu erstellen und dann den folgenden Code einzufügen:
|
1 |
vi cargo-tracker-worker-ingress.yaml |
Gehen Sie danach wie folgt vor:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cargo-tracker-worker namespace: default annotations: kubernetes.io/ingress.class: nginx-cert cert-manager.io/cluster-issuer: "letsencrypt-prod" kubernetes.io/tls-acme: "true" nginx.ingress.kubernetes.io/affinity: "cookie" nginx.ingress.kubernetes.io/affinity-mode: "persistent" nginx.ingress.kubernetes.io/session-cookie-expires: "172800" nginx.ingress.kubernetes.io/session-cookie-max-age: "172800" spec: tls: - hosts: - cargo-tracker-worker.cloudsigma.website secretName: external-domain-tls rules: - host: cargo-tracker-worker.cloudsigma.website http: paths: - path: / pathType: ImplementationSpecific backend: service: name: cargo-tracker port: number: 80 |
|
1 |
$ kubectl apply -f cargo-tracker-worker-ingress.yaml |
7. Wenn Sie diesen Ingress erstellen, stellt der Certificate Manager automatisch ein Let’s Encrypt SSL-Zertifikat für Ihren neuen Domainnamen aus. Geben Sie dem System ein oder zwei Minuten Zeit, bevor Sie überprüfen, ob Ihre App unter dem neuen benutzerdefinierten Domainnamen verfügbar ist, der in unserem Fall https://cargo-tracker-worker.cloudsigma.website lautet.
Und voilà! Wenn Sie diese Schritte befolgen, haben Sie Ihre Anwendung mit zwei verschiedenen Ansätzen bereitgestellt. Als Ergebnis sehen Sie zwei Ingresses. In unserem Fall sind dies:
- cargo-tracker
Dieser Ingress bedient den Anwendungsdatenverkehr, der über die öffentliche IP Ihres dedizierten Load Balancers eingeht.
- cargo-tracker-worker
Dieser Ingress ist so konfiguriert, dass er den Anwendungsdatenverkehr bedient, der direkt von der IP-Adresse eingeht, die dem K8s-Worker-Knoten zugewiesen ist.
So werden sie angezeigt:

Je nachdem, für welche Art von Implementierung Sie sich entscheiden, benötigen Sie in der Produktion nur einen Ingress. CloudSigma PaaS bietet seinen Nutzern Zugriff auf eine Reihe von Tools zur Durchführung von Lastverteilung wie es von ihren Anwendungen benötigt wird. Lesen Sie gerne mehr über Lastverteilung auf der Plattform. Wir haben auch detaillierte Anleitungen zu den Grundlagen der Lastverteilung mit Tools wie NGINX und HAProxy und anderen verfügbaren Tools.
Sie können CloudSigma’s PaaS mit unserer 7-tägigen kostenlosen Testversion testen oder uns kontaktieren, wenn Sie möchten, dass wir Ihnen weitere Details und eine Plattform-Demo zur Verfügung stellen.

Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.