Überall auf der Welt hat der Sieg der Containerisierung über die Virtualisierung zu mehr Leistung und Zuverlässigkeit zwischen Anwendungen geführt, die in verschiedenen Computerumgebungen ausgeführt werden. Das Konzept von Containern besteht darin, dass sie Softwarecodes und alle ihre Abhängigkeiten isolieren, um Einheitlichkeit und Konsistenz in jeder Infrastruktur sicherzustellen. Wie viele andere Cloud-Plattformen entwickelt Amazon seine Elastic Kubernetes Services schnell weiter, um den wachsenden Rechenanforderungen der AWS-Kunden gerecht zu werden.
Obwohl Amazon Elastic Kubernetes Service an sich ein vollständig verwalteter, sicherer und zuverlässiger Kubernetes-Dienst ist, sind für die Verwaltung der Cluster dennoch zahlreiche manuelle Konfigurationen erforderlich. Um die Leistung Ihrer Anwendung in einer solchen Umgebung sicherzustellen, müssen Sie Folgendes verwenden NCache. NCache ist eine In-Memory-Caching-Lösung, die die Leistung Ihrer Anwendung steigert und die Skalierbarkeit fördert, indem sie die Latenz in Ihrem EKS-Cluster verbessert.
NCache Details Containerbereitstellungen NCache EKS-Dokumente
NCache Bereitstellungsarchitektur im Elastic Kubernetes Service
Die Grundstruktur des Wie NCache Es ist sehr einfach, in Ihren EKS-Cluster zu passen. Sie verfügen über einen klassischen Load Balancer in der AWS-Cloud, der HTTP-Anfragen an einen Ingress-Controller weiterleitet, der im EKS-Cluster ausgeführt wird. In diesem Cluster läuft Ihr Cache-Cluster NCache Server in mehreren Pods. Diese Pods sind einem zugeordnet Cache-Erkennungsdienst Dies ermöglicht dem Client den Zugriff auf die Cluster-Pods, auf denen der Cache-Dienst ausgeführt wird. Sie können mehrere Anwendungen auf mehreren Pods bereitstellen und sie werden alle über diesen Cache Discovery-Dienst mit dem Cache-Cluster verbunden.
Innerhalb dieses EKS-Clusters gibt es auch eine NCache Fernüberwachungs-Gateway Service. Dabei handelt es sich um einen NGINX-Ingress-Controller, der Load-Balancer-Konfigurationen bereitstellt, um den Datenverkehr auf bestimmte Pods mit aktivierten Sticky Sessions zu reduzieren. Der verbleibende Teil des Clusters besteht aus verschiedenen Clientanwendungen, jede in ihrer eigenen Bereitstellungsumgebung.
Der Anfragefluss und die Struktur eines EKS-Clusters mit NCache Die darin bereitgestellten Informationen sind in der folgenden Abbildung dargestellt.
NCache Details Containerbereitstellungen NCache EKS-Dokumente
Lassen Sie sich also ohne weitere Verzögerung Schritt für Schritt durch eine einfache Anleitung führen, wie Sie die Bereitstellung durchführen können NCache innerhalb Ihres AWS Elastic Kubernetes-Clusters.
Schritt 1: Erstellen NCache Downloads
Um alle Funktionalitäten nutzen zu können NCache Sie in Ihrem Amazon Kubernetes-Cluster bereitstellen, sollte Ihr unmittelbarer Schritt jetzt die Bereitstellung sein NCache Ressourcen innerhalb von EKS. Bereitstellen NCache ermöglicht Ihnen die Durchführung aller Verwaltungsvorgänge in Ihrem Cluster.
Sie können bereitstellen NCache mit Hilfe bestimmter YAML-Dateien. Jede dieser Dateien enthält spezifische Informationen, die für das reibungslose Funktionieren von wichtig sind NCache innerhalb von EKS. Diese Dateien sind:
- NCache Bereitstellungsdatei: Diese Datei enthält die eigentliche Spezifikation der erforderlichen Pods und Bilder, die verwendet werden müssen. Zu diesen Informationen gehören die Anzahl der Replikate, das Image-Repository, die erforderlichen Ports usw.
- NCache Servicedatei: Diese Datei erstellt einen Dienst auf der Grundlage der Bereitstellung. Der Hauptzweck dieser Datei besteht darin, die Bereitstellung vom Server aus verfügbar zu machen.
- NCache Ingress-Datei: Diese Datei enthält die Informationen, die zum Erstellen einer Sticky-Sitzung zwischen einer Clientanwendung und Web Manager erforderlich sind, die im Kubernetes-Cluster ausgeführt werden.
Dies sind die grundlegenden YAML-Bereitstellungen, die Sie bereitstellen müssen NCache Dienste innerhalb Ihres EKS-Clusters. Unter all diesen Dateien ist die wichtigste NCache Bereitstellungs-YAML-Datei. Diese Datei sieht so aus:
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 |
kind: Deployment apiVersion: apps/v1beta1 metadata: name: ncache-deployment labels: app: ncache spec: replicas: 2 template: metadata: labels: app: ncache spec: nodeSelector: "beta.kubernetes.io/os": linux containers: - name: ncache image: docker.io/alachisoft/ncache:enterprise-server-linux-5.0.2 ports: - name: management-tcp containerPort: 8250 - name: management-http containerPort: 8251 - name: client-port containerPort: 9800 |
Sobald Sie diese Bereitstellung durch Ausführen des folgenden Befehls in der AWS CLI erstellt haben, erstellt Kubernetes genau die Anzahl der Pods, die unten angegeben ist antworten Schild. Auf jedem dieser Pods befindet sich ein laufender Container. Das Bild, aus dem dieser Container besteht, wird mit dem bereitgestellt Image Taste. In Ihrem Fall ist dies der Pfad zum NCache enterprise Server, auf dem platziert ist Docker-Hubdem „Vermischten Geschmack“. Seine Häfen Das Tag enthält alle Ports, die verfügbar gemacht werden müssen NCache Dienste, die im Cluster funktionieren sollen.
1 |
kubectl create -f [dir]/filename.yaml |
Beziehen auf NCache Dokumente zu Erstellen NCache Downloads im EKS.
NCache Details Containerbereitstellungen NCache EKS-Dokumente
Schritt 2: Erstellen NCache Erkennungsdienst
Der vorherige Schritt führt Sie zum Einrichten der Serverseite von NCache. Nachdem dies erfolgreich ausgeführt wurde, müssen Sie an der Erstellung eines Erkennungsdienstes arbeiten, der Ihre Daten verfügbar macht NCache Ressourcen für die Client-Anwendungen.
Außerhalb des Kubernetes-Clusters sind für eine erfolgreiche Client-Kommunikation statische IP-Adressen erforderlich. So praktisch das auch sein mag: Innerhalb des Kubernetes-Clusters wird jedem bereitgestellten Pod zur Laufzeit eine dynamische IP-Adresse zugewiesen, die den Clients unbekannt bleibt. Diese Anomalie führt zu Kommunikationsproblemen innerhalb des Clusters, bei denen Clientanwendungen keine Identifizierung durchführen können NCache Server. Hier besteht für Sie die Notwendigkeit eines Headless-Erkennungsdienstes innerhalb Ihres EKS-Clusters NCache Kunden entstehen.
Dieser Headless-Dienst behebt dieses Problem, indem er die IP-Adressen offenlegt NCache Server zu den Client-Anwendungen. Diese Clients verwenden diese IPs, um die erforderlichen Cache-Handles zu erstellen und mit der Ausführung von Cache-Vorgängen zu beginnen.
Damit alle Clients problemlos eine Verbindung zum Headless-Dienst herstellen können, erstellen und stellen Sie eine Cache Discovery-YAML-Datei wie bereitgestellt bereit:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
kind: Service apiVersion: v1 # depends on underlying Kubernetes version metadata: name: cacheserver labels: app: cacheserver spec: clusterIP: None selector: app: ncache # same label as provided in the ncache deployment yaml ports: - name: management-tcp port: 8250 targetPort: 8250 - name: management-http port: 8251 targetPort: 8251 - name: client-port port: 9800 targetPort: 9800 |
Was diesen Dienst zu einem Headless-Dienst macht, ist das Tag ClusterIP auf „Keine“ gesetzt. Dieses Verhalten besagt, dass dieser Dienst spezifisch ist NCache und ist außerhalb des EKS-Clusters nicht zugänglich. Schild Wähler einstellen ncache hilft diesem Dienst dabei, alle Pods zu identifizieren, deren Bezeichnung lautet ncache damit ihre IPs den Clients zugänglich gemacht werden können.
Ein kleiner Einblick in die Funktionsweise: Für den Client, der eine Verbindung zu den Servern herstellt, reicht nur eine IP-Adresse aus, da der eine Server, mit dem er sich verbindet, die IP-Adressen aller Server teilt, die Teil dieses Cache-Clusters sind.
Sobald die Datei zur Bereitstellung bereit ist, führen Sie den folgenden Befehl in der AWS-Befehlszeilenschnittstelle aus.
1 |
kubectl create -f [dir]/cachediscovery.yaml |
Eine detaillierte Schritt-für-Schritt-Bereitstellung finden Sie in unserer Dokumentation unter Ermittlungsdienst erstellen.
NCache Details Containerbereitstellungen NCache EKS-Dokumente
Schritt 3: Zugriff erstellen für NCache Management
Aussetzen erlauben NCache Für den Verwaltungszugriff von außerhalb des Clusters müssen Sie einen Eingangscontroller einrichten. Dieser Controller abstrahiert die grundlegenden Load-Balancer-Strategien, die Sie normalerweise in Containerbereitstellungen verwenden. Ein häufig verwendeter Ingress-Controller ist der NGINX-Controller, der bei der Bereitstellung für die Erstellung aller Dienste verantwortlich ist, die bereitgestellt werden müssen NCache Dienste außerhalb des Clusters.
Um den NGINX Ingress Controller in Ihrem EKS-Cluster bereitzustellen, müssen Sie darin mehrere Dateibereitstellungen erstellen. Diese Dateien enthalten alle notwendigen Informationen, die Ihr Kubernetes-Cluster benötigt, um einen voll funktionsfähigen NGINX-Load-Balancer zu installieren.
Nachfolgend sind die erforderlichen Dateien mit einer kurzen Erläuterung ihrer Funktion und ihrer Notwendigkeit aufgeführt:
- NGINX-Pflichtdatei: Bei diesen Dateien handelt es sich um die notwendigen Basisdateien, die Sie zum Ausführen des NGINX-Controllers benötigen. In Ihrem Fall handelt es sich um einen Load Balancer in Ihrem EKS-Cluster. Sie finden diese Datei unter GitHub.
- NGINX-Dienstdatei: Diese Datei enthält die Informationen zum Layer7-Load-Balancer, der den NGINX-Ingress-Controller außerhalb der Kubernetes-Umgebung verfügbar macht.
- NGINX-Konfigurationsdatei: Diese Datei enthält alle Parameter, die zur Konfiguration des Layer7-Load-Balancers erforderlich sind.
Zu den oben genannten Dateien gehören: NGINX-Dienst YAML ist die Datei, die die Portinformationen enthält, die zum Erstellen eines Load Balancers erforderlich sind NCache Verwaltungszugriff. Der Inhalt dieser Datei wird unten angezeigt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
kind: Service apiVersion: v1 metadata: name: ingress-nginx namespace: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx annotations: ... spec: type: LoadBalancer selector: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx ports: - name: http port: 80 protocol: TCP targetPort: http - name: https port: 443 protocol: TCP targetPort: http |
Alle diese Dateien werden als YAML-Dateien erstellt, die sehr einfach im EKS-Cluster bereitgestellt werden können. Sie müssen lediglich den folgenden Befehl für jede Datei im von AWS konfigurierten Befehlszeilentool ausführen.
1 |
kubectl create -f [dir]/<filename>.yaml |
Bei der Ausführung erstellt dieser Befehl einen Load Balancer, der Stickiness innerhalb Ihres Clusters ermöglicht. Ausführliche Informationen finden Sie in unserer Dokumentation zu Zugang erstellen für NCache Management.
NCache Details Containerbereitstellungen NCache EKS-Dokumente
Schritt 4: Cache-Cluster erstellen
Nachdem Sie nun Ihre kollektiven Bereitstellungen und Dienste eingerichtet haben, müssen Sie eine erstellen NCache Cluster, damit Ihre Clients eine Verbindung zu den Cache-Servern herstellen können.
Als Sie bereitgestellt haben NCache Dienst, den Sie heimlich eingesetzt haben NCache Auch der Web Manager ist vollständig integriert NCache Managementoperationen. Sie können dies verwenden NCache Web Manager, um Ihren Cluster-Cache zu erstellen und damit herumzuspielen. Sie müssen lediglich die folgenden grundlegenden Schritte befolgen NCache Dokumente zu Clustered-Cache erstellen und schon kann es losgehen! Hier müssen Sie sich jedoch besonders darauf konzentrieren, dass die IPs der Serverknoten, die Sie hinzufügen müssen, mit den IPs der vom Kubernetes-Cluster zugewiesenen Server-Pods übereinstimmen. Sie können die Liste dieser IPs und deren Details abrufen, indem Sie Folgendes ausführen Schoten bekommen Befehl im AWS-Befehlszeilentool.
Schritt 5: Erstellen Sie eine Clientanwendungsbereitstellung
NCache Client-Bereitstellung, genau wie NCache Die Ressourcenbereitstellung gibt die Anzahl der ausgeführten Client-Image-Container, das private Dockerhub-Repository, in dem die Anwendung platziert wird, Ports usw. an. Mithilfe dieser Informationen können Sie einen voll funktionsfähigen Client-Container erstellen.
Um die Clientanwendung aus einem privaten Repository abzurufen, müssen Sie jedes Mal Anmeldeinformationen angeben. Um sich diesen auftretenden Ärger zu ersparen, können Sie eine erstellen Geheimnisse.yaml Datei, die Ihre Anmeldeinformationen enthält, die einmal ausgefüllt werden muss und auf die jede aufrufende Client-Ressource zugreifen kann. Beziehen auf NCache Dokumente zu Erstellen Sie eine Client-Bereitstellung um eine detaillierte Ansicht der Schritte und YAML-Dateien zu erhalten.
Ebenso wird die eigentliche Client-Bereitstellung in Form einer YAML-Datei erstellt. Diese Datei enthält alle Informationen, die zum Bereitstellen Ihrer Clientanwendung (oder Anwendungen; Ihr Aufruf) in Ihrem EKS-Cluster erforderlich sind. Der Inhalt dieser Datei wird unten angezeigt:
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 |
kind: Deployment apiVersion: apps/v1beta1 # it depends on the underlying Kubernetes version metadata: name: client spec: replicas: 1 template: metadata: labels: app: client spec: nodeSelector: "beta.kubernetes.io/os": linux containers: - name: client image: # Your docker client image here ports: - name: app-port containerPort: 80 # In case of NCache client installation, add the following remaining ports - name: management-tcp containerPort: 8250 - name: management-http containerPort: 8251 - name: client-port containerPort: 9800 |
Wenn es um die Bereitstellung der Container aus dem Image geht, läuft der folgende Prozess wie folgt ab:
1. Der Zugriff auf das Bild erfolgt über das Repository.
2. Die Client-Geheimnisdatei wird aus gelesen NCache geheime Ressource zur Authentifizierung.
3. Das Image wird abgerufen und in einem Container bereitgestellt, in dem die Clientanwendung ausgeführt wird.
Da es sich hier um eine Bereitstellung und nicht um einen Dienst handelt, müssen Sie lediglich in den Pod gehen und den Batch-Befehl in der AWS CLI ausführen, um die Ausführung der Clientanwendung zu starten.
1 |
kubectl exec --namespace=ncache client-podname -- /app/<clientapplication>/run.sh democlusteredcache cacheserver |
NCache Details Containerbereitstellungen NCache EKS-Dokumente
Schritt 6: Überwachen NCache Cluster
Bis zu diesem Punkt haben Sie alles getan, um das Beste daraus zu machen NCache in Ihrem voll funktionsfähigen, laufenden Amazon EKS-Cluster. Durch die einfache Bereitstellung erhalten Sie Hochverfügbarkeit, Skalierbarkeit, Zuverlässigkeit und vieles mehr NCache im Cluster. Aber rate mal was? Das ist nicht alles NCache bietet an.
Lass mich ausreden. Innerhalb des EKS-Clusters, inmitten aller Vorgänge, der Speicherung und Datenübertragung, NCache ermöglicht es Ihnen, Überwachen Sie die Cache-Aktivität durch verschiedene Tools. Mit diesen Tools erhalten Sie einen besseren Überblick über den Zustand, die Leistung, Netzwerkstörungen und mehr Ihres Clusters.
Zur kasse NCache Webmonitor für eine grafische Darstellung der Echtzeitleistung und NCache Statistiken für Leistungsstatistiken.
Schritt 7: Skalierung NCache Cluster
Um Ihnen extreme Skalierbarkeit zu bieten, NCache ermöglicht es Ihnen, Ihren Cluster zur Laufzeit nach oben oder unten zu skalieren, um die Gesamtleistung Ihrer Anwendung zu verbessern. Wenn Sie beispielsweise das Gefühl haben, dass der Cache-Cluster viel zu häufig Anfragen erhält, als dass die Knoten mit den zunehmenden Transaktionen Schritt halten könnten, NCache ermöglicht es Ihnen, mehrere Server hinzuzufügen, um die Last zu bewältigen. Um zu sehen, wie Sie zur Laufzeit Serverknoten zum Cache-Cluster hinzufügen oder daraus entfernen können, während Sie gleichzeitig im EKS-Cluster bleiben, lesen Sie unsere Dokumentation zu Cache-Server in EKS hinzufügen machen Cache-Server aus EKS entfernen.
Lassen Sie uns alles auf den Kopf stellen
In diesem Artikel erfahren Sie eine Schritt-für-Schritt-Anleitung NCache Bereitstellung in einem Amazon EKS-Cluster. Die wichtigste Frage hier ist, warum Sie brauchen NCache innerhalb einer bereits vollständigen Containerumgebung? Nun, lassen Sie mich es kurz für Sie kurz zusammenfassen.
- In-Memory-Lösung: NCache steigert die Leistung Ihrer bereitgestellten Anwendung um einen spürbaren Faktor.
- Lineare Skalierbarkeit: NCache Dies ist praktisch, wenn die Belastung Ihres Cache-Clusters zunimmt.
- Extrem flexibel: NCache Gleicht die Daten dynamisch und automatisch neu aus, ohne dass der Client eingreifen muss.
Sie kombinieren all dies zusätzlich zu den bereits von AWS EKS bereitgestellten Funktionen und haben sich eine erstklassige Umgebung zum Ausführen Ihrer Anwendung gesichert. Worauf warten Sie also noch? Einsetzen NCache Nehmen Sie jetzt an Ihrem EKS-Cluster teil und erleben Sie die Magie selbst.