CloudSigma PaaS επιτρέπει στους χρήστες να εκθέτουν τις εφαρμογές τους χρησιμοποιώντας μια δημόσια διεύθυνση IP. Αυτή η διεύθυνση πρέπει να συνδεθεί σε έναν κόμβο από το Kubernetes cluster περιβάλλον. Υπάρχουν δύο τρόποι για να το επιτύχετε αυτό στο περιβάλλον CloudSigma PaaS:
- Ο ένας τρόπος είναι να συνδέσετε τη δημόσια IP σε έναν αποκλειστικό load balancer.

- Ένας άλλος τρόπος είναι να συνδέσετε τη δημόσια IP σε έναν Worker κόμβο από το Kubernetes.
Σε αυτόν τον οδηγό, θα σας καθοδηγήσουμε για το πώς να αποκτήσετε πρόσβαση στην εφαρμογή Kubernetes χρησιμοποιώντας οποιαδήποτε από αυτές τις προσεγγίσεις.
Ρύθμιση ενός αποκλειστικού Load Balancer για πρόσβαση στην εφαρμογή Kubernetes
Αρχικά, θα μάθουμε πώς να ρυθμίζουμε έναν dedicated load balancer για πρόσβαση στην εφαρμογή:
- Μεταβείτε στο CloudSigma Marketplace για να εντοπίσετε και να εγκαταστήσετε το Kubernetes cluster. Στη συνέχεια, αναπτύξτε την εφαρμογή σας. Ως παράδειγμα, θα αναπτύξουμε το Jakarta EE Cargo Tracker.
- Δίπλα στο Kubernetes cluster σας, βρείτε και κάντε κλικ στο Change Environment Topology. Στο παράθυρο που ανοίγει στην οθόνη σας, προσθέστε έναν κόμβο Dedicated Load Balancer. Στη συνέχεια, συνδέστε μια δημόσια διεύθυνση IP σε αυτόν ως εξής:

Στο παράδειγμά μας, χρησιμοποιήσαμε τον NGINX load balancer κόμβο. Υπάρχουν πολλοί άλλοι διαθέσιμοι load balancers, συμπεριλαμβανομένων των HAProxy, LS Web ADC, και Varnish. Μπορείτε να επιλέξετε όποιον προτιμάτε να χρησιμοποιήσετε.
Όταν ολοκληρώσετε την τροποποίηση της τοπολογίας, οι αλλαγές που εφαρμόστηκαν θα μοιάζουν με αυτό:


3. Το επόμενο βήμα είναι να δημιουργήσετε μια εγγραφή A για ένα custom domain. Θα χρησιμοποιήσετε την ίδια δημόσια διεύθυνση IP που χρησιμοποιήσατε στα προηγούμενα βήματα. Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε το cargo-tracker.cloudsigma.website:

4. Τώρα μπορούμε να συνδέσουμε το custom domain μας στο K8s cluster. Για να το κάνουμε αυτό, θα στείλουμε ένα αίτημα για την έκδοση ενός έμπιστου Let’s Encrypt SSL πιστοποιητικού:
- Περάστε το ποντίκι πάνω από το Load Balancer και κάντε κλικ στο Add-Ons.
- Βρείτε και εγκαταστήστε το Let’s Encrypt Free SSL:

- Στη διαμόρφωση, εισαγάγετε το custom domain name σας και, στη συνέχεια, κάντε κλικ στο Install. Στη δική μας περίπτωση, το domain name είναι το εξής:

Τελικά, έχουμε πλέον κάνει την εφαρμογή μας προσβάσιμη χρησιμοποιώντας το custom domain https://cargo-tracker.cloudsigma.website. Έχουμε επίσης κρυπτογραφήσει την κίνηση στην εφαρμογή μας με ένα έγκυρο και έμπιστο πιστοποιητικό Let’s Encrypt SSL.
Απόκτηση πρόσβασης στην εφαρμογή χρησιμοποιώντας τη δημόσια διεύθυνση IP του Kubernetes Worker Node
Στη συνέχεια, θα εξετάσουμε την εναλλακτική προσέγγιση που μπορείτε να ακολουθήσετε για να κάνετε την εφαρμογή διαθέσιμη εκτός του Kubernetes cluster. Ουσιαστικά, θα μάθουμε πώς να συνδέσουμε μια δημόσια διεύθυνση IP σε έναν worker κόμβο στο Kubernetes cluster, προκειμένου να κάνουμε την εφαρμογή άμεσα προσβάσιμη:
Ας συνεχίσουμε με το ίδιο παράδειγμα που σας δείξαμε προηγουμένως. Θα χρησιμοποιήσουμε το ίδιο cluster στο οποίο αναπτύξαμε την εφαρμογή Cargo Tracker. Δείτε πώς να προχωρήσετε:
1. Κάντε κλικ στο Change Environment Topology. Προσθέστε τη δημόσια διεύθυνση IP στον worker κόμβο:

2. Στη συνέχεια, δημιουργήστε μια εγγραφή A για το custom domain σας και αντιστοιχίστε τη στην IP που μόλις προσθέσατε. Βεβαιωθείτε ότι χρησιμοποιείτε ένα domain name διαφορετικό από αυτό που χρησιμοποιήθηκε στο προηγούμενο κεφάλαιο. Για παράδειγμα, θα χρησιμοποιήσουμε το ακόλουθο domain name: cargo-tracker-worker.cloudsigma.website:

