Crea accesso per NCache Gestione nel servizio Amazon Elastic Kubernetes
L'architettura di base dell'ambiente Amazon Elastic Kubernetes Service confina ogni pod all'interno del cluster con IP dinamici che non sono accessibili dall'esterno del cluster. E perché tu possa trarne beneficio NCache all'interno del cluster EKS creato, è necessario creare un servizio Kubernetes per fornire l'accesso a NCache baccelli.
Oltre a questo servizio, è necessario configurare una risorsa di ingresso Kubernetes in Amazon Elastic Kubernetes Service per l'esposizione NCache Servizi. Questo servizio è implementato da un controller di ingresso in esecuzione all'interno del cluster Amazon Elastic Kubernetes Service. Un controller di ingresso utilizzato di frequente è il controller NGINX gestito dal progetto Kubernetes. Come il tuo NCache la distribuzione è all'interno del cluster EKS, questo servizio è impostato come servizio di bilanciamento del carico per ridurre il traffico a una raccolta di pod e creare una connessione persistente basata sull'IP client.
Servizio Amazon Elastic Kubernetes: crea un controller di ingresso
Il processo di creazione e utilizzo di un Ingresso NGINX Il controller è fornito qui. Questo è fondamentalmente un processo in due fasi che prevede la distribuzione delle risorse obbligatorie necessarie per eseguire il controller di ingresso all'interno del cluster e la configurazione di un servizio di bilanciamento del carico per esporre il controller di ingresso dall'esterno del cluster.
Per eseguire correttamente il controller di ingresso all'interno del tuo cluster, devi distribuire tre file YAML. Esaminiamoli uno per uno.
Distribuisci le risorse obbligatorie di NGINX
Per configurare una risorsa obbligatoria del controller di ingresso NGINX, è necessario disporre del file YAML obbligatorio di NGINX. Il file obbligatorio NGINX è il file di base necessario per eseguire il controller NGINX, che in questo caso è il bilanciatore del carico. Chiamiamo questo file nginxmandatory.yaml e puoi ottenerne il contenuto GitHub.
Una volta ottenuto questo file, devi distribuirlo all'interno del cluster Amazon Elastic Kubernetes Service. Per distribuire il file obbligatorio NGINX, esegui il comando seguente nell'interfaccia a riga di comando di AWS:
kubectl create -f [dir]/nginxmandatory.yaml
Crea file di servizio NGINX LoadBalancer
Questo file contiene le informazioni sul sistema di bilanciamento del carico di livello 7 che espone il controller di ingresso NGINX all'esterno dell'ambiente Kubernetes. Chiamiamo questo file YAML nginxservice.yaml e il suo contenuto può essere trovato qui:
Note:
I parametri necessari per creare questo file YAML pronto per essere distribuito sono spiegati in Properties tabella.
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
Esegui il comando seguente nell'ambiente shell configurato da AWS per configurare questo file all'interno del cluster EKS.
kubectl create -f [dir]/nginxservice.yaml
Crea file di configurazione NGINX
Insieme al servizio di livello 7, è necessario creare una Kubernetes ConfigMap per configurare il servizio di bilanciamento del carico di livello 7. Chiamiamo questo file nginxconfigmap.yaml e il suo contenuto è mostrato di seguito.
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
Esegui il comando seguente nell'interfaccia della riga di comando di AWS per creare questa configurazione all'interno del tuo cluster:
execute create -f [dir]/nginxconfigmap.yaml
Il passaggio successivo dopo aver configurato il controller di ingresso è creare NCache cliente nel tuo cluster EKS, spiegato nel prossimo capitolo.
Vedere anche
Crea il servizio di rilevamento in EKS
Creare NCache Cliente in EKS
Creare NCache Distribuzione client in EKS
Crea cluster di cache in EKS