utilização NCache no serviço AWS Elastic Kubernetes (EKS)

Cluster Elastic Kubernetes com Docker Containers

O AWS Elastic Kubernetes Service (EKS) é um serviço Kubernetes gerenciado pela Amazon Web Services (AWS) que permite configurar seu cluster Kubernetes junto com todos os patches e atualizações mais recentes para a infraestrutura subjacente que o suporta.

Se você estiver trabalhando com .NET/.NET Core ou aplicativos Java em execução no EKS e você deseja usar NCache para melhorar seu desempenho e escalabilidade durante cargas de transação de pico, então tenha certeza de que NCache suporta totalmente este ambiente.

Assista a este vídeo para ver como é fácil implantar NCache em seu cluster do Amazon Elastic Kubernetes.

NCache Implantação no EKS

Na Nuvem AWS temos um balanceador de carga clássico na frente de um Ingress Controller, que está sendo executado dentro do cluster Kubernetes. O recurso Kubernetes Ingress que é implementado por este Ingress Controller roteia as solicitações HTTP provenientes do balanceador de carga para os diferentes serviços em execução no cluster. Agora, em qualquer desses ambientes de aplicativos distribuídos, também precisamos ter uma solução de cache distribuído, que forneça escalabilidade, confiabilidade e alta disponibilidade ao executar operações de leitura rápida e é aí que NCache .

ncache-deployment_eks

NCache pode ser implantado em seu cluster EKS como NCache servidores que estão sendo executados em contêineres do Linux e esses contêineres são hospedados nos pods do Kubernetes. Os endereços IP desses NCache servidores são resolvidos pelo Serviço de descoberta de cache, que é um serviço headless do Kubernetes e os endereços IP de lá são usados ​​pelos aplicativos cliente para criar identificadores de cache com os quais eles podem se conectar ao NCache cluster e comece a realizar operações de gerenciamento e CRUD.

A seguir estão os parâmetros importantes da demonstração que estaremos realizando hoje. o NCache Os servidores que serão implantados no cluster EKS usarão a seguinte imagem do Docker 'alachisoft/ncache' com uma etiqueta de 'enterprise-server-linux-5.0.2'.

detalhes do ambiente de demonstração

Para obter todas as imagens que NCache fornece, deixe-me ir até o Alachisoft local na rede Internet. Selecione os 'Baixar' guia e, em seguida, clique em 'NCache'. Isso o levará ao NCache centro de downloads. Rolando para baixo até a seção 'Docker Hub', posso simplesmente clicar na segunda entrada do topo e isso me direcionará para o Hub do Docker A página de Alachisoft NCache. Aqui você pode ver todas as imagens que NCache fornece. Voltando aos parâmetros, a imagem que será utilizada tem a NCache Enterprise 5.0 SP2 Edition com um .NET Core instalação. O cache clusterizado que estaremos criando usará a Topologia de Partição de Réplica. Os dois aplicativos de teste que serão usados ​​são os seguintes. Nós temos um .NET Core Aplicativo e um Aplicativo Java e, em ambos os casos, mostraremos o aspecto App Data Caching de NCache. Vamos começar com 2 NCache servidores e, em seguida, aumentar esse número para 3. Para demonstrar isso, podemos fazer alterações dinâmicas no NCache estado do cluster sem afetar o desempenho do cliente.

Criar cluster EKS

Agora estamos prontos para iniciar nossa demonstração. A primeira coisa a fazer, é claro, é configurar a infraestrutura EKS na qual implantaremos nossos NCache recursos do servidor e do cliente. Aqui, estou na página de introdução da AWS para o serviço EKS. Aqui você encontrará todas as informações necessárias para colocar em funcionamento seu primeiro cluster EKS. As informações incluem os pré-requisitos, como a função do IAM e as políticas necessárias.

criar-eks-cluster

Além disso, ele detalha a criação de uma VPC, na qual você implantará seu cluster EKS.

criar-eks-cluster2

Mais abaixo, você encontrará informações sobre a instalação e uso da AWS CLI e utilitários de linha de comando 'kubectlc' para acesso e gerenciamento do cluster Kubernetes.

