Como faço para criar vários grupos de nós para os nós do Amazon EKS usando eksctl?
Quero criar vários grupos de nós para os nós do Amazon Elastic Kubernetes Service (Amazon EKS) usando eksctl.
Breve descrição
Você pode criar um grupo de nós com o eksctl e parâmetros padrão. Ou crie um com parâmetros personalizados e um arquivo de configuração para vários grupos de nós.
Para instalar a versão mais recente do eksctl, consulte Instalação no site eksctl.
Para confirmar se o eksctl está configurado e instalado no terminal com as permissões corretas, execute este comando:
$ eksctl version
Em seguida, escolha uma das seguintes soluções com base no tipo de parâmetros que você deseja usar.
Solução
Crie um grupo de nós com parâmetros padrão
-
Para criar um grupo de nós adicional com parâmetros padrão, execute este comando:
$ eksctl create nodegroup --cluster=yourClusterName --name=yourNodeGroupName --region yourRegionName
-
A seguir estão os parâmetros padrão:
Instance type = m5.largeAMI : lastest AWS EKS AMI Nodes-desired capacity = 2 Nodes-min capacity =2 Nodes-max capacity=2
Observação:Por padrão, novos grupos de nós herdam a versão do Kubernetes do ambiente de gerenciamento (—version=auto). Você pode especificar uma versão diferente do Kubernetes (por exemplo, version=1.27). Para usar a versão mais recente do Kubernetes, execute o comando –version=latest.
-
Para confirmar se os novos grupos de nós estão anexados ao cluster e verificar se os nós se juntaram ao cluster, execute estes comandos:
$ kubectl get nodes $ eksctl get nodegroups --cluster yourClusterName --region yourRegionName
Na saída, confirme se o status do nó é READY e se o status do grupo de nós é ACTIVE. Por exemplo:
Status do grupo de nós
$ eksctl get nodegroups --cluster yourClusterName --region yourRegionName CLUSTER NODEGROUP STATUS CREATED MIN SIZE MAX SIZE DESIRED CAPACITY INSTANCE TYPE IMAGE ID ASG NAME TYPE clusterName ngWorkers ACTIVE Date&Time * * * m5.large AL2_x86_64 ASGNAME managed
****Status do nó
$ kubectl get nodes NAME STATUS ROLES AGE VERSION ip-***-**-**-***.region.compute.internal Ready <none> 4h v1.2x.x-eks-xx ip-***-**-***-**.region.compute.internal Ready <none> 4h v1.2x.x-eks-xx Create a node group with custom parameters
Crie um grupo de nós com parâmetros personalizados
-
Defina os parâmetros para o novo grupo de nós em um arquivo de configuração. Por exemplo:
kind: ClusterConfig apiVersion: eksctl.io/v1alpha5 metadata: name: clusterName region: region nodeGroups: - name: ngWorkers availabilityZones: ["az-name"] desiredCapacity: 3 instanceType: m5.large iam: instanceProfileARN: "arn:aws:iam::11111:instance-profile/eks-nodes-base-role" #Attaching IAM role instanceRoleARN: "arn:aws:iam::1111:role/eks-nodes-base-role" privateNetworking: true securityGroups: withShared: true withLocal: true attachIDs: ['sg-11111', 'sg-11112'] ssh: publicKeyName: 'my-instance-key' kubeletExtraConfig: kubeReserved: cpu: "300m" memory: "300Mi" ephemeral-storage: "1Gi" kubeReservedCgroup: "/kube-reserved" systemReserved: cpu: "300m" memory: "300Mi" ephemeral-storage: "1Gi" tags: 'environment': 'development' - name: ng-2-builders #example of a nodegroup that uses 50% spot instances and 50% on demand instances: minSize: 2 maxSize: 5 instancesDistribution: maxPrice: 0.017 instanceTypes: ["t3.small", "t3.medium"] # At least two instance types should be specified onDemandBaseCapacity: 0 onDemandPercentageAboveBaseCapacity: 50 spotInstancePools: 2 tags: 'environment': 'production'
Para obter mais informações sobre parâmetros compatíveis e tipos de grupos de nós, consulte Nodegroups no site eksctl.
-
Para criar um grupo de nós adicional com o arquivo de configuração, execute o seguinte comando:
$ eksctl create nodegroup --config-file=yourConfigFileName
-
(Opcional) O comando na etapa 2 implanta uma pilha do AWS CloudFormation para criar recursos para o grupo de nós EKS. Para verificar o status da pilha, acesse o console do CloudFormation e confirme se a região da AWS é a mesma do cluster.
Depois que a pilha estiver no estado CREATE\ _COMPLETE, o comando eksctl será encerrado com êxito. -
Para confirmar se os novos grupos de nós estão anexados ao cluster e verificar se os nós se juntaram ao cluster, execute estes comandos:
$ kubectl get nodes $ eksctl get nodegroups --cluster yourClusterName --region yourRegionName
Na saída, confirme se o status do nó é READY e se o status do grupo de nós é ACTIVE. Por exemplo:
Status do grupo de nós$ eksctl get nodegroups --cluster yourClusterName --region yourRegionName CLUSTER NODEGROUP STATUS CREATED MIN SIZE MAX SIZE DESIRED CAPACITY INSTANCE TYPE IMAGE ID ASG NAME TYPE clusterName ngWorkers ACTIVE Date&Time * * * m5.large AL2_x86_64 ASGNAME managed
Status do nó
$ kubectl get nodes NAME STATUS ROLES AGE VERSION ip-***-**-**-***.region.compute.internal Ready <none> 4h v1.2x.x-eks-xx ip-***-**-***-**.region.compute.internal Ready <none> 4h v1.2x.x-eks-xx
Vídeos relacionados
Conteúdo relevante
- feita há 21 diaslg...
- Resposta aceitafeita há 5 diaslg...
- feita há 7 diaslg...
- feita há 7 diaslg...
- Como inicio e soluciono problemas de instâncias spot usando grupos de nós gerenciados do Amazon EKS?AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 2 anos