Em todo o mundo, a vitória da conteinerização sobre a virtualização trouxe desempenho e confiabilidade entre aplicativos executados em diferentes ambientes de computação. O conceito de contêineres é que eles isolam códigos de software e todas as suas dependências para garantir uniformidade e consistência em qualquer infraestrutura. A Amazon, assim como muitas outras plataformas de nuvem, está amadurecendo rapidamente seus Elastic Kubernetes Services para atender às crescentes necessidades de computação dos clientes da AWS.
Embora o Amazon Elastic Kubernetes Service em si seja um serviço Kubernetes totalmente gerenciado, seguro e confiável, ele ainda requer muitas configurações manuais para gerenciar os clusters. Para garantir o desempenho do seu aplicativo em tal ambiente, você precisa usar NCache. NCache é uma solução de cache na memória que aumenta o desempenho do seu aplicativo e induz a escalabilidade melhorando a latência em seu cluster EKS.
NCache Adicionar ao carrinho Implantações de contêiner NCache Documentos EKS
NCache Arquitetura de implantação no Elastic Kubernetes Service
A estrutura básica de como NCache se encaixa em seu cluster EKS é muito simples. Você tem um balanceador de carga clássico na nuvem AWS que roteia solicitações HTTP para um controlador de entrada em execução no cluster EKS. Dentro deste cluster, você tem seu cluster de cache em execução NCache servidores dentro de vários pods. Esses pods são mapeados para um Serviço de descoberta de cache que permite o acesso do cliente aos pods de cluster que estão executando o serviço de cache. Você pode ter vários aplicativos implantados em vários pods e todos eles serão conectados ao cluster de cache por meio desse serviço de descoberta de cache.
Dentro deste cluster EKS, você também tem um NCache Gateway de monitoramento remoto serviço. Este é um NGINX Ingress Controller que fornece configurações de balanceador de carga para reduzir o tráfego para pods específicos com sessões fixas habilitadas. A parte restante do cluster é composta por vários aplicativos cliente, cada um em seu próprio ambiente de implementação.
O fluxo de solicitações e a estrutura de um cluster EKS com NCache implantado nele é mostrado no diagrama abaixo.
NCache Adicionar ao carrinho Implantações de contêiner NCache Documentos EKS
Então, sem mais delongas, deixe-me guiá-lo através de um guia fácil passo a passo sobre como você pode implantar NCache dentro do cluster do AWS Elastic Kubernetes.
Etapa 1: criar NCache Recursos
Para usar todas as funcionalidades NCache fornece a você dentro do cluster do Amazon Kubernetes, sua etapa imediata agora deve ser implantar NCache recursos dentro do EKS. Implantando NCache permitirá que você execute todas as operações de gerenciamento em seu cluster.
Você pode implantar NCache com a ajuda de certos arquivos YAML. Cada um desses arquivos contém informações específicas que desempenham seu papel no funcionamento contínuo de NCache dentro do EKS. Esses arquivos são:
- NCache Arquivo de implantação: Este arquivo contém a especificação real dos pods e imagens necessários que precisam ser usados. Essas informações incluem a contagem de réplicas, repositório de imagens, portas necessárias, etc.
- NCache Arquivo de serviço: Este arquivo cria um serviço sobre a implantação. O objetivo principal desse arquivo é expor a implantação do servidor.
- NCache Arquivo de entrada: Este arquivo contém as informações necessárias para criar uma sessão permanente entre um aplicativo cliente e o Web Manager em execução dentro do cluster Kubernetes.
Estas são as implantações básicas de YAML que você precisa implantar NCache serviços dentro de seu cluster EKS. Entre todos esses arquivos, o mais importante é NCache Arquivo YAML de implantação. Este arquivo se parece com isso:
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 |
Depois de criar essa implantação executando o comando a seguir na AWS CLI, o Kubernetes criará o número exato de pods mencionados no responder marcação. Em cada um desses pods, você terá um contêiner em execução. A imagem da qual este container é feito é fornecida com o imagem chave. No seu caso, este será o caminho para o NCache enterprise servidor que é colocado em Docker Hub. O portas contém todas as portas que precisam ser expostas para NCache serviços para funcionar no cluster.
1 |
kubectl create -f [dir]/filename.yaml |
Consulte NCache docs em Crie NCache Recursos em EKS.
NCache Adicionar ao carrinho Implantações de contêiner NCache Documentos EKS
Etapa 2: criar NCache Serviço de descoberta
A etapa anterior leva você a configurar o lado do servidor do NCache. Depois que isso for executado com sucesso, você precisa trabalhar na criação de um serviço de descoberta que exponha seu NCache recursos para os aplicativos clientes.
Fora do cluster Kubernetes, os endereços IP estáticos são necessários para uma comunicação bem-sucedida do cliente. Por mais conveniente que seja, dentro do cluster Kubernetes, cada pod implantado recebe um endereço IP dinâmico em tempo de execução que permanece desconhecido para os clientes. Essa anomalia causa problemas de comunicação dentro do cluster, onde os aplicativos cliente não conseguem identificar NCache servidores. Aqui, a necessidade de um serviço de descoberta sem periféricos dentro de seu cluster EKS para você NCache clientes surge.
Este serviço headless resolve esse problema expondo os endereços IP do NCache servidores para os aplicativos clientes. Esses clientes usam esses IPs para criar os identificadores de cache necessários e para iniciar as operações de cache.
Para permitir que todos os clientes se conectem ao serviço headless com facilidade, crie e implante um arquivo YAML de descoberta de cache conforme fornecido:
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 |
O que torna este serviço um serviço headless é a tag clusterIP definido como "Nenhum". Este comportamento indica que este serviço é específico para NCache e não será acessível fora do cluster EKS. Marcação seletor definido para ncache ajuda este serviço a identificar todos os pods cujo rótulo é ncache para que seus IPs possam ser expostos aos clientes.
Um pequeno insight sobre como as coisas funcionam: para o cliente que se conecta aos servidores, apenas um endereço IP será suficiente, pois o servidor ao qual ele se conecta compartilha os endereços IP de todos os servidores que fazem parte desse cluster de cache.
Quando o arquivo estiver pronto para ser implantado, execute o seguinte comando na interface de linha de comando da AWS.
1 |
kubectl create -f [dir]/cachediscovery.yaml |
Para uma implantação detalhada passo a passo, siga nossa documentação em Criar serviço de descoberta.
NCache Adicionar ao carrinho Implantações de contêiner NCache Documentos EKS
Etapa 3: criar acesso para NCache Assistência Domiciliária
Para expor permitir NCache acesso de gerenciamento de fora do cluster, você precisa configurar é um controlador de ingresso. Esse controlador abstrai as estratégias básicas do balanceador de carga que você normalmente usa em implantações de contêiner. Um controlador de ingresso usado com frequência é o NGINX Controller que, quando implantado, é responsável por criar todos os serviços necessários para expor NCache serviços fora do cluster.
Para implantar o NGINX Ingress Controller em seu cluster EKS, você precisa criar várias implantações de arquivo nele. Esses arquivos contêm todas as informações necessárias para que seu cluster Kubernetes instale um balanceador de carga NGINX totalmente funcional.
Abaixo estão listados os arquivos necessários com uma breve explicação do que eles fazem e por que eles são necessários:
- Arquivo obrigatório NGINX: Esses arquivos são os arquivos básicos necessários para executar o NGINX Controller; que no seu caso será um balanceador de carga dentro do cluster EKS. Você pode encontrar este arquivo em GitHub.
- Arquivo de serviço NGINX: Este arquivo contém as informações sobre o balanceador de carga layer7 que expõe o NGINX Ingress Controller para fora do ambiente Kubernetes.
- Arquivo de configuração NGINX: Este arquivo contém todos os parâmetros necessários para configurar o balanceador de carga Layer7.
Entre os arquivos citados, Serviço NGINX YAML é o arquivo que contém as informações de portas necessárias para criar um balanceador de carga ciente de NCache acesso gerencial. O conteúdo deste arquivo é mostrado abaixo:
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 |
Todos esses arquivos são criados como arquivos YAML que são implantados com muita facilidade dentro do cluster EKS. Tudo o que você precisa fazer é executar o comando a seguir para cada arquivo na ferramenta de linha de comando configurada pela AWS.
1 |
kubectl create -f [dir]/<filename>.yaml |
Na execução, esse comando criará um balanceador de carga que permite a aderência dentro do cluster. Para obter informações detalhadas, consulte nossa documentação em Criar acesso para NCache Assistência Domiciliária.
NCache Adicionar ao carrinho Implantações de contêiner NCache Documentos EKS
Etapa 4: criar cluster de cache
Agora que você tem suas implantações e serviços coletivos, você precisa criar um NCache cluster para permitir que seus clientes se conectem aos servidores de cache.
Quando você implantou NCache serviço, você implantou secretamente NCache Web Manager também que vem totalmente integrado com o NCache operações de gestão. Você pode usar isso NCache Web Manager para criar seu cache clusterizado e brincar com ele. Tudo o que você precisa fazer é seguir estas etapas básicas fornecidas em NCache docs em Criar cache clusterizado e você está pronto para ir! Aqui, no entanto, o que precisa de sua maior concentração é que os IPs dos nós de servidor que você precisa adicionar devem ser os mesmos que os IPs dos pods de servidor atribuídos pelo cluster Kubernetes. Você pode obter a lista desses IPs e seus detalhes executando o obter vagens comando na ferramenta de linha de comando da AWS.
Etapa 5: criar a implantação do aplicativo cliente
NCache implantação do cliente, assim como NCache implantação de recursos, especifica o número de contêineres de imagem de cliente em execução, o repositório privado do Dockerhub onde o aplicativo é colocado, portas e assim por diante. Essas informações ajudam você a criar um contêiner de cliente totalmente funcional.
Para obter o aplicativo cliente de um repositório privado, você precisa sempre mencionar as credenciais de login. Para evitar esse incômodo, você pode criar um segredos.yaml arquivo que contém suas informações de login que precisam ser preenchidas uma vez e podem ser acessadas por todos os recursos do cliente de chamada. Referir-se NCache docs em Criar implantação de cliente para obter uma visão detalhada das etapas e dos arquivos YAML.
Da mesma forma, a implantação do cliente real também é criada na forma de um arquivo YAML. Esse arquivo conterá todas as informações necessárias para implantar seu aplicativo cliente (ou aplicativos; sua chamada) em seu cluster EKS. O conteúdo deste arquivo é mostrado abaixo:
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 se trata de implantar os contêineres da imagem, o processo a seguir é assim:
1. A imagem é acessada do repositório.
2. O arquivo de segredos do cliente é lido do NCache recurso secreto para autenticação.
3. A imagem é extraída e implantada em um contêiner com o aplicativo cliente em execução.
Aqui, como temos uma implantação e não um serviço, o que você precisa fazer é entrar no pod e executar o comando batch na AWS CLI para iniciar a execução do aplicativo cliente.
1 |
kubectl exec --namespace=ncache client-podname -- /app/<clientapplication>/run.sh democlusteredcache cacheserver |
NCache Adicionar ao carrinho Implantações de contêiner NCache Documentos EKS
Etapa 6: monitorar NCache Agrupar
Até este ponto, você fez tudo o que precisava para tirar o melhor proveito NCache dentro de seu cluster do Amazon EKS totalmente funcional e em execução. Você obtém alta disponibilidade, escalabilidade, confiabilidade e outras coisas simplesmente com a implantação NCache no aglomerado. Mas adivinhem? Isso não é tudo isso NCache oferece.
Me ouça. Dentro do cluster EKS, no meio de todas as operações, armazenamento e transferência de dados, NCache permite que você monitorar atividade de cache através de várias ferramentas. Essas ferramentas ajudam você a ter uma ideia melhor sobre a integridade, o desempenho, as falhas de rede e muito mais do cluster.
Dê uma olhada na NCache Monitor da Web para uma representação gráfica do desempenho em tempo real e NCache Estatísticas para estatísticas de desempenho.
Etapa 7: dimensionamento NCache Agrupar
Para fornecer escalabilidade extrema, NCache permite que você dimensione seu cluster para cima ou para baixo em tempo de execução para aprimorar o desempenho geral de seu aplicativo. Por exemplo, se você sentir que o cluster de cache está recebendo solicitações com muita frequência para que os nós acompanhem as transações crescentes, NCache permite adicionar vários servidores para acomodar a carga. Para ver como você pode adicionar ou remover nós de servidor do cluster de cache em tempo de execução enquanto permanece dentro do cluster EKS, confira nossa documentação em Adicionando servidor de cache no EKS e Removendo servidores de cache do EKS.
Vamos Acabar com Tudo
A partir deste artigo, você pode experimentar um passo a passo de NCache implantação em um cluster do Amazon EKS. A questão proeminente aqui é por que você precisa NCache dentro de um ambiente de contêiner já completo? Bem, deixe-me resumir bem rápido para você.
- Solução na memória: NCache aumenta o desempenho do seu aplicativo implantado por um fator notável.
- Escalabilidade linear: NCache é útil quando a carga em seu cluster de cache aumenta.
- Extremamente flexibilidade: NCache reequilibra automaticamente os dados dinamicamente sem qualquer intervenção do cliente.
Você colocou tudo isso em cima dos recursos já fornecidos pelo AWS EKS e conseguiu um ambiente de alto nível para executar seu aplicativo. Então, o que você está esperando? Implantar NCache em seu cluster EKS agora mesmo e testemunhe a magia por si mesmo.
NCache Adicionar ao carrinho Comparação de edições Baixar NCache