L'introduzione della tecnologia dei container ha notevolmente migliorato la facilità di sviluppo delle applicazioni e Kubernetes è in prima linea in questo progresso. Kubernetes è una piattaforma open source che gestisce l'orchestrazione dei tuoi container su più macchine. Una di queste piattaforme Kubernetes, Red Hat OpenShift (di Red Hat), offre agli utenti la possibilità di ridimensionare automaticamente le applicazioni cloud. Ha contenitori di applicazioni alimentati da docker con servizi di orchestrazione e gestione offerti da Kubernetes. In quanto tale, OpenShift sta guadagnando popolarità per la sua semplice architettura di container. Fornisce un'architettura di distribuzione integrata per la gestione dei container utilizzando i servizi di orchestrazione Kubernetes. Pertanto, diversi prodotti stanno sfruttando questa distribuzione.
Ad esempio, è completamente NCache-supportato. NCache è una soluzione di cache distribuita in memoria che garantisce prestazioni e scalabilità elevate. Memorizzazione nella cache dei dati con NCache riduce i viaggi di rete e il carico sul database poiché i dati risiedono nella cache, più vicino alla tua applicazione. In questo articolo, il nostro focus è sui passaggi necessari per NCache distribuzione in Red Hat OpenShift.
NCache Dettagli NCache Distribuzione in OpenShift-Docs Usa il NCache in OpenShift Video
NCache Architettura di distribuzione in Red Hat OpenShift
Con NCache, puoi goderti la tua orchestrazione cloud basata sull'ambiente OpenShift con ulteriori NCache funzionalità utilizzando un'applicazione contenitore facile da gestire. Puoi iniziare con un singolo cluster Kubernetes con diverse distribuzioni di applicazioni e, soprattutto, il NCache distribuzione del cluster. Attualmente, le applicazioni contenitore basate su Docker in esecuzione nell'ambiente sono:
- Applicazione Web Java
- Applicazione di servizi Web Java
- ASP.NET Core applicazione
Queste applicazioni hanno NCache installato; in particolare, le applicazioni Java utilizzano client Java di NCache, mentre una distribuzione separata per ASP.NET core applicazioni utilizza un'immagine Docker su Linux e impiegare il .NET Core cliente per NCache comunicazione. Per la distribuzione lato server, usa a Docker basato su Linux immagine per NCache disponibile su Hub Docker.
Le applicazioni si connettono a un servizio chiamato Cache Discovery Service, un servizio headless all'interno di Kubernetes. Ha lo scopo di gestire l'instradamento e l'allocazione delle risorse che fanno parte del NCache grappolo. Allo stesso modo, anche un gateway di monitoraggio remoto si connette a questo servizio per consentire il monitoraggio del cluster di cache dall'esterno di Kubernetes per qualsiasi operazione come NCache gestione della cache.
Mentre lavoriamo con Kubernetes, utilizziamo i pod. In sostanza, in Kubernetes, gli IP vengono assegnati ai pod. Un pod è un oggetto Kubernetes che incapsula l'istanza di container sottostante mentre funge da livello virtuale sopra un container. Un singolo pod può avere più contenitori, ma è altamente consigliato che un singolo pod contenga un singolo contenitore. In breve, tutta l'allocazione delle risorse in un cluster Kubernetes avviene nel pod invece che nel container.
Il diagramma seguente fornisce una rappresentazione complessiva del flusso dell'architettura di NCache distribuzione:
NCache Dettagli Introduzione a Docker DockerLinux
Passaggio 1: distribuzione NCache Server
Distribuzione NCache server in Red Hat OpenShift richiede la creazione di un file YAML con il tuo NCache configurazioni. Queste distribuzioni YAML contengono tutti i componenti della tua applicazione e sono molto facili da distribuire. Assicurarsi di regolare questi componenti in base ai requisiti dell'applicazione. Di seguito è riportato il file YAML di esempio con le configurazioni:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
apiVersion: apps/v1beta1 kind: Deployment metadata: name: ncache labels: app: ncache spec: replicas: 2 template: metadata: labels: app: ncache spec: containers: - name: ncache image: docker.io/alachisoft/ncache:latest ports: - name: management-tcp containerPort: 8250 - name: management-http containerPort: 8251 - name: client-port containerPort: 9800 |
Kubernetes si sta evolvendo molto rapidamente e continua a presentare nuove funzionalità, che diventano rapidamente parte dell'API principale. Tuttavia, diverse funzionalità non seguono questa traiettoria a causa della loro natura sperimentale. Quindi, impostiamo la "apiVersion" di conseguenza. La versione utilizzata qui è "v1beta1", che dipende dalla versione Kubernetes sottostante. Quindi, assicurati di non utilizzare una versione obsoleta.
Le porte menzionate nel file di distribuzione includono quanto segue:
- Port 8250: Per la gestione del TCP.
- Port 8251: Per la gestione e il monitoraggio HTTP.
- Port 9800: Per la comunicazione tra le applicazioni client che si connettono NCache.
Innanzitutto, impostiamo il tipo di distribuzione. La cosa successiva è il numero di repliche (2 in questo caso) e puoi aumentarlo in base alla tua logica. Per ulteriori dettagli sulle repliche di pod, fare riferimento qui. Per i contenitori, è necessario specificare l'immagine Docker fornendo il percorso del file NCache Enterprise Immagine Docker del server Linux disponibile su Hub Docker. Il comando generale per estrarre questa immagine Docker è:
1 |
docker pull alachisoft/ncache:latest |
Una volta creato il file YAML con tutte le configurazioni necessarie, è necessario importare il file utilizzando la console web di OpenShift. Crea un nuovo progetto con un nome a tua scelta e importa il file YAML nel progetto contenente il file NCache distribuzioni. Puoi anche usare il Strumento CLI di OpenShift, che mostra lo stato delle distribuzioni.
NCache Dettagli NCache Scenari di distribuzione Docker per il port forwarding
Passaggio 2: crea il servizio di rilevamento della cache
Come stabilito in precedenza, il Cache Discovery Service è responsabile dell'instradamento di tutti i file NCache comunicazione ai pod sottostanti. Questo servizio di rilevamento funge da gateway di comunicazione centrale tra le applicazioni client e NCache cluster di cache che fanno parte del cluster Kubernetes. Inoltre, è un servizio headless e recupera gli indirizzi IP del sottostante NCache pod del server cache nel cluster Kubernetes.
Per creare un servizio di questo tipo, devi creare un altro YAML, come mostrato di seguito:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
apiVersion: v1 kind: Service metadata: name: cacheserver labels: app: cacheserver spec: clusterIP: None sessionAffinity: ClientIP selector: app: ncache ports: - name: management-tcp port: 8250 targetPort: 8250 - name: client-port port: 9800 targetPort: 9800 |
Qui prende il nome server cache. Tuttavia, è possibile farvi riferimento in modo appropriato per le proprie configurazioni. In questo caso, il "tipo" è servizio. Inoltre, contiene le porte con il nome e i numeri di porta necessari per la comunicazione insieme al servizio di rilevamento. La "sessionAffinity" è impostata su ClientIP, garantendo che le operazioni di gestione e monitoraggio all'esterno del cluster Kubernetes siano adesive a uno dei pod in un determinato momento. Dopo aver creato il file YAML, importa questo file tramite la procedura guidata e crea automaticamente il servizio di rilevamento della cache, come mostrato nell'immagine seguente.
Passaggio 3: crea gateway di gestione
Questo passaggio organizza la gestione e il monitoraggio delle operazioni all'esterno del cluster Kubernetes. Qualsiasi operazione di gestione in corso viene indirizzata attraverso questo gateway a questo servizio di rilevamento della cache e, a sua volta, ti aiuterebbe a gestire e monitorare anche tutti i pod sottostanti.
Per creare il gateway di gestione:
- Vai alla sezione "Networking" del portale OpenShift.
- Scegli un "Percorso" dal menu a discesa.
- Crea un percorso verso il servizio headless, noto anche come Cache Discovery Service.
- Fornire un nome per il percorso e selezionare il servizio "cacheserver" creato nel passaggio precedente. Inoltre, fornisci la porta di destinazione 8251 per la gestione e il monitoraggio all'esterno del cluster Kubernetes.
5. Una volta creato, scegli il percorso della posizione a cui reindirizzare NCache Web Manager in uno dei pod del server cache per "Posizione".
Passaggio 4: creare un cluster di cache
Ora che abbiamo distribuito con successo NCache in Red Hat OpenShift, possiamo creare un cluster di cache utilizzando NCache Web Manager.
Crea il cluster di cache seguendo i passaggi in documentazione e assicurati che gli IP utilizzati siano gli IP dei tuoi cache pod. Per ottenere gli IP dei cache pod, vai alla sezione "Pod" dalla console web di OpenShift o dallo strumento della riga di comando. Una volta il creazione della cache è completo, avvia la cache utilizzando NCache Web Manager.
NCache Dettagli Crea un cluster di cache Operazione di gestione della cache
Passaggio 5: distribuire le applicazioni client
Ora puoi distribuire ed eseguire le tue applicazioni client creando un file YAML contenente la distribuzione per i client. Importiamo questo file di distribuzione utilizzando il portale OpenShift. Le applicazioni client possono essere .NET Core o Java come richiesto.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
apiVersion: apps/v1beta1 kind: Deployment metadata: name: clientapp labels: app: clientapp spec: replicas: 1 template: metadata: labels: app: clientapp spec: containers: - name: clientapp image: your-client-application-repo-path ports: - name: management-tcp containerPort: 8250 |
Qui, per connetterci alla cache, non abbiamo bisogno degli indirizzi IP dei cache pod. Il servizio di rilevamento della cache che abbiamo creato con il nome "cacheServer" fornisce l'indirizzo IP dei pod della cache alla nostra applicazione client in fase di esecuzione. Il NCache client dispone di questa logica integrata per comunicare con il proprio servizio denominato e scoprire automaticamente tutte le risorse sottostanti all'interno della piattaforma OpenShift Kubernetes.
Quindi il NCache client è abbastanza intelligente da connettersi a un cluster completamente connesso fornendo il nome del servizio.
Passaggio 6: monitoraggio NCache Cluster
NCache viene fornito con vari strumenti per aiutarti a monitorare il tuo cluster di cache. Il monitoraggio del cluster di cache fornisce informazioni in tempo reale sullo stato del cluster, l'attività della cache, il numero di operazioni in corso e molto altro. Puoi anche monitorare il tuo cluster di cache per adottare misure adeguate per l'interruzione della rete, i sovraccarichi di memoria e molti altri.
NCache Web Manager è uno strumento di gestione fornito da NCache per configurare le cache e monitorarne le prestazioni. Allo stesso modo, NCache Monitoraggio Web è uno strumento di gestione web che consente di monitorare le prestazioni della cache in tempo reale.
Passaggio 7: ridimensionamento NCache Cluster
NCache è un sistema di caching distribuito con un'architettura molto scalabile. Quindi, per ottenere una maggiore capacità e funzionalità per NCache nel tuo ambiente OpenShift, puoi ridimensionare il tuo NCache cluster aggiungendo altri pod. Ci sono diversi modi per farlo. A partire dal portale web OpenShift:
- Vai a "Distribuzioni".
- Fare clic sul pulsante "Modifica conteggio".
- Aumenta il numero di pod facendo clic sul pulsante "+".
Procedendo automaticamente con questi passaggi, aumenta il numero di repliche nel file di distribuzione, in base al numero di pod aggiunti. Può anche avvenire utilizzando Strumento OpenShift CLI (oc)..
Tieni presente che aggiungendo questi pod, crei un altro pod, ma non diventa parte del cluster da solo. Quindi, a aggiungi server cache a un cluster di cache in esecuzione, vai alla pagina Nodi server da NCache Web Manager e aggiungi un IP del server per aggiungere quel nodo del server nel cluster. Un nodo del server viene aggiunto al cluster di cache in fase di esecuzione e migliora drasticamente le prestazioni con NCacheè facile scalare.
NCache Dettagli NCache Distribuzione in OpenShift Usa il NCache in OpenShift
Conclusione
Essenzialmente, NCache l'implementazione in Red Hat OpenShift è una procedura graduale e facile da seguire. La containerizzazione è una necessità tecnologica emergente del mondo di oggi per la natura leggera che offrono. NCache è una soluzione di memorizzazione nella cache distribuita estremamente veloce e, con Red Hat OpenShift, puoi gestire facilmente il tuo cluster Kubernetes containerizzato. Quindi, entra nel mondo di NCache per eseguire le tue applicazioni sul cluster Kubernetes con pochi semplici passaggi.