In tutto il mondo, la vittoria della containerizzazione sulla virtualizzazione ha prodotto prestazioni e affidabilità tra le applicazioni eseguite in diversi ambienti di elaborazione. Il concetto di container è che isolano i codici software e tutte le loro dipendenze per garantire uniformità e coerenza in qualsiasi infrastruttura. Amazon, proprio come molte altre piattaforme cloud, sta rapidamente maturando i suoi servizi Elastic Kubernetes per soddisfare le crescenti esigenze di elaborazione dei clienti AWS.
Sebbene Amazon Elastic Kubernetes Service sia di per sé un servizio Kubernetes completamente gestito, sicuro e affidabile, richiede comunque molte configurazioni manuali per gestire i cluster. Per garantire le prestazioni dell'applicazione in un tale ambiente, è necessario utilizzare NCache. NCache è una soluzione di memorizzazione nella cache in memoria che migliora le prestazioni dell'applicazione e induce la scalabilità migliorando la latenza nel cluster EKS.
NCache Dettagli Distribuzioni di container NCache Documenti EKS
NCache Architettura di distribuzione in Elastic Kubernetes Service
La struttura di base del come NCache si adatta al tuo cluster EKS è molto semplice. Hai un sistema di bilanciamento del carico classico sul cloud AWS che instrada le richieste HTTP a un controller di ingresso in esecuzione all'interno del cluster EKS. All'interno di questo cluster, hai il tuo cluster di cache in esecuzione NCache server all'interno di più pod. Questi pod sono mappati su a Servizio di rilevamento della cache che consente al client di accedere ai pod del cluster che eseguono il servizio cache. Puoi avere più applicazioni distribuite su più pod e saranno tutte connesse al cluster di cache tramite questo servizio di rilevamento della cache.
All'interno di questo cluster EKS, hai anche un file NCache Gateway di monitoraggio remoto servizio. Questo è un controller di ingresso NGINX che fornisce configurazioni di bilanciamento del carico per portare il traffico verso pod specifici con sessioni permanenti abilitate. La parte restante del cluster comprende varie applicazioni client, ciascuna nel proprio ambiente di distribuzione.
Il flusso di richieste e la struttura di un cluster EKS con NCache distribuito in esso è mostrato nel diagramma seguente.
NCache Dettagli Distribuzioni di container NCache Documenti EKS
Quindi, senza ulteriori indugi, lascia che ti guidi attraverso una semplice guida passo passo su come distribuire NCache all'interno del tuo cluster AWS Elastic Kubernetes.
Passaggio 1: Crea NCache Risorse
Per utilizzare tutte le funzionalità NCache ti fornisce all'interno del tuo cluster Amazon Kubernetes, il tuo passaggio immediato in questo momento dovrebbe essere la distribuzione NCache risorse all'interno di EKS. Distribuzione NCache ti consentirà di eseguire tutte le operazioni di gestione nel tuo cluster.
Puoi distribuire NCache con l'aiuto di alcuni file YAML. Ciascuno di questi file contiene informazioni specifiche che svolgono la sua parte nel funzionamento senza interruzioni di NCache all'interno di EKS. Questi file sono:
- NCache File di distribuzione: Questo file contiene le specifiche effettive dei pod e delle immagini richiesti che devono essere utilizzati. Queste informazioni includono il numero di repliche, il repository di immagini, le porte richieste e così via.
- NCache File di servizio: Questo file crea un servizio sulla parte superiore della distribuzione. Lo scopo principale di questo file è esporre la distribuzione dal server.
- NCache File di ingresso: Questo file contiene le informazioni necessarie per creare una sessione permanente tra un'applicazione client e Web Manager in esecuzione all'interno del cluster Kubernetes.
Queste sono le distribuzioni YAML di base che devi distribuire NCache servizi all'interno del tuo cluster EKS. Tra tutti questi file, il più importante è NCache File YAML di distribuzione. Questo file è simile a questo:
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 |
Dopo aver creato questa distribuzione eseguendo il comando seguente in AWS CLI, Kubernetes creerà il numero esatto di pod menzionato sotto replica etichetta. Su ciascuno di questi pod, avrai un contenitore in esecuzione. L'immagine da cui è composto questo contenitore è fornita con il file Immagine chiave. Nel tuo caso, questo sarà il percorso per il NCache enterprise server su cui è posizionato Mozzo mobile. porte tag contiene tutte le porte per le quali è necessario esporre NCache servizi per funzionare nel cluster.
1 |
kubectl create -f [dir]/filename.yaml |
Fare riferimento a NCache documenti su Creare NCache Risorse nell'EKS.
NCache Dettagli Distribuzioni di container NCache Documenti EKS
Passaggio 2: Crea NCache Servizio di scoperta
Il passaggio precedente ti porta a configurare il lato server di NCache. Dopo che è stato eseguito correttamente, devi lavorare sulla creazione di un servizio di rilevamento che esponga il tuo NCache risorse alle applicazioni client.
Al di fuori del cluster Kubernetes, sono necessari indirizzi IP statici per una corretta comunicazione con il client. Per quanto conveniente possa essere, all'interno del cluster Kubernetes, a ogni pod distribuito viene assegnato un indirizzo IP dinamico in fase di esecuzione che rimane sconosciuto ai client. Questa anomalia causa problemi di comunicazione all'interno del cluster, in cui le applicazioni client non vengono identificate NCache server. Qui, la necessità di un servizio di rilevamento senza testa all'interno del tuo cluster EKS per te NCache sorge il cliente.
Questo servizio senza testa risolve questo problema esponendo gli indirizzi IP di NCache server alle applicazioni client. Questi client utilizzano questi IP per creare gli handle di cache richiesti e per iniziare a eseguire operazioni di cache.
Per consentire a tutti i client di connettersi facilmente al servizio headless, creare e distribuire un file YAML di rilevamento cache come fornito:
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 |
Ciò che rende questo servizio un servizio senza testa è il tag clusterIP impostato su "Nessuno". Questo comportamento indica che questo servizio è specifico NCache e non sarà accessibile al di fuori del cluster EKS. Etichetta selettore impostato ncache aiuta questo servizio a identificare tutti i pod la cui etichetta è ncache in modo che i loro IP possano essere esposti ai client.
Una piccola panoramica di come funzionano le cose: al client che si connette ai server, sarà sufficiente un solo indirizzo IP poiché l'unico server a cui si connette condivide gli indirizzi IP di tutti i server che fanno parte di quel cluster di cache.
Una volta che il file è pronto per essere distribuito, esegui il comando seguente nell'interfaccia della riga di comando di AWS.
1 |
kubectl create -f [dir]/cachediscovery.yaml |
Per una distribuzione dettagliata passo dopo passo, segui la nostra documentazione su Crea servizio di rilevamento.
NCache Dettagli Distribuzioni di container NCache Documenti EKS
Passaggio 3: crea l'accesso per NCache Management
Per esporre consenti NCache accesso di gestione dall'esterno del cluster, è necessario configurare un controller di ingresso. Questo controller astrae le strategie di bilanciamento del carico di base che usi normalmente nelle distribuzioni di container. Un controller di ingresso utilizzato di frequente è il controller NGINX che, una volta distribuito, è responsabile della creazione di tutti i servizi necessari per esporre NCache servizi al di fuori del cluster.
Per distribuire il controller di ingresso NGINX nel tuo cluster EKS, devi creare più distribuzioni di file in esso. Questi file contengono tutte le informazioni necessarie affinché il tuo cluster Kubernetes installi un sistema di bilanciamento del carico NGINX completamente funzionante.
Di seguito sono elencati i file richiesti con una breve spiegazione di cosa fanno e perché sono richiesti:
- NGINX File obbligatorio: Questi file sono i file di base necessari per eseguire il controller NGINX; che nel tuo caso sarà un sistema di bilanciamento del carico all'interno del tuo cluster EKS. Puoi trovare questo file su GitHub.
- File di servizio NGINX: 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.
- File di configurazione NGINX: Questo file contiene tutti i parametri necessari per configurare il sistema di bilanciamento del carico Layer7.
Tra i suddetti fascicoli, Servizio NGINX YAML è il file che contiene le informazioni sulle porte necessarie per creare un sistema di bilanciamento del carico consapevole NCache accesso gestionale. Il contenuto di questo file è mostrato di seguito:
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 |
Tutti questi file vengono creati come file YAML che possono essere facilmente distribuiti all'interno del cluster EKS. Tutto quello che devi fare è eseguire il comando seguente per ogni file nello strumento a riga di comando configurato da AWS.
1 |
kubectl create -f [dir]/<filename>.yaml |
Al momento dell'esecuzione, questo comando creerà un sistema di bilanciamento del carico che abilita la persistenza all'interno del tuo cluster. Per informazioni dettagliate, fare riferimento alla nostra documentazione su Crea accesso per NCache Management.
NCache Dettagli Distribuzioni di container NCache Documenti EKS
Passaggio 4: crea un cluster di cache
Ora che hai implementato le distribuzioni e i servizi collettivi, devi creare un file NCache cluster per consentire ai tuoi client di connettersi ai server di cache.
Quando hai distribuito NCache servizio, hai distribuito segretamente NCache Anche Web Manager che viene completamente integrato con il NCache operazioni di gestione. Puoi usare questo NCache Web Manager per creare la tua cache in cluster e giocarci. Tutto quello che devi fare è seguire questi passaggi di base forniti in NCache documenti su Crea cache raggruppata e sei a posto! Qui, tuttavia, ciò che richiede la massima concentrazione è che gli IP dei nodi del server che devi aggiungere dovrebbero essere gli stessi degli IP dei pod del server assegnati dal cluster Kubernetes. È possibile ottenere l'elenco di questi IP e i relativi dettagli eseguendo il comando prendi i baccelli comando nello strumento della riga di comando di AWS.
Passaggio 5: creare la distribuzione dell'applicazione client
NCache distribuzione del client, proprio come NCache distribuzione delle risorse, specifica il numero di contenitori di immagini client in esecuzione, il repository Dockerhub privato in cui si trova l'applicazione, le porte e così via. Queste informazioni consentono di creare un contenitore client completamente funzionale.
Per ottenere l'applicazione client da un repository privato, è necessario menzionare ogni volta le credenziali di accesso. Per salvarti da questa seccatura, puoi creare un file segreti.yaml file che contiene le informazioni di accesso che devono essere compilate una volta ed è accessibile a ogni risorsa client chiamante. Fare riferimento a NCache documenti su Crea distribuzione client per ottenere una visualizzazione dettagliata dei passaggi e dei file YAML.
Allo stesso modo, anche l'effettiva distribuzione del client viene creata sotto forma di file YAML. Questo file conterrà tutte le informazioni necessarie per distribuire la tua applicazione client (o applicazioni; la tua chiamata) nel tuo cluster EKS. Il contenuto di questo file è mostrato di seguito:
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 |
Quando si tratta di distribuire i contenitori dall'immagine, il processo che segue è il seguente:
1. Si accede all'immagine dal repository.
2. Il file dei segreti del client viene letto da NCache risorsa segreta per l'autenticazione.
3. L'immagine viene estratta e distribuita in un contenitore in cui è in esecuzione l'applicazione client.
In questo caso, poiché abbiamo una distribuzione e non un servizio, ciò che devi fare è entrare nel pod ed eseguire il comando batch in AWS CLI per iniziare a eseguire l'applicazione client.
1 |
kubectl exec --namespace=ncache client-podname -- /app/<clientapplication>/run.sh democlusteredcache cacheserver |
NCache Dettagli Distribuzioni di container NCache Documenti EKS
Passaggio 6: monitorare NCache Cluster
Fino a questo punto hai fatto tutto il necessario per ottenere il meglio NCache all'interno del tuo cluster Amazon EKS completamente funzionante e in esecuzione. Ottieni alta disponibilità, scalabilità, affidabilità e quant'altro non semplicemente dalla distribuzione NCache nel grappolo. Ma indovinate un po? Non è tutto questo NCache offre.
Ascoltami. All'interno del cluster EKS, nel mezzo di tutte le operazioni, l'archiviazione e il trasferimento dei dati, NCache consente di monitorare l'attività della cache attraverso vari strumenti. Questi strumenti ti aiutano a farti un'idea migliore dello stato, delle prestazioni, dei problemi di rete e altro del tuo cluster.
Check out NCache Monitoraggio Web per una rappresentazione grafica delle prestazioni in tempo reale e NCache Statistiche per le statistiche sulle prestazioni.
Passaggio 7: ridimensionamento NCache Cluster
Per offrirti un'estrema scalabilità, NCache ti consente di aumentare o diminuire il tuo cluster in fase di runtime per migliorare le prestazioni complessive della tua applicazione. Ad esempio, se ritieni che il cluster di cache riceva richieste troppo frequentemente perché i nodi possano tenere il passo con le transazioni in aumento, NCache consente di aggiungere più server per adattarsi al carico. Per vedere come aggiungere o rimuovere nodi server dal cluster di cache in fase di esecuzione rimanendo all'interno del cluster EKS, consulta la nostra documentazione su Aggiunta del server di cache in EKS ed Rimozione dei server di cache da EKS.
Finiamo tutto
Da questo articolo, devi provare una procedura dettagliata di NCache distribuzione in un cluster Amazon EKS. La domanda principale qui è perché ne hai bisogno NCache all'interno di un ambiente container già completo? Bene, lascia che lo riassuma molto velocemente per te.
- Soluzione in memoria: NCache aumenta notevolmente le prestazioni dell'applicazione distribuita.
- Scalabilità lineare: NCache torna utile quando aumenta il carico sul cluster di cache.
- Estrema flessibilità: NCache ribilancia automaticamente i dati senza alcun intervento da parte del cliente.
Metti tutto questo in cima alle funzionalità già fornite da AWS EKS e ti sei procurato un ambiente di prim'ordine in cui eseguire la tua applicazione. Allora, cosa stai aspettando? Distribuire NCache nel tuo cluster EKS in questo momento e assisti alla magia di persona.