kube-proxy

Lorsque vous activez l'extension de cluster kube-proxy, vous pouvez transmettre les paires clé/valeur suivantes en tant qu'arguments.

Notez que pour les clusters volumineux, nous vous recommandons de vérifier la configuration de kube-proxy avant de déployer l'extension :

  • Consultez kube-proxy.ContainerResources. kube-proxy s'exécute sur chaque noeud de processus actif et les besoins en ressources peuvent augmenter à mesure que le nombre de services, de tranches d'adresses, d'adresses IP d'adresse et d'événements de mise à jour augmente. Augmentez les demandes et les limites de CPU et de mémoire si les pods kube-proxy affichent une pression de CPU ou de mémoire soutenue.
  • Soyez prudent lors de la définition de nodeSelectors, d'affinité ou de tolérances. kube-proxy doit être exécuté sur chaque noeud de processus actif nécessitant un réseau de service Kubernetes. Les contraintes de planification qui excluent les noeuds peuvent laisser ces noeuds sans réseau de service fonctionnel.
  • Utilisez les paramètres rollingUpdate qui permettent aux mises à jour de kube-proxy de progresser sur un grand nombre de noeuds. Evitez les paramètres qui mettent à jour trop de noeuds à la fois ou empêchent les mises à jour de passer par le cluster.
  • Si vous définissez customizeKubeProxyConfigMap sur True, vérifiez les paramètres de synchronisation kube-proxy pour la version de Kubernetes et le mode proxy du cluster. La documentation Kubernetes indique qu'en mode iptables, les clusters de très grande taille peuvent avoir besoin d'une valeur minSyncPeriod plus élevée si la durée de synchronisation des règles kube-proxy est bien supérieure à une seconde (reportez-vous à Adresses IP virtuelles et proxies de service dans la documentation Kubernetes).
  • Si la version de Kubernetes du cluster, le système d'exploitation et le module d'extension réseau prennent en charge le mode nftables, déterminez si nftables convient à votre charge globale. La documentation Kubernetes indique que le mode nftables est conçu pour offrir de meilleures performances et une meilleure évolutivité que le mode iptables, mais note également qu'il peut ne pas être compatible avec tous les modules d'extension réseau (reportez-vous à Adresses IP virtuelles et proxies de service dans la documentation Kubernetes).
Arguments de configuration communs à tous les modules de cluster
Clé (API et CLI) Nom d'affichage de la clé (console) Description Obligatoire/Facultatif Valeur par défaut Exemple de valeur
affinity affinité

Groupe de règles de programmation d'affinité.

Format JSON en texte brut ou encodé Base64.

Non utilisé par:
  • Opérateur GPU Nvidia
Equivalents possibles :
  • Repérage des fonctionnalités de noeud, utilisez master.affinity
  • Opérateur réseau NVIDIA, utilisez operator.affinity
  • Pilote CSI SMB, utilisez contoller.affinity
Facultatif NULL NULL
nodeSelectors Sélecteurs de noeud

Vous pouvez utiliser des sélecteurs de noeud et des libellés de noeud pour contrôler les noeuds de processus actif sur lesquels les pods d'extension sont exécutés.

Pour qu'un pod s'exécute sur un noeud, le sélecteur de noeud du pod doit avoir la même clé/valeur que l'étiquette du noeud.

Définissez nodeSelectors sur une paire clé/valeur correspondant à la fois au sélecteur de noeud du pod et au libellé du noeud de processus actif.

Format JSON en texte brut ou encodé Base64.

Non utilisé par:
  • Opérateur GPU NVIDIA
  • Pilote CSI SMB
Equivalents possibles :
  • Repérage des fonctionnalités de noeud, utilisez worker.nodeSelector
  • Opérateur réseau NVIDIA, utilisez operator.nodeSelectors
Facultatif NULL {"foo":"bar", "foo2": "bar2"}

Le pod s'exécutera uniquement sur les noeuds possédant le libellé foo=bar ou foo2=bar2.

numOfReplicas numOfReplicas Nombre de répliques du déploiement de l'extension.
Non utilisé par:
  • Module d'extension GPU AMD
  • Opérateur GPU NVIDIA
  • Opérateur réseau NVIDIA
  • Pilote CSI SMB
Equivalents possibles :
  • CoreDNS, utilisez nodesPerReplica
  • Repérage des fonctionnalités de noeud, utilisez master.replicaCount
Requis 1

Crée une réplique du déploiement d'extension par cluster.

2

Crée deux répliques du déploiement d'extension par cluster.

rollingUpdate rollingUpdate

Contrôle le comportement souhaité de la mise à jour non simultanée par maxSurge et maxUnavailable.

Format JSON en texte brut ou encodé Base64.

Non utilisé par:
  • Repérage des fonctionnalités du noeud
  • Opérateur réseau NVIDIA
  • Pilote CSI SMB
Equivalents possibles :
  • Opérateur de GPU NVIDIA, utilisez daemonsets.rollingUpdate.maxUnavailable
Facultatif NULL NULL
tolerations tolérances

Vous pouvez utiliser des tolérances et des taches pour contrôler les noeuds de processus actif sur lesquels les pods d'extension s'exécutent.

Pour qu'un pod s'exécute sur un noeud présentant une entorse, le pod doit avoir une tolérance correspondante.

Définissez tolerations sur une paire clé/valeur correspondant à la fois à la tolérance du pod et à la tache du noeud de processus actif.

Format JSON en texte brut ou encodé Base64.

Equivalents possibles :
  • Repérage des fonctionnalités de noeud, utilisez master.tolerations et/ou worker.tolerations
  • Opérateur de GPU NVIDIA, utilisez daemonsets.tolerations
  • Opérateur réseau NVIDIA, utilisez operator.tolerations
  • Pilote CSI SMB, utilisez controller.tolerations
Facultatif NULL [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Seuls les pods présentant cette tolérance peuvent être exécutés sur des noeuds de processus actif présentant la tache tolerationKeyFoo=tolerationValBar:noSchedule.

topologySpreadConstraints topologySpreadConstraints

Comment répartir les pods correspondants entre la topologie donnée.

Format JSON en texte brut ou encodé Base64.

Non utilisé par:
  • Repérage des fonctionnalités du noeud
  • Opérateur GPU NVIDIA
  • Opérateur réseau NVIDIA
  • Pilote CSI SMB
Facultatif NULL NULL
Arguments de configuration propres à ce module complémentaire de cluster
Clé (API et CLI) Nom d'affichage de la clé (console) Description Obligatoire/Facultatif Valeur par défaut Exemple de valeur
customizeKubeProxyConfigMap personnaliser kube-proxy configMap

Si vous voulez qu'Oracle gère automatiquement Kube-proxy pour vous, définissez customizeKubeProxyConfigMap sur false (valeur par défaut).

Pour personnaliser le comportement de Kube-proxy, définissez customizeKubeProxyConfigMap sur true et créez un kube-proxy configMap dans l'espace de noms du système de kube.

Requis false true
kube-proxy.ContainerResources ressources de conteneur kube-proxy

Vous pouvez spécifier les quantités de ressources demandées par les conteneurs d'extension et définir les limites d'utilisation des ressources que les conteneurs d'extension ne peuvent pas dépasser.

Format JSON en texte brut ou encodé Base64.

Facultatif NULL {"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}

Créez des conteneurs d'extension qui demandent 100 milllicores de CPU et 100 mégaoctets de mémoire. Limitez les conteneurs d'extension à 500 milllicores de CPU et 200 mégaoctets de mémoire.