Implementando o Amazon EKS: do zero ao deploy · Parte 2 de 6
Implementando o Amazon Elastic Kubernetes Service: Do zero ao deploy (Parte 2/6)
O Amazon Elastic Kubernetes Service (Amazon EKS) é um serviço Kubernetes totalmente gerenciado na AWS. Com ele, clientes como a Intel…
Palavras-chave

O Amazon Elastic Kubernetes Service (Amazon EKS) é um serviço Kubernetes totalmente gerenciado na AWS. Com ele, clientes como a Intel, Snap, Intuit, GoDaddy, entre outras empresas, executam seus aplicativos mais confidenciais e essenciais à missão devido à segurança, confiabilidade e escalabilidade. Nesta série de publicações veremos como implementar o Amazon EKS do zero até o deploy de uma aplicação. Os tópicos que serão abordados:
- Parte 1 — Configurando um cluster no EKS
- Parte 2 — Configurando node-groups no EKS
- Parte 3 — Configurando usuarios IAM como Masters
- Parte 4 — Empacotando a partir do código fonte
- Parte 5 — Publicando uma imagem de conteiner para o ECR
- Parte 6 — Deploy no EKS a partir de uma imagem no ECR
Dando seguimento na nossa série, hoje iremos configurar os node-groups no EKS.
Os grupos de nós gerenciados (node-groups) do Amazon EKS automatizam o provisionamento e o gerenciamento do ciclo de vida dos nós (instâncias do Amazon EC2) para clusters de Kubernetes no Amazon EKS. Com os grupos de nós gerenciados do Amazon EKS, não é necessário provisionar ou registrar separadamente as instâncias do Amazon EC2 que fornecem capacidade computacional para executar seus aplicativos do Kubernetes. Você pode criar, atualizar ou encerrar nós para seu cluster com uma única operação. Os nós são executados usando a mais recente Amazon EKS otimizada AMIs em sua AWS conta. As atualizações e os encerramentos de nó drenam os nós para garantir que seus aplicativos permaneçam disponíveis.
Parte 2 — Configurando node-groups no EKS
CONFIGURANDO WORKER-NODES NO AWS EKS
- Provisionar stack com o nome EKS-Workernodes no CloudFormation para levantar os worker-nodes;
- Script disponível em https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2018-11-07/amazon-eks-nodegroup.yaml
- Selecionar o cluster EKS EKSDeepDive
- Selecionar o ClusterControlPlaneSecurityGroup;
- Selecionar a VPC do cluster EKS;
- No NodeGroupName, informar NodeGroup;
- Selecionar a AMI mais atual do Amazon Linux otimizado para EKS: https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html;
- Associar uma keypair caso deseja acessar via SSH algum worker-node específico;
- Associar a VPC do cluster EKS;
- Associar às subnets da VPC do cluster EKS;
- Configurar o AWS IAM EKS Authenticator;
- curl -O https://amazon-eks.s3-us-west-2.amazonaws.com/\cloudformation/2018-11-07/aws-auth-cm.yaml
- Editar o aws-auth-cm.yaml, para setar o Node Instance Role ARN retornado como Output do stack do CloudFormation
- kubectl apply -f aws-auth-cm.yaml
- kubectl get nodes — watch
CONFIGURANDO O KUBERNETES DASHBOARD
- Instalar o Kubernetes Dashboard, acessando https://github.com/kubernetes/dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.1/aio/deploy/recommended.yaml
- Instalar o Heapster e o InfluxDB para monitoramento:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/heapster.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/influxdb.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/rbac/heapster-rbac.yaml
- Por padrão, o Kubernetes Dashboard possui muitas restrições de acesso. Neste caso, será necessário criar um usuário para acesso do Dasboard;
- Criar o arquivo eks-admin-service-account.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: eks-admin
namespace: kube-system
- Criar o arquivo eks-admin-cluster-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: eks-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: eks-admin
namespace: kube-system
- Para acessar o Dashboard externamente, será necessário configurar um serviço de proxy no servidor para isso. Entretanto, o Kubernetes Dashboard pode ser instalado localmente — seguindo os passos anteriores. Para subir o serviço do proxy do Kubernetes:
- kubectl proxy — address 0.0.0.0 — accept-hosts ‘.*’ &
- Para logar no Kubernetes Dashboard, você acessará localhost:8001 e informará um token. Para gerar o token;
- Gerando o token em formato JSON
- aws-iam-authenticator -i EKSDeepDive token
- Gerando o token em formato RAW
- aws-iam-authenticator -i EKSDeepDive token | jq -r .status.token
No nosso próximo post, iremos conferir como configurar usuários IAM como Masters na administração do cluster e dos node-groups.
Até lá! =)
Comentários
Todo comentário passa por moderação antes de aparecer aqui. Nada é publicado automaticamente.
Carregando…