Complementando o post anterior sobre EKS e Istio, podemos registrar um cluster EKS existente no Rancher, e aproveitar todos os recursos que ele nos proporciona.
Para isso, vamos utilizar o terraform para provisionar o Rancher 2.6.8 single node em uma instância EC2 e registrar o cluster EKS que já temos.
Pré-requisitos
Terraform instalado
AWS CLI instalado
Cluster EKS e VPC (Veja: https://medium.com/@paulofponciano/cluster-eks-com-istio-ingress-e-service-mesh-lab-session-ee8204eb544)
Key Pair provisionada na conta alvo
Credenciais administrativas da conta alvo/aws configuradas localmente
Variáveis
Entrada de informações para provisionamento do Rancher *single node. Importante informar security group ID adicional do EKS (linha 15).
variable "project_name" {
default = "pegasus-2"
}
variable "env" {
default = "dev"
}
variable "rancher_name" {
default = "rancher-node"
}
variable "eks-sg" {
type = string
default = "sg-03468a76eba533c6f"
}
variable "vpc_cidr_block" {
type = string
default = "172.28.0.0/16"
}
variable "subnet_id_public_az1" {
type = string
default = "subnet-05343e4dc141521f9"
}
variable "subnet_id_public_az2" {
type = string
default = "subnet-06ea2c1ad38d32f17"
}
variable "subnet_id_private_az1" {
type = string
default = "subnet-00a6a9c32c50a97ba"
}
variable "subnet_id_private_az2" {
type = string
default = "subnet-06cc1a1b63da22f8f"
}
variable "aws_details" {
type = map(string)
default = {
region = "us-east-2"
instance_type = "t3.medium"
key_name = "k8s" #keypair (.pem)
}
}
Construção
- Execute a stack:
terraform init
terraform plan
terraform apply
Outputs:
- Com o Public IP, Public DNS ou DNS customizado — Acesse a console do Rancher:
Veja que agora é necessário buscar o bootstrap password, podemos fazer isso seguindo as instruções da tela inicial.
- Conecte na instância do Rancher para buscar o password utilizando o container-id:
docker ps
docker logs **container-id** 2>&1 | grep "Bootstrap Password:"
- Defina agora uma senha de sua escolha e siga em frente:
- Logo na sequência, escolha *'Import Existing' *e depois Amazon EKS:
- Será necessário criar um usuário IAM para que o Rancher conecte no EKS:
Attach 'AdministratorAccess' policy
- Conecte no cluster EKS para ajustar o ConfigMap:
kubectl edit configmap aws-auth --namespace kube-system
Adicione:
mapUsers: |
- userarn: arn:aws:iam::<account_id>:user/rancher-access
username: rancher-access
groups:
- system:masters
- Voltando a console do rancher, defina o nome do cluster, a região em que ele está provisionado e as credenciais criadas anteriormente:
- Em 'Cluster To register', escolha seu cluster EKS e siga em frente:
- Cluster EKS registrado e ativo no Rancher:
- Deploy de exemplo através da console rancher — Import YAML:
Note: Como a carga aumentou no cluster, foi adicionado mais um node automaticamente conforme configuração do autoscaler:
Agora é seguir com os deploys…
Happy building!
Top comments (0)