0
votes

EKS - Comment annoter certains nœuds dans USERDATA?

Pour empêcher Cluster Auto Scaler de terminer certains nœuds, je devrais les annoter avec:

    --kubelet-extra-args \
        "--node-labels=

Y a-t-il un comment le faire dans le script USERDATA ? Pour étiqueter les nœuds, il n'y a pas de problème, et il est possible de le faire via:

cluster-autoscaler.kubernetes.io/scale-down-disabled=true;

Merci


1 commentaires

C'était avec Kubernetes 1.13 (ou inférieur).


3 Réponses :


0
votes

Non, ce n'est pas possible.

La liste des paramètres pris en charge pour le script d'amorçage:

--use-max-pods Sets --max-pods for the kubelet when true. (default: true)
--b64-cluster-ca The base64 encoded cluster CA content. Only valid when used with --apiserver-endpoint. Bypasses calling \"aws eks describe-cluster\"
--apiserver-endpoint The EKS cluster API Server endpoint. Only valid when used with --b64-cluster-ca. Bypasses calling \"aws eks describe-cluster\"
--kubelet-extra-args Extra arguments to add to the kubelet. Useful for adding labels or taints.
--enable-docker-bridge Restores the docker default bridge network. (default: false)
--aws-api-retry-attempts Number of retry attempts for AWS API call (DescribeCluster) (default: 3)
--docker-config-json The contents of the /etc/docker/daemon.json file. Useful if you want a custom config differing from the default one in the AMI


1 commentaires

Cette réponse est incorrecte. L'argument --kubelet-extra-args répertorié ci-dessus est là pour fournir des arguments à la commande kubelet. Vous pouvez passer l'argument --node-labels au kubelet de cette façon.



1
votes

Vous pouvez ajouter des étiquettes de nœud, des tanes, etc. à l'aide de l'option - kubelet-extra-args CODE> sur l'invocation de bootstrap.sh comme vous l'avez deviné. Pour un exemple, voir l'AWS Blog Post: Améliorations for Amazon Fourniture de nœud de travailleur EKS

Utilisez un script userData similaire à celui suivant: p>

curl -O https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-11-15/amazon-eks-nodegroup.yaml


1 commentaires

Merci pour l'indice. Ce serait possible avec --kubelet-extra-args '--register-with-taints = . Cette fonctionnalité a apparemment été ajoutée en août.



0
votes

C'est absolument possible. Voici une partie de mon exemple de userdata, particulièrement utile si vous souhaitez exécuter à la fois une instance OnDemand et Spot. Dans mon exemple, j'ajoute une étiquette de nœud de cycle de vie qui change en fonction du type. Voir ci-dessous:

--use-max-pods 'true' \
--kubelet-extra-args ' --node-labels=lifecycle=OnDemand \
--system-reserved cpu=250m,memory=0.2Gi,ephemeral-storage=1Gi \
--kube-reserved cpu=250m,memory=1Gi,ephemeral-storage=1Gi \
--eviction-hard memory.available<0.2Gi,nodefs.available<10% \
--event-qps 0'

J'espère que cela vous donne un bel exemple.


0 commentaires