Comment puis-je augmenter les limites nofile et nproc pour les pods AWS Fargate dans Amazon EKS ?
Je souhaite augmenter les limites nofile et nproc pour les pods AWS Fargate dans Amazon Elastic Kubernetes Service (Amazon EKS).
Brève description
Lorsque vous exécutez des applications sur Fargate, vous pouvez recevoir l'une des erreurs suivantes liées à vos paramètres ulimit sur vos pods Fargate :
- Trop de fichiers ouverts.
- Erreur de threads insuffisants OU exécution : échec de création d'un nouveau thread du système d'exploitation.
- Aucune ressource n'est disponible pour créer le processus.
Pour augmenter les limites nofile et nproc, utilisez la commande bash, la commande sh ou un conteneur Init.
Remarque : Vous ne pouvez pas configurer les paramètres ulimit pour les pods Fargate. La limite flexible nofile et nproc par défaut est 1024 et la limite stricte est 65535. Pour plus d’informations, consultez la section Considérations relatives à AWS Fargate.
Résolution
Pour lancer les pods Fargate sur Amazon EKS, procédez comme suit :
- Créez un rôle d'exécution du pod Fargate.
- Créez un profil Fargate pour votre cluster.
- Mettez à jour le coreDNS.
Pour plus d'informations, consultez la section Mise en route d’AWS Fargate à l'aide d'Amazon EKS.
Utiliser la commande bash
Pour utiliser la commande bash afin d'augmenter les limites nofile et nproc, procédez comme suit :
-
Exécutez l'exemple de manifeste de pod suivant :
Remarque : Remplacez example-nofile-limit et example-nproc-limit par vos nouvelles limites nofile et nproc entre 1024 et 65535.apiVersion: v1 kind: Pod metadata: name: ubuntu namespace: fargate labels: app: ubuntu spec: containers: - image: ubuntu:18.04 command: ["/bin/bash", "-c", "echo 'ulimit -Sn example-nofile-limit' >> /root/.bashrc && echo 'ulimit -Su example-nproc-limit' >> /root/.bashrc && sleep 100"] imagePullPolicy: IfNotPresent name: ubuntu-test restartPolicy: Always
-
Appliquez le manifeste précédent pour créer un nouveau pod dans l'espace de noms Fargate :
Remarque : Remplacez example-file-name par le nom de fichier du manifeste de pod précédent.kubectl apply -f example-file-name
-
Lorsque le pod est en cours d'exécution, exécutez la commande suivante pour vérifier les nouvelles limites nofile et nproc :
~ % kubectl exec -it ubuntu -n fargate -- /bin/bash
Exemple de sortie :
root@ubuntu:/# ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 30446 max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) example-nofile-limit pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) example-nproc-limit virtual memory (kbytes, -v) unlimited file locks (-x) unlimited root@ubuntu:/# ulimit -Sn example-nofile-limit root@ubuntu:/# ulimit -Su example-nproc-limit
Utiliser la commande sh
Pour utiliser la commande sh afin d'augmenter les limites nofile et nproc, procédez comme suit :
-
Exécutez l'exemple de manifeste de pod suivant :
Remarque : Remplacez example-nofile-limit et example-nproc-limit par vos nouvelles limites nofile et nproc.apiVersion: v1 kind: Pod metadata: name: alpine namespace: fargate labels: app: alpine spec: containers: - image: alpine:latest command: ["sh", "-c", "echo 'ulimit -Sn example-nofile-limit' >> /etc/.shrc && echo 'ulimit -Su example-nproc-limit' >> /etc/.shrc && sleep 100"] imagePullPolicy: IfNotPresent name: alpine env: - name: ENV value: /etc/.shrc restartPolicy: Always
-
Lorsque le pod est en cours d'exécution, exécutez la commande suivante pour vérifier les nouvelles limites nofile et nproc :
~ % kubectl exec -it alpine -n fargate -- sh
Exemple de sortie :
/ # ulimit -a core file size (blocks) (-c) unlimited data seg size (kb) (-d) unlimited scheduling priority (-e) 0 file size (blocks) (-f) unlimited pending signals (-i) 30446 max locked memory (kb) (-l) unlimited max memory size (kb) (-m) unlimited open files (-n) example-nofile-limit POSIX message queues (bytes) (-q) 819200 real-time priority (-r) 0 stack size (kb) (-s) 10240 cpu time (seconds) (-t) unlimited max user processes (-u) example-nproc-limit virtual memory (kb) (-v) unlimited file locks (-x) unlimited
Utiliser des conteneurs Init
Si vous ne souhaitez pas exécuter la commande sh dans le conteneur principal, utilisez un conteneur Init pour exécuter la même commande. Pour plus d'informations, consultez la section Conteneurs Init sur le site Web de Kubernetes.
Pour utiliser un conteneur Init afin d'augmenter les limites nofile et nproc, procédez comme suit :
-
Exécutez l'exemple de manifeste de pod suivant :
Remarque : Remplacez example-nofile-limit et example-nproc-limit par vos nouvelles limites nofile et nproc.apiVersion: v1 kind: Pod metadata: name: alpine namespace: fargate labels: app: alpine spec: containers: - name: alpine image: alpine:latest imagePullPolicy: IfNotPresent command: ['sh', '-c', 'echo The app is running! && sleep 3600'] env: - name: ENV value: /etc/.shrc volumeMounts: - name: data mountPath: /etc initContainers: - name: init image: alpine:latest command: ["sh", "-c", "echo 'ulimit -Sn example-nofile-limit' >> /etc/.shrc && echo 'ulimit -Su example-nproc-limit' >> /etc/.shrc && sleep 10"] volumeMounts: - name: data mountPath: /etc volumes: - name: data emptyDir: {} restartPolicy: Always
-
Lorsque le pod est en cours d'exécution, exécutez la commande suivante pour vérifier les nouvelles limites nofile et nproc :
~ % kubectl exec -it alpine -n fargate -- sh
Exemple de sortie :
~ # env KUBERNETES_SERVICE_PORT=443 KUBERNETES_PORT=tcp://10.100.0.1:443 HOSTNAME=alpine SHLVL=1 HOME=/ ENV=/etc/.shrc ~ # ulimit -a core file size (blocks) (-c) unlimited data seg size (kb) (-d) unlimited scheduling priority (-e) 0 file size (blocks) (-f) unlimited pending signals (-i) 30446 max locked memory (kb) (-l) unlimited max memory size (kb) (-m) unlimited open files (-n) example-nofile-limit POSIX message queues (bytes) (-q) 819200 real-time priority (-r) 0 stack size (kb) (-s) 10240 cpu time (seconds) (-t) unlimited max user processes (-u) example-nproc-limit virtual memory (kb) (-v) unlimited file locks (-x) unlimited

Contenus pertinents
- demandé il y a un anlg...
- demandé il y a 11 jourslg...
- demandé il y a 3 moislg...
- demandé il y a 5 moislg...
- demandé il y a 2 anslg...
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a un mois
- AWS OFFICIELA mis à jour il y a 3 mois
- AWS OFFICIELA mis à jour il y a un an