criar-eks-cluster3

Também estão incluídas informações sobre o Grupo de nós gerenciado pelo Kubernetes, que fornecerá os nós do trabalhador, nos quais você implementará seus recursos do Kubernetes. Usarei as informações fornecidas aqui para criar um cluster EKS em uma VPC com 2 sub-redes públicas e 2 sub-redes privadas e, assim que meu cluster EKS estiver funcionando, prosseguirei com o restante da demonstração.

Usando essas etapas fornecidas na página de introdução, já criei as funções do IAM e a infraestrutura VPC para meu cluster EKS. Agora, vou passar por essas etapas de criação da infraestrutura do EKS.

console de gerenciamento aws

Então, para isso, estou no meu console de gerenciamento da AWS e vou clicar no link do Elastic Kubernetes Service. Isso me levará à página principal do serviço EKS. Abaixo do título 'Amazon EKS' no painel esquerdo da página, vou clicar no link 'Clusters'.

aws-management-console2

No momento, não tenho nenhum cluster EKS. Para isso, vou clicar no link 'criar cluster'.

criar-eks-cluster4

Por aqui vou dar os parâmetros de configuração. Então, vou começar com o nome do cluster EKS que é 'eks-ncache'. Vou selecionar '1.14' para 'versão do Kubernetes'. Vou selecionar a 'função do IAM' e a 'VPC' também. Vou selecionar o grupo de segurança e todo o resto será mantido como padrão e vou dar uma tag para o cluster EKS e assim que tudo isso estiver feito, vou clicar no botão 'criar'.

Agora que o Grupo EKS está sendo criado, vou pausar o vídeo, pois isso vai demorar um pouco. Na página do meu cluster EKS, posso ver que 'eks-ncache' está ativo'. O segundo passo é criar o Manage Node Group e, para isso, vou rolar para baixo até a seção 'Node Groups' e clicar no botão 'Add Node Group'.

criar-node-grupo

Vou dar os parâmetros começando com o nome do Node Group e vou selecionar a 'função do IAM'.

função iam

Vou selecionar o 'par de chaves SSH', clique em 'Avançar'.

par de chaves ssh

Aqui vou usar o seguinte 'tipo de AMI' e para o 'tipo de instância', usarei 't3.small'. Depois disso, vou clicar em 'Avançar'.

tipo ami

Vou selecionar 2 nós de trabalho, clique em 'Avançar'.

nós de trabalho

E aqui depois de olhar os parâmetros, vou clicar em 'Create' para iniciar a criação do meu Node Group. Vemos aqui que o Node Group está no status de criação agora, então vou pausar o vídeo. Vemos aqui agora que meu grupo de nós EKS está 'ativo' e a criação da minha infraestrutura EKS está completa.

criar-node-group2

No terminal PowerShell da minha máquina cliente, vou usar a AWS CLI, para criar meu arquivo 'kubeconfig', para ter acesso ao cluster EKS e o arquivo 'kubeconfig' foi criado. Agora, vou confirmar minha conexão com o cluster EKS e veremos os dois nós de trabalho incluídos no grupo de nós gerenciado pelo EKS.

cmd

Implantar controlador de entrada

A primeira coisa que vou fazer é implantar os recursos do Kubernetes necessários para o Ingress Controller. Voltando ao diagrama de arquitetura, o Ingress Controller mostrado aqui será usado para implementar o recurso Ingress que implantaremos posteriormente.

ncache-deployment_eks

Em nossa demonstração, estamos usando o controlador NGINX Ingress devido à sua popularidade. Em primeiro lugar, vamos implantar os recursos obrigatórios necessários para que o NGINX Ingress Controller funcione em qualquer ambiente Kubernetes e depois vamos implantar os recursos específicos da AWS, que irão ativar um balanceador de carga clássico na frente do NGINX Ingress Controller e permitir que o NGINX Ingress Controller receba solicitações HTTP de fora do cluster Kubernetes por meio desse balanceador de carga clássico.

