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
3 Réponses :
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
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.
Vous pouvez ajouter des étiquettes de nœud, des tanes, etc. à l'aide de l'option Utilisez un script userData similaire à celui suivant: p> - 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
curl -O https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-11-15/amazon-eks-nodegroup.yaml
Merci pour l'indice. Ce serait possible avec --kubelet-extra-args '--register-with-taints =
. Cette fonctionnalité a apparemment été ajoutée en août.
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.
C'était avec Kubernetes 1.13 (ou inférieur).