E-NO
Sécurité Kube Scheduler 8 min de lecture

Durcissement de la sécurité du planificateur Kube avec exemples pratiques

calendar_today Publié : 2026-09-05
update Dernière mise à jour : 2026-09-05
analytics Efficacité SEO : 100%
Illustration du guide technique pour « Durcissement de la sécurité du planificateur Kube avec exemples pratiques ».

Introduction

Le durcissement de la sécurité du planificateur Kube avec des exemples pratiques devrait aider les opérateurs à passer d'un problème observé à un résultat vérifié. Commencez par identifier la version installée, la topologie de déploiement, les prérequis et le composant exact inspecté.

Cet article se concentre sur la sécurité du planificateur Kube pour les développeurs, les consultants DevOps et les équipes techniques de startups. Il relie le durcissement du planificateur Kube, le contrôle d'accès du planificateur Kube, les secrets du planificateur Kube et les permissions du planificateur Kube à des commandes, des sorties attendues, des signaux d'échec et des décisions de récupération qui correspondent à la technologie sélectionnée.

L'objectif est la sécurité opérationnelle : observer avant de modifier, limiter le rayon d'impact, utiliser des espaces réservés au lieu de secrets, vérifier le résultat et documenter comment récupérer si l'état attendu n'est pas atteint.

Inventaire de la version et de l'environnement

Pour la sécurité du planificateur Kube, l'inventaire de la version et de l'environnement doit nommer le composant concerné, la plage de versions prise en charge, les prérequis, une observation en lecture seule, le plus petit changement justifié et la commande ou le signal qui vérifie le résultat.

Dans l'inventaire de la version et de l'environnement, séparez l'observation de l'intervention. Capturez d'abord l'état actuel et les horodatages, protégez les informations d'identification et le matériel privé, puis ne modifiez qu'un seul élément délimité uniquement lorsque son rayon d'impact et son chemin de récupération sont compris.

Les concepts importants pour l'inventaire de la version et de l'environnement sont la sécurité du planificateur Kube, le durcissement du planificateur Kube, le contrôle d'accès du planificateur Kube, les secrets du planificateur Kube et les permissions du planificateur Kube. Les domaines connexes tels que le cadre de planification, la priorité et la préemption des pods, et l'affinité de nœud ne doivent être inclus que lorsqu'ils affectent les prérequis, la compatibilité, la sécurité, l'observabilité ou la récupération pour ce sujet.

Pour l'inventaire de la version et de l'environnement, identifiez d'abord la version installée et la topologie de déploiement. Capturez l'état observable actuel avec une commande en lecture seule à partir de la CLI ou de l'API documentée du produit, puis définissez le résultat attendu et le signal d'échec avant d'effectuer un changement.

Dans l'inventaire de la version et de l'environnement, utilisez des commandes adaptées à la version de la documentation officielle. Les exemples doivent utiliser des espaces réservés explicites, indiquer les prérequis et le rayon d'impact, et inclure une étape de vérification plus un chemin de récupération testé. Ne placez jamais de véritables informations d'identification, jetons, clés privées ou identifiants de production dans un article.

Exemple d'inventaire

Supposons un cluster exécutant Kubernetes 1.28 et un pod statique kube-scheduler sur le nœud du plan de contrôle. Pour inspecter la version actuelle et la ligne de commande du planificateur :

kubectl version --short
kubectl get pod -n kube-system -l component=kube-scheduler -o yaml

La sortie attendue inclut la version du serveur, par exemple Server Version: v1.28.3, et la spécification du pod avec la commande et les arguments.

Une vérification en lecture seule confirme que le planificateur s'exécute en tant que pod statique et tous les indicateurs qui affectent la sécurité, tels que --profiling=false, --bind-address et --secure-port.

Avant tout changement, enregistrez l'état actuel et l'horodatage :

date -u +"%Y-%m-%dT%H:%M:%SZ"
kubectl get pod -n kube-system -l component=kube-scheduler -o yaml > scheduler-before.yaml

