Zugang erstellen für NCache Verwaltung im Amazon Elastic Kubernetes Service
Die grundlegende Architektur der Amazon Elastic Kubernetes Service-Umgebung beschränkt jeden Pod innerhalb des Clusters auf dynamische IP-Adressen, auf die von außerhalb dieses Clusters nicht zugegriffen werden kann. Und damit Sie davon profitieren NCache Innerhalb des erstellten EKS-Clusters müssen Sie einen Kubernetes-Dienst erstellen, um den Zugriff bereitzustellen NCache Schoten.
Zusätzlich zu diesem Dienst müssen Sie eine Kubernetes-Ingress-Ressource im Amazon Elastic Kubernetes Service zur Bereitstellung einrichten NCache Dienstleistungen. Dieser Dienst wird von einem Eingangscontroller implementiert, der im Amazon Elastic Kubernetes Service-Cluster ausgeführt wird. Ein häufig verwendeter Ingress-Controller ist der NGINX-Controller, der vom Kubernetes-Projekt verwaltet wird. Wie dein NCache Die Bereitstellung erfolgt innerhalb des EKS-Clusters. Dieser Dienst wird als Lastausgleichsmodul eingerichtet, um den Datenverkehr auf eine Sammlung von Pods zu reduzieren und eine dauerhafte Client-IP-basierte Verbindung zu erstellen.
Amazon Elastic Kubernetes Service: Erstellen Sie einen Ingress-Controller
Der Prozess der Erstellung und Verwendung einer NGINX-Eingang Der Controller wird hier bereitgestellt. Dabei handelt es sich im Grunde um einen zweistufigen Prozess, der die Bereitstellung der obligatorischen Ressourcen umfasst, die zum Ausführen des Ingress-Controllers innerhalb des Clusters erforderlich sind, und die Einrichtung eines Lastenausgleichs, um den Ingress-Controller von außerhalb des Clusters verfügbar zu machen.
Um den Ingress-Controller erfolgreich in Ihrem Cluster auszuführen, müssen Sie drei YAML-Dateien bereitstellen. Lassen Sie uns sie einzeln durchgehen.
Stellen Sie obligatorische NGINX-Ressourcen bereit
Um eine obligatorische NGINX-Ingress-Controller-Ressource einzurichten, benötigen Sie die obligatorische NGINX-YAML-Datei. Die obligatorische NGINX-Datei ist die Basisdatei, die zum Ausführen des NGINX-Controllers erforderlich ist, der in diesem Fall Ihr Load Balancer ist. Nennen wir diese Datei nginxmandatory.yaml und Sie können den Inhalt davon erhalten GitHub.
Sobald Sie diese Datei haben, müssen Sie sie in Ihrem Amazon Elastic Kubernetes Service-Cluster bereitstellen. Um die NGINX-Pflichtdatei bereitzustellen, führen Sie den folgenden Befehl in der AWS-Befehlszeilenschnittstelle aus:
kubectl create -f [dir]/nginxmandatory.yaml
Erstellen Sie eine NGINX LoadBalancer-Dienstdatei
Diese Datei enthält die Informationen zum Layer-7-Load-Balancer, der den NGINX-Ingress-Controller außerhalb der Kubernetes-Umgebung verfügbar macht. Nennen wir diese YAML-Datei nginxservice.yaml und dessen Inhalt finden Sie hier:
Note
Die Parameter, die erforderlich sind, um diese YAML-Datei für die Bereitstellung zu erstellen, werden im erläutert Ferienhäuser Tabelle.
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:
# replace with the correct value of the generated certificate in the AWS console
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-west-2:XXXXXXXXXXXX:certificate/XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
# the backend instances are HTTP
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
# Map port 443
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
# Ensure the ELB idle timeout is less than nginx keep-alive timeout. By default,
# NGINX keep-alive is set to 75s. If using WebSockets, the value will need to be
# increased to '3600' to avoid any potential issues.
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"
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
Führen Sie den folgenden Befehl in der von AWS konfigurierten Shell-Umgebung aus, um diese Datei im EKS-Cluster einzurichten.
kubectl create -f [dir]/nginxservice.yaml
Erstellen Sie eine NGINX-Konfigurationsdatei
Zusammen mit dem Layer-7-Dienst müssen Sie eine Kubernetes-ConfigMap erstellen, um den Layer-7-Load-Balancer zu konfigurieren. Nennen wir diese Datei nginxconfigmap.yaml und sein Inhalt ist unten aufgeführt.
kind: ConfigMap
apiVersion: v1
metadata:
name: nginx-configuration
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
data:
use-proxy-protocol: "false"
use-forwarded-headers: "true"
proxy-real-ip-cidr: "0.0.0.0/0" # restrict this to the IP addresses of ELB
Führen Sie den folgenden Befehl in der AWS-Befehlszeilenschnittstelle aus, um diese Konfiguration in Ihrem Cluster zu erstellen:
execute create -f [dir]/nginxconfigmap.yaml
Der nächste Schritt nach dem Einrichten des Ingress-Controllers besteht darin: erstellen NCache Auftraggeber in Ihrem EKS-Cluster, erläutert im nächsten Kapitel.
Siehe auch
Erstellen Sie den Discovery-Service in EKS
Erstellen NCache Kunde im EKS
Erstellen NCache Clientbereitstellung in EKS
Cache-Cluster in EKS erstellen