Criar acesso para NCache Gerenciamento no Amazon Elastic Kubernetes Service
A arquitetura básica do ambiente do Amazon Elastic Kubernetes Service confina cada pod dentro do cluster com IPs dinâmicos que não são acessíveis de fora desse cluster. E para você se beneficiar NCache dentro do cluster EKS criado, você precisa criar um serviço Kubernetes para fornecer acesso ao NCache vagens.
Além desse serviço, você precisa configurar um recurso de entrada do Kubernetes no Amazon Elastic Kubernetes Service para expor NCache Serviços. Esse serviço é implementado por um controlador de entrada em execução no cluster do Amazon Elastic Kubernetes Service. Um controlador de entrada usado com frequência é o controlador NGINX gerenciado pelo projeto Kubernetes. Como seu NCache a implantação estiver dentro do cluster EKS, esse serviço é definido como um balanceador de carga para reduzir o tráfego a uma coleção de pods e criar uma conexão persistente baseada em IP do cliente.
Serviço Amazon Elastic Kubernetes: crie um controlador de entrada
O processo de criação e uso de um Entrada NGINX O controlador é fornecido aqui. Esse é basicamente um processo de duas etapas que envolve a implantação dos recursos obrigatórios necessários para executar o controlador de ingresso no cluster e a configuração de um balanceador de carga para expor o controlador de ingresso de fora do cluster.
Para executar com êxito o controlador de entrada em seu cluster, você precisa implantar três arquivos YAML. Vamos passar por eles um por um.
Implantar recursos obrigatórios do NGINX
Para configurar um recurso obrigatório do NGINX Ingress Controller, você precisa ter o arquivo YAML obrigatório do NGINX. O arquivo obrigatório NGINX é o arquivo base necessário para executar o controlador NGINX, que neste caso é o seu balanceador de carga. Vamos chamar esse arquivo nginxmandatory.yaml e você pode obter o conteúdo dele de GitHub.
Depois de ter esse arquivo, você precisará implantá-lo dentro do cluster do Amazon Elastic Kubernetes Service. Para implantar o arquivo obrigatório NGINX, execute o seguinte comando na interface de linha de comando da AWS:
kubectl create -f [dir]/nginxmandatory.yaml
Criar arquivo de serviço NGINX LoadBalancer
Este arquivo contém as informações sobre o balanceador de carga da camada 7 que expõe o controlador de entrada NGINX fora do ambiente Kubernetes. Vamos chamar este arquivo YAML nginxservice.yaml e seu conteúdo pode ser encontrado aqui:
Note
Os parâmetros necessários para criar este arquivo YAML pronto para ser implantado são explicados no Propriedades tabela.
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:
# replace with the correct value of the generated certificate in the AWS console
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-west-2:XXXXXXXXXXXX:certificate/XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
# the backend instances are HTTP
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
# Map port 443
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
# Ensure the ELB idle timeout is less than nginx keep-alive timeout. By default,
# NGINX keep-alive is set to 75s. If using WebSockets, the value will need to be
# increased to '3600' to avoid any potential issues.
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"
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
Execute o seguinte comando no ambiente de shell configurado da AWS para configurar esse arquivo dentro do cluster EKS.
kubectl create -f [dir]/nginxservice.yaml
Criar arquivo de configuração NGINX
Junto com o serviço da camada 7, você precisa criar um ConfigMap do Kubernetes para configurar o balanceador de carga da camada 7. Vamos chamar este arquivo nginxconfigmap.yaml e seu conteúdo são mostrados abaixo.
kind: ConfigMap
apiVersion: v1
metadata:
name: nginx-configuration
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
data:
use-proxy-protocol: "false"
use-forwarded-headers: "true"
proxy-real-ip-cidr: "0.0.0.0/0" # restrict this to the IP addresses of ELB
Execute o seguinte comando na interface de linha de comando da AWS para criar esta configuração dentro do seu cluster:
execute create -f [dir]/nginxconfigmap.yaml
O próximo passo depois de configurar o controlador de ingresso é crio NCache cliente em seu cluster EKS, explicado no próximo capítulo.
Veja também
Criar serviço de descoberta no EKS
Crie NCache Cliente em EKS
Crie NCache Implantação do cliente no EKS
Criar cluster de cache no EKS