Comment configurer les composants master Amazon EKS pour nettoyer le cache des images lorsqu'un pourcentage défini d'utilisation du disque est atteint ?
Je souhaite utiliser les composants master Amazon Elastic Kubernetes Service (Amazon EKS) pour nettoyer le cache des images à un pourcentage défini d'utilisation du disque.
Brève description
Pour nettoyer le cache des images avec les composants master Amazon EKS, utilisez les arguments de récupérateur de mémoire kubelet (issus du site web de Kubernets, langue française non garantie) suivants :
- L'argument -image-gc-high-threshold définit le pourcentage d'utilisation du disque à l'origine du récupérateur de mémoire de l'image. La valeur par défaut est 85 %.
- L'argument --image-gc-low-threshold définit le pourcentage d'utilisation du disque que le nettoyage de la mémoire d'images tente de libérer. La valeur par défaut est 80 %.
Remarque : dans la solution suivante, les arguments de récupérateur de mémoire kubelet nettoient le cache d'image dans le composant masterl lorsque l'utilisation du disque atteint 70 %. -image-gc-high-threshold a la valeur 70 %. --image-gc-low-threshold a la valeur 50 %.
Pour ajouter des arguments de récupérateur de mémoire kubelet à un nouveau composant master, procédez comme indiqué dans les sections ci-dessous :
- Ajouter les arguments de récupérateur de mémoire kubelet au fichier kubelet-config par défaut dans Amazon Machine Image (AMI) en utilisant UserData pour un nouveau composant master
- Vérifier que les nouveaux arguments de récupérateur de mémoire kubelet se trouvent dans le point de terminaison configz du nœud
Pour ajouter des arguments de nettoyage de la mémoire kubelet à un nœud de travail existant, procédez comme suit dans les sections ci-dessous :
- Ajouter les arguments de récupérateur de mémoire kubelet à un composant master existant
- Vérifier que les nouveaux arguments de récupérateur de mémoire kubelet se trouvent dans le point de terminaison configz du nœud
Résolution
Remarque : la solution suivante s'applique aux AMI Linux optimisées pour Amazon EKS.
Ajouter les arguments de récupérateur de mémoire kubelet au fichier kubelet-config par défaut dans l'AMI en utilisant UserData pour un nouveau composant master
1. Lancez une instance Amazon Elastic Compute Cloud (Amazon EC2).
Utilisez les commandes sed pour ajouter --image-gc-low-threshold et --image-gc-high-threshold au fichier kubelet-config.json dans l'AMI Linux optimisée pour Amazon EKS. Les commandes sed se trouvent dans la section UserData de la rubrique Étape 3 : Configurer les détails de l'instance.
Par exemple :
#!/bin/bash set -o xtrace # Inject imageGCHighThresholdPercent value unless it has already been set. if ! grep -q imageGCHighThresholdPercent /etc/kubernetes/kubelet/kubelet-config.json; then sed -i '/"apiVersion*/a \ \ "imageGCHighThresholdPercent": 70,' /etc/kubernetes/kubelet/kubelet-config.json fi # Inject imageGCLowThresholdPercent value unless it has already been set. if ! grep -q imageGCLowThresholdPercent /etc/kubernetes/kubelet/kubelet-config.json; then sed -i '/"imageGCHigh*/a \ \ "imageGCLowThresholdPercent": 50,' /etc/kubernetes/kubelet/kubelet-config.json fi /etc/eks/bootstrap.sh your-cluster-name
Remarque : remplacez your-cluster-name par le nom de votre cluster Amazon EKS. Si vous utilisez un autre fichier de configuration kubelet, mettez à jour le nom du fichier dans les commandes sed.
2. Ajoutez le nœud de travail à votre cluster Amazon EKS.
3. Pour vérifier les modifications, suivez les étapes dans la section Vérifier que les nouveaux arguments de récupérateur de mémoire kubelet se trouvent dans le point de terminaison configz du nœud.
Ajouter les arguments de récupérateur de mémoire kubelet à un composant master existant
Important : les étapes suivantes nécessitent que vous vous connectiez à un nœud de travail existant avec SSH et que vous disposiez d'un accès sudo. Ces étapes doivent être effectuées sur tous les nœuds de travail existants de votre cluster Amazon EKS.
1. Connectez-vous à un nœud de travail existant en utilisant SSH.
2. Ouvrez le fichier /etc/kubernetes/kubelet/kubelet-config.json dans vos composants master.
Si vous lancez le composant master avec EKSCTL, ouvrez /etc/eksctl/kubelet.yaml. Reportez-vous à l'exemple suivant :
sudo vi /etc/kubernetes/kubelet/kubelet-config.json #WORKER NODES LAUNCHED USING EKSCTL sudo vi /etc/eksctl/kubelet.yaml
3. Ajoutez les arguments de récupérateur de mémoire kubelet au fichier kubelet-config.json ou kubelet.yaml, selon la façon dont vous avez lancé vos composants master. Enregistrez ensuite le fichier. Reportez-vous à l'exemple suivant :
{ "kind": "KubeletConfiguration", "apiVersion": "kubelet.config.k8s.io/v1beta1", . . . "imageGCHighThresholdPercent": 70, ==> Add the argument under the same alignment as the "kind" "imageGCLowThresholdPercent": 50, "maxPods": ... } #WORKER NODES LAUNCHED USING EKSCTL kind: KubeletConfiguration kubeReserved: cpu: 70m ephemeral-storage: 1Gi memory: 1843Mi serverTLSBootstrap: true imageGCHighThresholdPercent: 70 ==> Add the arguments under the alignment "Kind" in the yaml file imageGCLowThresholdPercent: 50
4. Pour redémarrer le service kubelet dans le nœud de travail, exécutez la commande suivante :
sudo service kubelet restart
5. Pour vérifier les modifications, suivez les étapes dans la section Vérifier que les nouveaux arguments de récupérateur de mémoire kubelet se trouvent dans le point de terminaison configz du nœud.
Vérifier que les nouveaux arguments de récupérateur de mémoire kubelet se trouvent dans le point de terminaison configz du nœud
1. Pour obtenir le nom de vos nœuds de travail, exécutez la commande suivante :
kubectl get nodes
2. Pour ouvrir une connexion au serveur d'API, exécutez la commande suivante :
kubectl proxy
3. Pour vérifier la configuration du nœud, ouvrez un nouveau terminal, puis exécutez la commande suivante :
curl -sSL "http://localhost:8001/api/v1/nodes/node_name/proxy/configz" | python3 -m json.tool
Remarque : remplacez node_name par le nom de votre nœud dans la liste des nœuds récupérés à l'étape 1. Si curl et Python ne sont pas disponibles, ouvrez l'URL dans un navigateur Web.
La commande précédente renvoie la sortie de la fonction kubeletconfig. Cette sortie inclut les paramètres du fichier bootstrap.sh. Reportez-vous à l'exemple suivant :
{ "kubeletconfig": { . . "imageGCHighThresholdPercent": 70, <=== The new value is set to 70 as given in UserData "imageGCLowThresholdPercent": 50, <=== The new value is set to 50 as given in UserData . . } }

Contenus pertinents
- demandé il y a un anlg...
- demandé il y a 10 moislg...
- demandé il y a 10 moislg...
- demandé il y a 10 moislg...
- demandé il y a 9 moislg...
- AWS OFFICIELA mis à jour il y a 10 mois
- AWS OFFICIELA mis à jour il y a 10 mois
- AWS OFFICIELA mis à jour il y a 8 mois
- AWS OFFICIELA mis à jour il y a 10 mois