Agora vou implantar os recursos obrigatórios necessários para o NGINX Ingress Controller. As definições desses recursos podem ser encontradas seguindo o URL fornecido na seção destacada. Então, sem mais, vamos começar e os recursos obrigatórios foram implantados. Aqui tenho o arquivo YAML aberto, que usarei para implantar dois recursos relacionados ao controlador NGINX Ingress.

yaml

O primeiro recurso é o serviço de balanceador de carga que será usado para ativar um balanceador de carga clássico na frente do NGINX Ingress Controller. Como podemos ver na seção de anotação, o balanceador de carga estará operando na camada 7 roteando solicitações HTTP para o NGINX Ingress Controller. A seguir, o outro recurso que iremos implantar é o recurso 'ConfigMap', que contém os parâmetros de configuração de como o NGINX Ingress Controller se comportará no cluster Kubernetes.

Agora vou implantar esses recursos usando o 'kubectl apply' comando e os recursos foram implantados. Deixe-me ir ao meu painel do EC2 e confirmar se o balanceador de carga foi ativado. Se eu atualizar esta página, você verá um novo balanceador de carga introduzido. Deixe-me clicar no link 'load balancers' e aqui está o load balancer na frente do NGINX Ingress Controller.

painel ec2

Implantação NCache Servidores

Agora vamos implantar NCache Servidores para o cluster EKS. Voltando ao diagrama de arquitetura novamente, esses NCache servidores são usados ​​para criar o cache clusterizado no cluster EKS. Aqui está o arquivo YAML para implantar o NCache servidores para o cluster Kubernetes. Como podemos ver, este é um recurso de implantação que vai girar até NCache servidores dentro do cluster EKS. A seguir estão as portas nas quais o NCache servidores estarão ouvindo. Temos a porta 'management-tcp' com um valor de 8250, na qual o NCache os servidores estarão escutando as solicitações de conexão do cliente. Temos a porta 'management-http' com um valor de 8251 na qual o NCache gerenciador web estará escutando e então temos o 'client-port' com um valor de 9800, no qual o NCache os servidores estarão escutando as solicitações de operação CRUD do cliente.

yaml2

Com o 'kubectl apply' comando, vou agora criar o NCache server Pods no meu cluster EKS e agora vamos verificar o status dos Pods. Os pods estão em execução. temos 2 NCache Servidores com os endereços IP mostrados aqui.

cmd2

NCache Serviço de descoberta

Agora vamos implantar o NCache Serviço de descoberta. O Serviço de Descoberta de Cache é um serviço sem periféricos que está sendo executado em cima do NCache Pods de servidor. Sua função é resolver os endereços IP que serão utilizados pelos aplicativos clientes, quando quiserem se conectar com o Cache clusterizado.

ncache-deployment_eks3

Aqui está o arquivo YAML para o serviço headless do Kubernetes. Como podemos ver, o nome do serviço será 'cacheserver'. Observando as seções 'seletor' e 'portas', vemos que este serviço será executado em cima do NCache Pods de servidor.

yaml3

Agora vou criar o recurso Cache Discovery Service no meu cluster EKS usando o 'kubectl apply' comando. Agora que o serviço foi criado, vamos ver a descrição dele. Podemos ver que os 'Endpoints' que o serviço resolve para conter os endereços IP do NCache servidores, com os endereços IP mostrados na seção destacada, sendo os mesmos que os endereços IP mostrados aqui.

cmd3

NCache Serviço de Gerente

Nós vamos usar o NCache Web Manager, para criar nosso cache clusterizado e adicionar nós a ele. Para expor o NCache Web Manager, vamos implantar outro recurso de serviço do Kubernetes. Aqui está o arquivo YAML para o serviço Kubernetes, que irá expor o NCache gerenciador web

yaml4

Como podemos ver, o 'nome' do serviço será 'ncache' e na seção 'portas', vemos que a porta de 80 será mapeada para a porta de destino 8251, na qual o NCache O Web Manager estará ouvindo. Olhando para a seção 'seletor', vemos que o serviço será executado em cima do NCache Pods de servidor. Este serviço será registrado no backend do recurso Ingress que implantaremos posteriormente e a partir daí poderemos acessar o gerenciador web do nosso navegador.