Prérequis : accès kubectl au cluster avec au moins la permission de lecture sur les pods dans kube-system ; si le nœud du plan de contrôle est accessible, l'inspection directe du conteneur est possible mais ne doit pas modifier le manifeste du pod.

Rayon d'impact : le kube-scheduler est un composant critique du plan de contrôle. Toute mauvaise configuration peut perturber la planification des pods dans tout le cluster. Les modifications doivent être testées d'abord dans un environnement non-production.

Chemin de récupération : si le planificateur ne démarre pas après une modification, restaurez le manifeste d'origine à partir de la sauvegarde (scheduler-before.yaml) et redémarrez le kubelet ou le pod statique.

Question rapide 1 sur 2

Selon la liste de vérification de durcissement de la sécurité, lequel des réglages suivants est recommandé pour le kube-scheduler afin de garantir qu'il consulte toujours la configuration d'authentification auprès du serveur d'API ?

La liste de vérification de durcissement de sécurité de base indique que 'authentication-tolerate-lookup-failure' doit être défini sur false pour garantir que le kube-scheduler consulte toujours sa configuration d'authentification auprès du serveur d'API. 'authentication-skip-lookup' doit également être false, mais l'option correcte est 'authentication-tolerate-lookup-failure: false'.

Chemin de configuration sécurisé

Pour la sécurité du planificateur Kube, le chemin de configuration sécurisé doit nommer le composant concerné, la plage de versions prise en charge, les prérequis, une observation en lecture seule, le plus petit changement justifié et la commande ou le signal qui vérifie le résultat.

Dans le chemin de configuration sécurisé, séparez l'observation de l'intervention. Capturez d'abord l'état actuel et les horodatages, protégez les informations d'identification et le matériel privé, puis ne modifiez qu'un seul élément délimité uniquement lorsque son rayon d'impact et son chemin de récupération sont compris.

Les concepts importants pour le chemin de configuration sécurisé sont la sécurité du planificateur Kube, le durcissement du planificateur Kube, le contrôle d'accès du planificateur Kube, les secrets du planificateur Kube et les permissions du planificateur Kube. Les domaines connexes tels que le cadre de planification, la priorité et la préemption des pods, et l'affinité de nœud ne doivent être inclus que lorsqu'ils affectent les prérequis, la compatibilité, la sécurité, l'observabilité ou la récupération pour ce sujet.

Pour le chemin de configuration sécurisé, identifiez d'abord la version installée et la topologie de déploiement. Capturez l'état observable actuel avec une commande en lecture seule à partir de la CLI ou de l'API documentée du produit, puis définissez le résultat attendu et le signal d'échec avant d'effectuer un changement.

Dans le chemin de configuration sécurisé, utilisez des commandes adaptées à la version de la documentation officielle. Les exemples doivent utiliser des espaces réservés explicites, indiquer les prérequis et le rayon d'impact, et inclure une étape de vérification plus un chemin de récupération testé. Ne placez jamais de véritables informations d'identification, jetons, clés privées ou identifiants de production dans un article.

Exemple de durcissement : désactiver le profilage

Une étape courante de durcissement de la sécurité consiste à désactiver le profilage sur le kube-scheduler. Les points de terminaison de profilage peuvent exposer des informations sensibles sur l'exécution.

  1. Observer les paramètres actuels : Vérifiez les arguments du planificateur :
   kubectl get pod -n kube-system -l component=kube-scheduler -o jsonpath='{.items[0].spec.containers[0].command}'

La sortie attendue inclut --profiling=false s'il est déjà désactivé ; sinon, il peut être absent ou true.

  1. Sauvegarder le manifeste :
   cp /etc/kubernetes/manifests/kube-scheduler.yaml /root/kube-scheduler.yaml.bak

