logo
Menu
Criando um cluster eks com o eksctl

Criando um cluster eks com o eksctl

Aprenda a criar e gerenciar um cluster EKS com o eksctl de forma prática e eficiente, aproveitando o poder do Kubernetes na AWS.

Published Jul 9, 2024
Criando um cluster eks com o eksctl
Para criar um cluster EKS com o eksctl, você precisa ter o eksctl instalado, realize a instalação com o comando abaixo:
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin
Iremos precisar do AWS CLI instalado e configurado em nossa máquina. Para instalar o AWS CLI, use o comando abaixo:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
Agora exporte as variáveis de ambiente com suas credenciais da AWS:
export AWS_ACCESS_KEY_ID=your_access_key_id
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
export AWS_DEFAULT_REGION=your_region
Para criar um cluster EKS, execute o comando abaixo:
eksctl create cluster --name=nataliagranato --nodes=2 --node-type=t3.medium
Outra opção é criar um arquivo de configuração para o eksctl, como o exemplo abaixo:
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: nataliagranato
region: us-east-1
version: "1.29"
availabilityZones: ["us-east-1a", "us-east-1b", "us-east-1c"]
vpc:
cidr: 172.20.0.0/16
clusterEndpoints:
publicAccess: true
privateAccess: true
iam:
withOIDC: true
serviceAccounts:
- metadata:
name: s3-fullaccess
attachPolicyARNs:
- "arn:aws:iam::aws:policy/AmazonS3FullAccess"
- metadata:
name: aws-load-balancer-controller
namespace: kube-system
wellKnownPolicies:
awsLoadBalancerController: true
- metadata:
name: external-dns
namespace: kube-system
wellKnownPolicies:
externalDNS: true
- metadata:
name: cert-manager
namespace: cert-manager
wellKnownPolicies:
certManager: true
- metadata:
name: cluster-autoscaler
namespace: kube-system
wellKnownPolicies:
autoScaler: true
Para criar o cluster com o arquivo de configuração, execute o comando abaixo:
eksctl create cluster -f cluster.yaml
Crie um nodegroup com o comando abaixo:
eksctl create nodegroup --cluster=nataliagranato --region=us-east-1 --name=ng-1 --node-type=t3.medium --nodes=2 --nodes-min=2 --nodes-max=4
ou com o arquivo de configuração:
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: nataliagranato
region: us-east-1
version: "1.29"
managedNodeGroups:
- name: ng-ondemand
instanceTypes: ["m6a.xlarge"]
spot: false
privateNetworking: true
minSize: 1
maxSize: 1
desiredCapacity: 1
volumeSize: 50
volumeType: gp3
updateConfig:
maxUnavailablePercentage: 30
availabilityZones: ["us-east-1a"]
ssh:
allow: false
labels:
node_group: ng-ondemand
tags:
nodegroup-role: ng-ondemand
k8s.io/cluster-autoscaler/enabled: "true"
k8s.io/cluster-autoscaler/cco-hml: "owned"
iam:
withAddonPolicies:
externalDNS: true
certManager: true
imageBuilder: true
albIngress: true
autoScaler: true
ebs: true
efs: true
Para criar o nodegroup com o arquivo de configuração, execute o comando abaixo:
eksctl create nodegroup -f nodegroup.yaml
Para deletar o cluster, execute o comando abaixo:
eksctl delete cluster --name=nataliagranato
 

Comments