agora vou criar o NCache recurso de serviço no meu cluster EKS usando o 'kubectl apply' comando. Agora que o serviço foi criado vamos olhar a descrição novamente e vemos aqui que os 'Endpoints' que o NCache serviço resolve, são os endereços IP do NCache Servidores.

cmd4

NCache Ingresso

Agora, implantaremos o recurso Kubernetes Ingress que exporá o NCache Web Manager do nosso navegador. O recurso Ingress será implementado pelo controlador NGINX Ingress. o NCache serviço que será registrado no back-end do Ingress, permitirá que as solicitações HTTP provenientes do balanceador de carga sejam roteadas para o NCache Gerenciador de sites para NCache fins de gestão. Aqui está o arquivo YAML para o recurso Ingress que implantaremos no cluster EKS.

yaml5

O 'nome' do Ingress é 'ncache' e pelas anotações, podemos ver que ele será implementado com o controlador NGINX Ingress. Além disso, essas anotações mostram que usaremos sessões adesivas com o NCache Gerenciador Web. Então, para não ficar pulando pelas diferentes instâncias do gerenciador da web em execução nos diferentes NCache servidores e podemos facilmente criar nosso cache clusterizado e adicionar nós a ele na mesma sessão. Na seção de regras, vemos que o caminho raiz da URL será mapeado para o NCache serviço, que expõe a NCache Gerenciador Web.

Agora vamos criar o recurso Ingress em nosso cluster EKS. Agora que o Ingress foi criado, vamos verificar o status dele. Vemos agora que o Ingress está funcionando. Vamos verificar a URL do Ingress. A URL é fornecida na seção 'Endereço'. Se eu copiar este URL no meu navegador, poderei acessar meu Web Manager. Então, indo para o meu navegador, clicando aqui e colando a URL e agora acessamos com sucesso o NCache Web Manager de dentro do cluster Kubernetes.

Criar cluster de cache

Agora vamos criar nosso cache clusterizado. Agora vou seguir as etapas de criação de um cache clusterizado usando o NCache Gerenciador Web. Então, para começar, clique no botão 'Novo' mostrado aqui.

criar-cache-cluster

Agora vamos dar um nome ao cache clusterizado, 'democache', clique em 'Next'.

nome-cache

Vamos usar a partição da topologia de réplica, no modo 'Assíncrono'.

modo assíncrono

E agora eu vou adicionar o NCache servidores para o cache clusterizado. Então, clicando no botão '+' e adicionando o outro servidor também. Com os dois servidores adicionados, clique em 'Avançar'.

ncache-servidores

Mantenha tudo padrão e no final clique em 'Concluir'. Vemos aqui agora na janela principal que o 'democache' foi criado com sucesso.

criado em cache de demonstração

Para iniciá-lo, marque a caixa de seleção ao lado do nome do cache e pressione 'Iniciar'.

demo-cache-criado2

O cache foi iniciado com sucesso. Agora vou clicar na guia 'Monitor' para abrir o NCache ferramenta de monitoramento.

ncache-ferramenta de monitoramento

Em primeiro lugar, na seção 'Cluster Health', vemos que o cache clusterizado está totalmente conectado.

saúde do cluster

Vemos diferentes contadores de desempenho do lado do servidor aqui. Na seção 'Contagem', vemos que a conta é 0, porque não iniciamos nenhum aplicativo cliente. Chegando ao 'Client Dashboard', aqui você poderá monitorar o NCache contadores de desempenho do lado do cliente.

painel do cliente

No 'Report Dashboard', você obtém uma visão geral dos contadores do lado do servidor e do lado do cliente.

painel de relatório

Implantar e executar aplicativos cliente

Com o cache clusterizado criado, agora executaremos nossos aplicativos clientes. Aqui está o arquivo YAML, que será usado para implantar os aplicativos cliente no cluster EKS.

yaml6