Sur les clusters gérés, utilisez le mécanisme de sauvegarde approprié pour les manifestes de pods statiques.

  1. Effectuer le plus petit changement : Modifiez le manifeste pour ajouter ou définir l'indicateur :
   spec:
     containers:
     - command:
       - kube-scheduler
       - --profiling=false

Utilisez un espace réservé dans l'article : --profiling=false est une valeur littérale, pas un secret.

  1. Appliquer et vérifier : Le kubelet redémarre automatiquement le pod statique. Surveillez que le pod devient prêt :
   kubectl get pod -n kube-system -l component=kube-scheduler -w

Attendu : le pod passe à Running sans boucle de redémarrage. Confirmez ensuite que l'indicateur est actif :

   kubectl logs -n kube-system <scheduler-pod-name> | grep profiling

Si l'indicateur n'est pas reconnu dans la version actuelle, le planificateur ne démarrera pas.

  1. Récupération : Si le planificateur plante, restaurez la sauvegarde :
   cp /root/kube-scheduler.yaml.bak /etc/kubernetes/manifests/kube-scheduler.yaml

Attendez que le kubelet prenne en compte le manifeste restauré.

Rayon d'impact : affecte uniquement le planificateur ; s'il échoue, aucun nouveau pod n'est planifié, mais les pods existants continuent de fonctionner.

Vérification et diagnostics

Pour la sécurité du planificateur Kube, la vérification et les diagnostics doivent nommer le composant concerné, la plage de versions prise en charge, les prérequis, une observation en lecture seule, le plus petit changement justifié et la commande ou le signal qui vérifie le résultat.

Dans la vérification et les diagnostics, séparez l'observation de l'intervention. Capturez d'abord l'état actuel et les horodatages, protégez les informations d'identification et le matériel privé, puis ne modifiez qu'un seul élément délimité uniquement lorsque son rayon d'impact et son chemin de récupération sont compris.

Les concepts importants pour la vérification et les diagnostics sont la sécurité du planificateur Kube, le durcissement du planificateur Kube, le contrôle d'accès du planificateur Kube, les secrets du planificateur Kube et les permissions du planificateur Kube. Les domaines connexes tels que le cadre de planification, la priorité et la préemption des pods, et l'affinité de nœud ne doivent être inclus que lorsqu'ils affectent les prérequis, la compatibilité, la sécurité, l'observabilité ou la récupération pour ce sujet.

Pour la vérification et les diagnostics, identifiez d'abord la version installée et la topologie de déploiement. Capturez l'état observable actuel avec une commande en lecture seule à partir de la CLI ou de l'API documentée du produit, puis définissez le résultat attendu et le signal d'échec avant d'effectuer un changement.

Dans la vérification et les diagnostics, utilisez des commandes adaptées à la version de la documentation officielle. Les exemples doivent utiliser des espaces réservés explicites, indiquer les prérequis et le rayon d'impact, et inclure une étape de vérification plus un chemin de récupération testé. Ne placez jamais de véritables informations d'identification, jetons, clés privées ou identifiants de production dans un article.

Journalisation d'audit pour le planificateur

Activez la journalisation d'audit pour le kube-scheduler afin de suivre les accès et les modifications. Cela nécessite de configurer une politique d'audit et de transmettre des indicateurs au planificateur.

Prérequis : un fichier de politique d'audit disponible sur le nœud du plan de contrôle.

Exemple de politique d'audit pour les événements liés au planificateur (requêtes vers l'API du planificateur) :

apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadata
  users: ["system:kube-scheduler"]

Ensuite, ajoutez des indicateurs au manifeste du planificateur :

- --audit-policy-file=/etc/kubernetes/audit-policy.yaml
- --audit-log-path=/var/log/kube-scheduler-audit.log
- --audit-log-maxage=30
- --audit-log-maxbackup=10
- --audit-log-maxsize=100

Vérifiez que le planificateur démarre et que les journaux apparaissent :

tail -f /var/log/kube-scheduler-audit.log

