Como faço para criar vários grupos de nós para os nós do Amazon EKS usando eksctl?

3 minuto de leitura
0

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 usando eksctl com parâmetros padrão ou com parâmetros personalizados usando um arquivo de configuração para vários grupos de nós.

Resolução

Crie um grupo de nós com parâmetros padrão

1.    Instale o eksctl.

2.    Para confirmar se o eksctl está configurado e instalado no terminal com as permissões corretas, execute este comando:

$ eksctl version

3.    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

Aqui estão os parâmetros padrão:

Instance type = m5.large
AMI : 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 instalada do ambiente de gerenciamento (–version=auto), mas você pode especificar uma versão diferente do Kubernetes (por exemplo, version=1.13). Para usar a versão mais recente do Kubernetes, execute o comando –version=latest.

4.    Abra o console do AWS CloudFormation e selecione a pilha associada ao grupo de nós que você criou. Em seguida, selecione a guia Eventos para procurar um evento do AWS CloudFormation mostrando que sua pilha está implantada.

5.    Para confirmar se os novos grupos de nós estão conectados ao cluster e verificar se a configuração do grupo de nós está aplicada, execute estes comandos:

$ Kubectl get nodes
$ eksctl get nodegroups --cluster yourClusterName

Crie um grupo de nós com parâmetros personalizados

1.    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: yourClusterName
    region: yourRegionName
nodeGroups:
  - name: ng1-Workers
    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'

2.    Para criar um grupo de nós adicional usando o arquivo de configuração, execute este comando:

$ eksctl create nodegroup --config-file= yourConfigFileName

3.    Abra o console do AWS CloudFormation e selecione a pilha associada ao grupo de nós que você criou. Em seguida, selecione a guia Eventos para procurar um evento do AWS CloudFormation mostrando que sua pilha está implantada.

4.    Para confirmar se os novos grupos de nós estão conectados ao cluster e verificar se a configuração do grupo de nós está aplicada, execute estes comandos:

$ kubectl get nodes
$ eksctl get nodegroups --cluster yourClusterName

Você vê que seus nós se juntaram ao cluster. Você pode ver que os dois grupos de nós estão visíveis usando o eksctl.


AWS OFICIAL
AWS OFICIALAtualizada há 2 anos