Como pode ser visto no recurso de implantação, que tem o nome de cliente, teremos um Pod, no qual os aplicativos cliente estarão em execução. A 'imagem' usada é mostrada aqui, ela contém tanto o .NET Core e aplicativos Java, bem como o NCache instalação do cliente, para que possamos coletar as informações do lado do cliente NCache contadores de desempenho. Agora vou implantar meus recursos de cliente no cluster EKS. Agora que os recursos foram criados. Vamos verificar o status do Client Pod. A primeira coisa que faremos é iniciar o .NET Core Inscrição. Dentro do Client Pod, vou executar o seguinte comando Shell, "/app/testerdotmet/run.sh servidor de cache democache" que recebe dois parâmetros, ou seja, o nome do cache, que é 'democache' e o nome do serviço headless, que é 'cacheserver'.

comando

E vemos agora que o .NET Core aplicativo está em execução. Vindo para o NCache Monitor, vemos na seção 'Cluster Health' que temos 1 cliente e vemos uma absorção na atividade do contador. A contagem está aumentando, uma vez que o .NET Core aplicativo está despejando dados no cache e na seção 'Processo do cliente' aqui está o IP do pod no qual o .NET Core aplicativo está em execução, bem como o ID do processo do aplicativo. Chegando ao 'Client Dashboard', vemos aqui que temos contadores do lado do cliente, vindos do Pod do cliente.

cliente-dashboard2

No 'Report Dashboard', obtemos uma visão geral desses contadores de desempenho do lado do servidor e do cliente.

relatório-painel2

Agora que o .NET Core aplicativo está sendo executado, agora vamos iniciar o aplicativo Java. Assim como com o .NET Core aplicação, dentro do Pod cliente, vou executar o seguinte comando shell, que usa os mesmos parâmetros que o .NET Core aplicativo, ou seja, o nome do cache e o nome do serviço headless.

cmd5

E vemos aqui que o aplicativo Java está em execução. Voltando ao NCache monitor, vemos aqui agora que existem 2 clientes e descendo para a seção 'Processo do cliente', vemos outra entrada para o processo do cliente, que está relacionada ao aplicativo Java. Então, com isso, conseguimos confirmar que os aplicativos podem se conectar com o NCache servidores em execução no mesmo cluster Kubernetes.

Dimensionamento NCache Agrupar

Agora vamos escalar nosso NCache Cacho. A primeira coisa que vou fazer é escalar o NCache deployment para 3, para que eu tenha outro servidor para adicionar ao cluster de cache. Agora que a implantação foi dimensionada, vejamos os endereços IP do Pod do servidor e aqui vemos outro NCache servidor adicionado ao cluster Kubernetes.

cmd6

E para adicionar o novo servidor de cache, vou clicar no link 'Ver detalhes', na frente do nome do cache.

novo-cache-server

Descendo para a seção 'Server Nodes', vou clicar no botão 'Add' e fornecer o endereço IP do 3º Servidor.

adicionar endereço IP

Agora que o servidor foi adicionado, vou iniciá-lo e para isso vou marcar a caixa de seleção ao lado do endereço IP e clicar em 'Iniciar'.

começo

Agora que o servidor de cache foi iniciado, vamos voltar para a janela principal e aqui vemos 3 servidores para o 'democache'.

3 servidores

Chegando à janela do monitor e na seção 'Contagem', a contagem por nó caiu devido à estratégia de balanceamento de carga que está em vigor.

painel do servidor

Voltando à janela principal, vou clicar no botão de reticências ao lado do nome do cache e selecionar 'Mostrar estatísticas', para que eu possa obter outra visualização do cluster de cache. Aqui vemos as Partições Ativas e de Réplica, proporcionando confiabilidade, por ter os dados em 1 Nó de servidor, com backup de outro Nó de servidor, dentro do mesmo cluster de cache.

estatística

Isso nos leva ao final desta apresentação. Se você tiver alguma dúvida sobre a demonstração que foi realizada hoje, ou quiser saber mais sobre os diferentes recursos que NCache fornece, não hesite em contactar-nos em support@alachisoft.com. Obrigado.

© Copyright Alachisoft 2002 - . Todos os direitos reservados. NCache é uma marca registrada da Diyatech Corp.