2 votes

Vérifiez si la carte de configuration ou le secret est utilisé ?

À l'aide de kubectl ou du portail Azure Kubernetes Services, comment puis-je vérifier si une certaine carte de configuration ou un certain secret est utilisé par des ressources ?

3voto

mdaniel Points 2298

Ils peuvent apparaître dans (au moins) 3 endroits que je connais :

  • en tant que volumes
  • sur env: via valueFrom:
  • sur envFrom:

ensuite, ils peuvent apparaître à la fois dans les pods en cours d'exécution, ainsi que dans les définitions de "pods futurs" tels que CronJob ou Deployment réduit, StatefulSet, ou même DaemonSets qui ne correspondent à aucun nœud actuel.

Cette réponse se concentrera uniquement sur les pods en cours d'exécution, car il y a moins de texte à mettre dans l'OS, mais l'introspection des autres types de ressources est similaire dans le concept. Cette réponse se concentrera également uniquement sur containers[] bien que initContainers[] sont également candidats mais partagent la structure avec container[] sont donc textuellement similaires

Ensuite, le pire cas possible est celui des objets référencés par les objets de définition de ressources personnalisées qui peuvent être utilisés dans votre cluster, et je ne pense pas qu'il soit possible de les trouver dans le cas général.

références de volume

kubectl get po -A -o json | \
  jq '.items[].spec.volumes[] as $v | select($v.configMap) | $v.configMap.name'

en remplaçant .secret pour trouver des références à Secret s

valeurs env.

kubectl get po -A -o json | \
  jq '.items[].spec.containers[] as $c
    | select($c.env) | $c.env[] as $e
    | select($e.valueFrom.configMapKeyRef) | $e.valueFrom.configMapKeyRef.name'

références envFrom

kubectl get po -A -o json | \
  jq '.items[].spec.containers[] as $c 
    | select($c.envFrom) | $c.envFrom[] as $e 
    | select($e.configMapRef) | $e.configMapRef.name'

Je vais laisser cet article dans la section Wiki communautaire afin que d'autres puissent intervenir si j'en ai oublié certains.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X