6.3. Contrôle du placement des pods DNS
L'opérateur DNS dispose de deux ensembles de démons : l'un pour CoreDNS et l'autre pour gérer le fichier /etc/hosts
. Le jeu de démons pour /etc/hosts
doit être exécuté sur chaque hôte de nœud afin d'ajouter une entrée au registre d'images de cluster pour prendre en charge l'extraction d'images. Les politiques de sécurité peuvent interdire la communication entre les paires de nœuds, ce qui empêche le jeu de démons pour CoreDNS de s'exécuter sur chaque nœud.
En tant qu'administrateur de cluster, vous pouvez utiliser un sélecteur de nœud personnalisé pour configurer le jeu de démons pour CoreDNS afin qu'il s'exécute ou non sur certains nœuds.
Conditions préalables
-
Vous avez installé le CLI
oc
. -
Vous êtes connecté au cluster avec un utilisateur disposant des privilèges
cluster-admin
.
Procédure
Pour empêcher la communication entre certains nœuds, configurez le champ
spec.nodePlacement.nodeSelector
API :Modifier l'objet Opérateur DNS nommé
default
:$ oc edit dns.operator/default
Spécifiez un sélecteur de nœuds qui n'inclut que les nœuds du plan de contrôle dans le champ
spec.nodePlacement.nodeSelector
API :spec: nodePlacement: nodeSelector: node-role.kubernetes.io/worker: ""
Pour permettre au démon défini pour CoreDNS de fonctionner sur les nœuds, configurez une taint et une toleration :
Modifier l'objet Opérateur DNS nommé
default
:$ oc edit dns.operator/default
Spécifier une clé d'altération et une tolérance pour l'altération :
spec: nodePlacement: tolerations: - effect: NoExecute key: "dns-only" operators: Equal value: abc tolerationSeconds: 3600 1
- 1
- Si l'erreur est
dns-only
, elle peut être tolérée indéfiniment. Vous pouvez omettretolerationSeconds
.