Attendu : des lignes avec "user":{"username":"system:kube-scheduler"} et des métadonnées de requête.

Signal d'échec : si le chemin du journal d'audit n'est pas accessible en écriture ou si le fichier de politique est invalide, le planificateur ne démarrera pas. Les journaux du kubelet afficheront une erreur.

Récupération : supprimez les indicateurs d'audit ou corrigez le chemin/les permissions, puis redémarrez le planificateur.

Question rapide 2 sur 2

Quelle est la valeur par défaut de 'authorization-always-allow-paths' dans les recommandations de durcissement de la sécurité du kube-scheduler ?

Le texte indique : « authorization-always-allow-paths : ces chemins doivent répondre avec des données appropriées pour une autorisation anonyme. Par défaut : /healthz,/readyz,/livez. »

Modes de défaillance et récupération

Pour la sécurité du planificateur Kube, les modes de défaillance et la récupération doivent nommer le composant concerné, la plage de versions prise en charge, les prérequis, une observation en lecture seule, le plus petit changement justifié et la commande ou le signal qui vérifie le résultat.

Dans les modes de défaillance et la récupération, séparez l'observation de l'intervention. Capturez d'abord l'état actuel et les horodatages, protégez les informations d'identification et le matériel privé, puis ne modifiez qu'un seul élément délimité uniquement lorsque son rayon d'impact et son chemin de récupération sont compris.

Les concepts importants pour les modes de défaillance et la récupération sont la sécurité du planificateur Kube, le durcissement du planificateur Kube, le contrôle d'accès du planificateur Kube, les secrets du planificateur Kube et les permissions du planificateur Kube. Les domaines connexes tels que le cadre de planification, la priorité et la préemption des pods, et l'affinité de nœud ne doivent être inclus que lorsqu'ils affectent les prérequis, la compatibilité, la sécurité, l'observabilité ou la récupération pour ce sujet.

Pour les modes de défaillance et la récupération, identifiez d'abord la version installée et la topologie de déploiement. Capturez l'état observable actuel avec une commande en lecture seule à partir de la CLI ou de l'API documentée du produit, puis définissez le résultat attendu et le signal d'échec avant d'effectuer un changement.

Dans les modes de défaillance et la récupération, utilisez des commandes adaptées à la version de la documentation officielle. Les exemples doivent utiliser des espaces réservés explicites, indiquer les prérequis et le rayon d'impact, et inclure une étape de vérification plus un chemin de récupération testé. Ne placez jamais de véritables informations d'identification, jetons, clés privées ou identifiants de production dans un article.

Scénario : CrashLoopBackOff du pod du planificateur

Après un indicateur mal configuré ou un fichier invalide, le pod du planificateur peut entrer en CrashLoopBackOff. Identifiez et récupérez :

  1. Vérifiez l'état du pod :
   kubectl get pod -n kube-system -l component=kube-scheduler

Attendu : le nombre de RESTARTS augmente, état CrashLoopBackOff.

  1. Inspectez les journaux :
   kubectl logs -n kube-system <scheduler-pod-name> --previous

Recherchez des messages d'erreur tels que invalid configuration ou no kind "Policy" is registered.

  1. Corrigez l'erreur de configuration :
  • Examinez la différence du manifeste par rapport à la sauvegarde.
  • Corrigez l'indicateur invalide, le chemin de fichier ou la syntaxe YAML.
  1. Restaurez en cas de doute :
   cp /root/kube-scheduler.yaml.bak /etc/kubernetes/manifests/kube-scheduler.yaml
  1. Vérifiez la récupération :
   kubectl get pod -n kube-system -l component=kube-scheduler -w

Le pod doit devenir Running et rester stable.

Rayon d'impact : la planification de nouveaux pods est altérée pendant le plantage ; les pods existants ne sont pas affectés.

Liste de contrôle des opérations

