Registrando cluster EKS existente no Rancher 2.6
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 initterraform planterraform apply
Outputs:
2. 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.
3. Conecte na instância do Rancher para buscar o password utilizando o container-id:
docker psdocker logs container-id 2>&1 | grep "Bootstrap Password:"
4. Defina agora uma senha de sua escolha e siga em frente:
5. Logo na sequência, escolha 'Import Existing' e depois Amazon EKS:
6. Será necessário criar um usuário IAM para que o Rancher conecte no EKS:
7. 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
8. Voltando a console do rancher, defina o nome do cluster, a região em que ele está provisionado e as credenciais criadas anteriormente:
9. Em 'Cluster To register', escolha seu cluster EKS e siga em frente:
10. Cluster EKS registrado e ativo no Rancher:
11. 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!