3. Περάστε το ποντίκι πάνω από το Control Plane ή τον Master κόμβο και κάντε κλικ στο Add-Ons. Εντοπίστε και εγκαταστήστε το Certificate Manager. Αυτό θα εγκαταστήσει έναν ελεγκτή cert-manager μαζί με έναν ελεγκτή εισόδου NGINX με τύπο υπηρεσίας LoadBalancer. Ο τελευταίος περιέχει τη διεύθυνση IP που σχετίζεται με τον worker κόμβο σας. Θα εξυπηρετεί τους πόρους κλάσης εισόδου «nginx-cert»:

4. Στο συγκεκριμένο πεδίο, εισαγάγετε το domain name της προτίμησής σας και κάντε κλικ στο Apply:

5. Κατά τη διάρκεια της εγκατάστασης, το πρόσθετο εγκαθιστά επίσης μια δοκιμαστική εφαρμογή που ονομάζεται helloworld-cert. Μπορείτε απλά να διαγράψετε τους πόρους που χρησιμοποιεί με αυτές τις εντολές:
|
1 2 3 4 5 |
$ kubectl delete deploy hello-cert-manager $ kubectl delete svc hello-cert-manager $ kubectl delete ing helloworld-cert |
Αυτές οι εντολές πρέπει να εισαχθούν και να εκτελεστούν χρησιμοποιώντας SSH (SFTP) ή το Web SSH Gate του Control Plane ή του Master Node. Περάστε το ποντίκι πάνω από τον κόμβο και κάντε κλικ στο Web SSH επιλογή δίπλα του για να αποκτήσετε πρόσβαση στην πύλη.
Η άλλη επιλογή είναι να περάσετε το ποντίκι πάνω από το Control Plane ή Master Node και να κάνετε κλικ στο Config. Από εδώ, μεταβείτε στο SFTP/SSH Gate και ακολουθήστε τις οδηγίες που δίνονται.
6. Για να τερματίσουμε την κίνηση SSL της εφαρμογής και να διαχειριστούμε τη δρομολόγηση προς την υπηρεσία cargo-tracker, πρέπει να δημιουργήσουμε έναν πόρο ingress που ονομάζεται cargo-tracker-worker. Ας υποθέσουμε ότι χρησιμοποιούμε το cargo-tracker-worker-ingress.yaml. Μπορείτε να χρησιμοποιήσετε έναν επεξεργαστή κειμένου όπως το vi για να δημιουργήσετε ένα αρχείο και στη συνέχεια να επικολλήσετε τον ακόλουθο κώδικα:
|
1 |
vi cargo-tracker-worker-ingress.yaml |
Μετά από αυτό, προχωρήστε ως εξής:
|
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. Όταν δημιουργήσετε αυτό το ingress, ο Certificate Manager θα εκδώσει αυτόματα ένα πιστοποιητικό Let’s Encrypt SSL για το νέο σας όνομα τομέα. Δώστε στο σύστημα ένα ή δύο λεπτά προτού ελέγξετε αν η εφαρμογή σας είναι διαθέσιμη στο νέο προσαρμοσμένο όνομα τομέα, το οποίο είναι https://cargo-tracker-worker.cloudsigma.website στη δική μας περίπτωση.
Και ορίστε! Ακολουθώντας αυτά τα βήματα, έχετε εκθέσει την εφαρμογή σας χρησιμοποιώντας δύο διαφορετικές προσεγγίσεις. Ως αποτέλεσμα, θα δείτε δύο ingresses. Για εμάς, είναι:
- cargo-tracker
Αυτό το ingress εξυπηρετεί την κίνηση της εφαρμογής που έρχεται μέσω της δημόσιας IP του αποκλειστικού σας load balancer.
- cargo-tracker-worker
Αυτό το ingress έχει ρυθμιστεί να εξυπηρετεί την κίνηση της εφαρμογής που ρέει απευθείας από την IP που είναι συνδεδεμένη στον κόμβο εργασίας (worker node) του K8s.
Δείτε πώς θα εμφανίζονται:

Ανάλογα με το είδος της υλοποίησης που θα επιλέξετε, θα χρειαστείτε μόνο ένα ingress στην παραγωγή. Το CloudSigma PaaS παρέχει στους χρήστες του πρόσβαση σε μια σειρά εργαλείων για την εκτέλεση εξισορρόπησης φορτίου όπως απαιτείται από τις εφαρμογές τους. Μη διστάσετε να διαβάσετε και να μάθετε περισσότερα σχετικά με την εξισορρόπηση φορτίου στην πλατφόρμα. Διαθέτουμε επίσης λεπτομερείς οδηγούς σχετικά με τα βασικά στοιχεία της εξισορρόπησης φορτίου με εργαλεία όπως τα NGINX και HAProxy μεταξύ άλλων διαθέσιμων εργαλείων.
Μπορείτε να δώσετε στο CloudSigma’s PaaS μια δοκιμή με τη δωρεάν δοκιμή 7 ημερών ή να επικοινωνήσετε μαζί μας εάν θέλετε να σας παρέχουμε περισσότερες λεπτομέρειες και μια παρουσίαση της πλατφόρμας.

Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.