Pour la sécurité du planificateur Kube, la liste de contrôle des opérations doit nommer le composant concerné, la plage de versions prise en charge, les prérequis, une observation en lecture seule, le plus petit changement justifié et la commande ou le signal qui vérifie le résultat.

Dans la liste de contrôle des opérations, séparez l'observation de l'intervention. Capturez d'abord l'état actuel et les horodatages, protégez les informations d'identification et le matériel privé, puis ne modifiez qu'un seul élément délimité uniquement lorsque son rayon d'impact et son chemin de récupération sont compris.

Les concepts importants pour la liste de contrôle des opérations sont la sécurité du planificateur Kube, le durcissement du planificateur Kube, le contrôle d'accès du planificateur Kube, les secrets du planificateur Kube et les permissions du planificateur Kube. Les domaines connexes tels que le cadre de planification, la priorité et la préemption des pods, et l'affinité de nœud ne doivent être inclus que lorsqu'ils affectent les prérequis, la compatibilité, la sécurité, l'observabilité ou la récupération pour ce sujet.

Pour la liste de contrôle des opérations, identifiez d'abord la version installée et la topologie de déploiement. Capturez l'état observable actuel avec une commande en lecture seule à partir de la CLI ou de l'API documentée du produit, puis définissez le résultat attendu et le signal d'échec avant d'effectuer un changement.

Dans la liste de contrôle des opérations, utilisez des commandes adaptées à la version de la documentation officielle. Les exemples doivent utiliser des espaces réservés explicites, indiquer les prérequis et le rayon d'impact, et inclure une étape de vérification plus un chemin de récupération testé. Ne placez jamais de véritables informations d'identification, jetons, clés privées ou identifiants de production dans un article.

Liste de contrôle de sécurité quotidienne

VérificationCommandeAttenduSignal d'échec
État du pod du planificateurkubectl get pod -n kube-system -l component=kube-schedulerÉtat Running, redémarrages 0CrashLoopBackOff ou nombre élevé de redémarrages
Version du planificateurkubectl version --shortCorrespond à la version prise en charge (par ex., v1.28.3)Version non prise en charge ou inconnue
Profilage désactivékubectl get pod -n kube-system -l component=kube-scheduler -o jsonpath='{.items[0].spec.containers[0].command}'Contient --profiling=falseIndicateur manquant ou défini sur true
Journal d'audit actiftail -n 5 /var/log/kube-scheduler-audit.log (sur le plan de contrôle)Entrées récentes avec l'utilisateur du planificateurAucune nouvelle entrée après les requêtes
RBAC pour le planificateurkubectl get clusterrole system:kube-scheduler -o yamlRègles limitées aux ressources requisesRègles trop permissives

Prérequis : accès kubectl, SSH vers le plan de contrôle si inspection des journaux, et permissions de lecture pour les pods et les rôles.

Rayon d'impact : ce sont des vérifications en lecture seule ; aucun changement n'est effectué.

Récupération : non applicable sauf si une vérification échoue ; alors référez-vous à la section correspondante.

Conclusion

Le durcissement de la sécurité du planificateur Kube avec des exemples pratiques n'est utile que si chaque recommandation est limitée à une version, observable et réversible là où la technologie le permet. Copier une commande sans vérifier les prérequis et la sortie attendue n'est pas une procédure opérationnelle.

Comme prochaine étape, choisissez une vérification à faible risque pour la sécurité du planificateur Kube, enregistrez l'état actuel, exécutez la vérification documentée, comparez le résultat avec le signal attendu et examinez les dépendances telles que le cadre de planification, la priorité et la préemption des pods, et l'affinité de nœud.

Un flux de travail technique fiable rend les défaillances visibles, protège les valeurs sensibles, limite les modifications à la ressource prévue et définit la vérification de récupération avant qu'un incident ne force la décision.

Score de qualité de l’article

Utilité pour le lecteur 100%
  • check_circle Guide prêt à lire
  • check_circle Exemples pratiques inclus
  • check_circle URL d’article optimisée pour le SEO