Wie erstelle ich mit eksctl mehrere Knotengruppen für Amazon EKS-Knoten?

Lesedauer: 3 Minute
0

Ich möchte mithilfe von eksctl mehrere Knotengruppen für Amazon Elastic Kubernetes Service (Amazon EKS)-Knoten erstellen.

Kurzbeschreibung

Sie können eine Knotengruppe mit eksctl entweder mit Standardparametern oder mit benutzerdefinierten Parametern erstellen, indem Sie eine Konfigurationsdatei für mehrere Knotengruppen verwenden.

Lösung

Knotengruppe mit Standardparametern erstellen

1.    Installieren Sie eksctl.

2.    Führen Sie den folgenden Befehl aus, um zu bestätigen, dass eksctl konfiguriert und auf dem Terminal mit den richtigen Berechtigungen installiert ist:

$ eksctl version

3.    Führen Sie diesen Befehl aus, um eine zusätzliche Knotengruppe mit Standardparametern zu erstellen:

$ eksctl create nodegroup --cluster=yourClusterName --name=yourNodeGroupName --region yourRegionName

Hier sind die Standardparameter:

Instance type = m5.large
AMI : lastest AWS EKS AMI
Nodes-desired capacity = 2
Nodes-min capacity =2
Nodes-max capacity=2

Hinweis: Standardmäßig erben neue Knotengruppen die von der Steuerebene installierte Version von Kubernetes (–version=auto), Sie können jedoch eine andere Version von Kubernetes angeben (z. B. version=1.13). Um die neueste Version von Kubernetes zu verwenden, führen Sie den Befehl –version=latest aus.

4.    Öffnen Sie die AWS CloudFormation-Konsole, und wählen Sie den Stack aus, der der von Ihnen erstellten Knotengruppe zugeordnet ist. Wählen Sie dann den Reiter Events, um nach einem AWS CloudFormation-Ereignis zu suchen, welches anzeigt, dass Ihr Stack bereitgestellt ist.

5.    Führen Sie die folgenden Befehle aus, um zu überprüfen, ob die neuen Knotengruppen an den Cluster angehängt sind, und ob die Knotengruppenkonfiguration angewendet wird:

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

Erstellen Sie eine Knotengruppe mit benutzerdefinierten Parametern

1.    Definieren Sie die Parameter für die neue Knotengruppe in einer Konfigurationsdatei. Zum Beispiel:

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.    Führen Sie den folgenden Befehl aus, um mithilfe der Konfigurationsdatei eine zusätzliche Knotengruppe zu erstellen:

$ eksctl create nodegroup --config-file= yourConfigFileName

3.    Öffnen Sie die AWS CloudFormation-Konsole, und wählen Sie dann den Stack aus, der der von Ihnen erstellten Knotengruppe zugeordnet ist. Wählen Sie dann den Reiter Events, um nach einem AWS CloudFormation-Ereignis zu suchen, welches anzeigt, dass Ihr Stack bereitgestellt ist.

4.    Führen Sie die folgenden Befehle aus, um zu überprüfen, ob die neuen Knotengruppen an den Cluster angehängt sind, und ob die Knotengruppenkonfiguration angewendet wird:

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

Sie sehen, dass Ihre Knoten dem Cluster beigetreten sind. Sie können sehen, dass die beiden Knotengruppen sichtbar sind, indem Sie eksctl verwenden.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren