Lo sviluppo, la distribuzione e la gestione delle applicazioni sono diventati più facili con l'introduzione della containerizzazione, motivo per cui la distribuzione del cloud sta guadagnando popolarità. Azure, essendo il migliore del settore, offre la distribuzione Kubernetes più veloce e facile da usare sotto forma di Azure Kubernetes Service (AKS).
Per migliorare le prestazioni dell'applicazione nell'ambiente Azure Kubernetes, NCache deve essere distribuito e usato all'interno del cluster AKS. NCache è una soluzione di memorizzazione nella cache distribuita in memoria che aumenta le prestazioni dell'applicazione di molte volte poiché la cache è più vicina all'applicazione. Usando NCache, che è distribuito in natura, ti consente di aggiungere tutti i server necessari per migliorare la latenza, inducendo così un'estrema scalabilità in AKS.
NCache Dettagli Distribuzioni di container NCache Documenti AKS
NCache Architettura di distribuzione nel servizio Azure Kubernetes
Il layout generale di NCacheLa distribuzione di Azure Kubernetes Service è così: hai applicazioni connesse a un headless Servizio di individuazione della cache. Questo servizio è responsabile di consentire ai client di accedere ai pod del cluster che eseguono il servizio cache. C'è anche un Servizio gateway che fornisce un servizio di bilanciamento del carico per ridurre il traffico a pod specifici in base all'IP client fornito.
Un pod è un'unità di base per il servizio di creazione che garantisce che tutti i container si trovino sullo stesso host. Un pod contiene uno o più contenitori che condividono risorse come RAM, CPU e rete, ma è meglio avere un contenitore per pod.
Il flusso di richieste e la struttura di un cluster AKS con NCache distribuito in esso è mostrato nel diagramma seguente.
Per iniziare a utilizzare molte funzionalità pronte all'uso fornite da NCache nel cluster del servizio Azure Kubernetes, devi eseguire la distribuzione NCache e i servizi richiesti in una configurazione AKS. I passaggi forniti di seguito ti aiuteranno a iniziare a distribuire e utilizzare NCache nel cluster di Azure Kubernetes.
NCache Dettagli Distribuzioni di container NCache Documenti AKS
Passaggio 1: Crea NCache Distribuzione
Nel servizio Azure Kubernetes, ogni volta che si parla di distribuzione di un'applicazione o di un servizio, è necessario creare un file YAML. Questo file YAML contiene tutte le informazioni necessarie per creare un pod all'interno del cluster AKS. Lascia che ti mostri come dovrebbe essere il tuo file YAML per creare correttamente un pod che contiene il file NCache servizio.
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: Deployment apiVersion: apps/v1beta1 # underlying Kubernetes version metadata: name: ncache 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: cache-mgmt-tcp # for tcp communication containerPort: 8250 - name: cache-mgmt-http # for http communication containerPort: 8251 ... # remaining necessary ports |
Affinché il cluster capisca che ciò che stai creando sarà un pod di distribuzione, devi menzionare "tipo" come Distribuzione. Quello di cui devi stare attento qui è la versione sottostante di Kubernetes sotto il tag "apiVersion". Kubernetes continua a modificare questo numero di versione, quindi è necessario prestare attenzione durante la distribuzione NCache che questo numero di versione sia impostato sul numero di versione corrispondente di Kubernetes sottostante.
Il numero di "repliche" qui indica il numero di pod che questa distribuzione avrà, che in questo caso è 2. È possibile modificare questo valore in base alle proprie esigenze. Sotto il tag "contenitori", fornisci il percorso del NCache Enterprise Immagine della finestra mobile del server. Puoi trovare questo percorso Hub Docker.
NCache Dettagli Distribuzioni di container NCache Documenti AKS
Alcuni degli altri requisiti necessari per la distribuzione NCache nel cluster Azure Kubernetes ci sono le informazioni sulle porte. Affinché i tuoi clienti possano interagire con successo NCache server, è necessario specificare il numero di porta del contenitore nel file YAML.
Principalmente, questi sono i requisiti di base che è necessario comprendere per distribuire correttamente NCache in un cluster AKS. Una volta creato questo file YAML, puoi usarlo per creare pod in AKS.
La creazione di questo file YAML è tutto ciò che devi fare per distribuire correttamente NCache in un cluster AKS. Esegui il comando seguente in Azure Cloud Shell e voilà! il tuo NCache la distribuzione è ora un pod in esecuzione completo nel servizio Azure Kubernetes!
1 |
kubectl create -f [dir]/ncache.yaml |
Passaggio 2: Crea NCache Servizio di scoperta
Al di fuori del cluster Kubernetes, quando si parla di client di cache che si connettono con server di cache, è abbastanza comprensibile che abbiano bisogno di indirizzi IP dei server di cache. Questi indirizzi IP sono statici e noti a tutti i client che fanno parte di quel sistema. Ma quando prendi gli stessi elementi e li inserisci nell'ambiente Kubernetes, l'implementazione cambia. All'interno di un cluster Kubernetes, a ogni pod di distribuzione viene assegnato un indirizzo IP dinamico in fase di esecuzione sconosciuto alle applicazioni client. Questa implementazione ostacola l'identificazione delle applicazioni client NCache server per ottenere prestazioni e scalabilità.
Per contrastare questo problema, Kubernetes ti consente di creare un servizio che è fisso invece di essere dinamico. Quindi, utilizzando questo è necessario creare un servizio di rilevamento senza testa che consenta all'applicazione client di accedere senza sforzo al pod su cui NCache il servizio è in esecuzione. Le informazioni fornite in questo servizio, come file YAML, consentono a tutte le applicazioni client di connettersi a questo servizio. Questo servizio è quindi responsabile dell'assegnazione di un server a ogni richiesta di connessione client; il tutto rimanendo all'interno del cluster AKS.
Quindi, senza ulteriori indugi, iniziamo a creare il file YAML pronto per la distribuzione.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
kind: Service apiVersion: v1 # underlying Kubernetes version metadata: name: cacheserver labels: app: cacheserver spec: clusterIP: None selector: app: ncache # same label as provided in the ncache YAML file ports: - name: management-tcp port: 8250 targetPort: 8250 - name: client-port port: 9800 targetPort: 9800 |
Il tuo "tipo" deve essere a servizio con "apiVerison" impostato sulla versione sottostante di Kubernetes. Per renderlo un servizio senza testa, devi impostare il tag "clientIP" su nessuna che specifica che al tuo servizio di rilevamento non sarà assegnato alcun IP pubblico. Il resto sono le porte necessarie per NCache clienti per comunicare con il NCache server.
Da qui, vai ad Azure Cloud Shell ed esegui il comando fornito per avere un servizio di individuazione headless in esecuzione completamente funzionante all'interno del tuo cluster Kubernetes.
1 |
kubectl create -f [dir]/discoveryservice.yaml |
NCache Dettagli Distribuzioni di container NCache Documenti AKS
Passaggio 3: Crea NCache Servizio gateway
All'interno di un cluster AKS, qualsiasi cosa accada è limitata al cluster. E per te da usare NCache dalla tua macchina locale, ci deve essere un modo attraverso il quale NCache le operazioni di gestione possono essere eseguite all'interno di quel cluster. Proprio per questo creiamo un servizio Gateway; un servizio che si occupa dell'accesso, della gestione e del monitoraggio NCache dall'esterno del servizio Azure Kubernetes.
Anche in questo caso, per utilizzare questa funzionalità nel cluster, è necessario un pod in esecuzione. Per creare un pod in esecuzione, devi creare un file YAML contenente tutti i tag e i valori necessari. Quindi, iniziamo scrivendo un file YAML per la creazione di un servizio gateway NCache gestione.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
kind: Service apiVersion: v1 # underlying Kubernetes version metadata: name: gateway spec: selector: app: ncache # same label as provided in the ncache YAML file type: LoadBalancer sessionAffinity: ClientIP ports: - name: management-http port: 8251 targetPort: 8251 |
Qui, affinché il cluster del servizio Azure Kubernetes sappia che questo pod fungerà da servizio per uno scopo particolare invece di distribuire qualsiasi cosa, è necessario indicare il "tipo" come servizio. Questo file dovrebbe anche menzionare le porte di cui un servizio gateway ha bisogno per funzionare senza errori. Tagga "tipo" come Load Balancer afferma che questo servizio gateway sarà un servizio di bilanciamento del carico esterno che bilancia le richieste dei client su più server. Il punto che devi assicurarti è che "sessionAffinity" sia impostato su ClientIP per assicurarsi che un client venga reindirizzato ogni volta allo stesso server.
Queste sono praticamente tutte le informazioni necessarie per creare un servizio gateway per il tuo NCache distribuzione. Quello che devi fare ora è eseguire quanto segue creare comando da Azure Shell e AKS creerà e avvierà questo servizio per te.
1 |
kubectl create -f [dir]/gatewayservice.yaml |
NCache Dettagli Distribuzioni di container NCache Documenti AKS
Passaggio 4: creare un cluster di cache
Quello che hai fino a questo punto sta funzionando NCache server, un servizio gateway e un servizio di discovery per NCache clienti. Quello che ti serve ora per goderti appieno NCache nel tuo servizio Azure Kubernetes è creare un cluster di cache all'interno del tuo cluster Kubernetes; che è semplice.
È possibile eseguire questo passaggio utilizzando NCache Web Manager integrato con il NCache distribuzione. I passaggi necessari per creare correttamente un cluster e aggiungervi nodi server sono forniti in NCache documenti su Crea cache raggruppata. L'unica svolta in questo passaggio sono gli IP dei server di cui hai bisogno. Questi devono essere gli stessi IP che il cluster Kubernetes ha assegnato ai tuoi pod della cache. Puoi ottenere questi IP eseguendo il file prendi i baccelli comando in Azure Cloud Shell.
Passaggio 5: creare distribuzioni di applicazioni
Per distribuire ed eseguire applicazioni client (che siano .NET o Java) nel tuo cluster, devi creare un file YAML. Il tuo file YAML di distribuzione del client dovrebbe essere qualcosa del genere:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
kind: Deployment apiVersion: apps/v1beta1 # Underlying Kubernetes version metadata: name: client spec: replicas: 1 template: metadata: labels: app: client spec: imagePullSecrets: - name: client-private nodeSelector: "beta.kubernetes.io/os": linux containers: - name: client image: # Your docker client image here ports: - name: port1 containerPort: 8250 - name: port2 containerPort: 9800 |
Il "nodeSelector" menzionato nel file potrebbe essere finestre poiché Kubernetes supporta entrambi i sistemi operativi. Inoltre, hai il vantaggio di distribuire più applicazioni client all'interno dello stesso cluster a seconda delle tue esigenze. Per ogni applicazione client, devi creare un file YAML simile in modo che ogni applicazione venga eseguita su un pod separato.
Eseguire il comando seguente in Cloud Shell fornito da Microsoft Azure per creare e avviare correttamente il pod dell'applicazione client.
1 |
kubectl create -f [dir]/client.yaml |
Il fornito NCache client è estremamente intelligente quando si tratta di creare connessioni all'interno del cluster. Tutto ciò di cui ha bisogno questo client è il nome del servizio con cui deve parlare affinché scopra automaticamente tutti i sottostanti NCache nodi del cluster per una determinata cache presenti all'interno del cluster Azure Kubernetes.
Il vantaggio più fattibile dell'utilizzo NCache in AKS è che non è necessario fornire gli indirizzi IP dei pod della cache per la connessione client. Il servizio di rilevamento senza testa creato in precedenza è responsabile della fornitura degli indirizzi IP dei pod della cache all'applicazione client in fase di esecuzione.
NCache Dettagli Distribuzioni di container NCache Documenti AKS
Passaggio 6: monitorare NCache Cluster
Ora che i servizi, i server e l'applicazione sono attivi e in esecuzione, è necessario un modo per monitorare l'attività della cache all'interno del cluster. Proprio per questo motivo, NCache viene fornito con vari strumenti per aiutarti a monitorare il tuo cluster di cache. Questi strumenti ti aiutano a farti un'idea migliore dello stato, delle prestazioni, dei problemi di rete e della connettività del tuo cluster.
NCache fornisce un Monitoraggio Web che mostra graficamente le prestazioni in tempo reale della tua cache.
Allo stesso modo, hai un Statistiche della cache opzione che fornisce un'analisi più dettagliata dell'attività della cache.
Passaggio 7: ridimensionamento NCache Cluster
NCache, essendo una cache distribuita estremamente scalabile, consente di aggiungere e rimuovere nodi server in fase di esecuzione per migliorare le prestazioni complessive di NCache. Durante il monitoraggio del tuo cluster, se ritieni che le richieste/sec siano di gran lunga maggiori del numero di server disponibili per intrattenere tali richieste, puoi aggiungere uno o più nodi cache all'interno della tua distribuzione.
Esistono diversi modi in cui è possibile ridimensionare il NCache cluster nella distribuzione del servizio Azure Kubernetes. Puoi usare il NCache Web Manager o NCache Strumento PowerShell o anche il NCache file YAML. Per saperne di più su come questi metodi vengono utilizzati per aggiungere e rimuovere nodi dal cluster, visita la nostra documentazione su Aggiunta di server di cache in un cluster AKS ed Rimozione dei server di cache da un cluster AKS.
NCache Dettagli Distribuzioni di container NCache Documenti AKS
Che cosa abbiamo imparato?
Da quanto abbiamo visto, possiamo dedurre che il servizio Azure Kubernetes è un orchestratore di contenitori completamente integrato e gestito che automatizza gli aggiornamenti e l'applicazione di patch. Per ottenere scalabilità e disponibilità elevata in un cluster AKS, in cui risiedono le applicazioni e le risorse, è necessario eseguire la distribuzione NCache in esso. NCache è una cache distribuita in memoria scalabile che offre prestazioni e scalabilità elevate all'interno del cluster AKS.
Per ottenere un'illustrazione dettagliata della distribuzione NCache in AKS, fare riferimento alla nostra documentazione su Distribuzione NCache nel servizio Azure Kubernetes.
Per favore, puoi usare diciture pulite e frasi fantasiose più grandi e più lunghe? Sta davvero soffrendo leggere gli articoli e le documentazioni nel tuo sito web...