Kubeadm: spécifier node-cidr-mask-size en tant qu'argument controllerManagerExtra n'avait pas la priorité

Créé le 7 mars 2018  ·  4Commentaires  ·  Source: kubernetes/kubeadm

Quels mots-clés avez-vous recherchés dans les problèmes de kubeadm avant de déposer celui-ci ?

controllerManagerExtraArgs, node-cidr-mask-size

S'agit-il d'un rapport de bogue ou d'une demande de fonctionnalité ?

RAPPORT D'ERREUR

Versions

version de kubeadm (utilisez kubeadm version ): v1.9.3

Environnement :

  • Version Kubernetes (utilisez kubectl version ): v1.9.3
  • Fournisseur cloud ou configuration matérielle : VirtualBox
  • OS (par exemple depuis /etc/os-release) :
    NAME="Container Linux by CoreOS" ID=coreos VERSION=1576.4.0 VERSION_ID=1576.4.0 BUILD_ID=2017-12-06-0449 PRETTY_NAME="Container Linux by CoreOS 1576.4.0 (Ladybug)" ANSI_COLOR="38;5;75" HOME_URL="https://coreos.com/" BUG_REPORT_URL="https://issues.coreos.com" COREOS_BOARD="amd64-usr"
  • Noyau (par exemple uname -a ): Linux k8s-master 4.13.16-coreos-r2 #1 SMP Mer 6 décembre 04:27:34 UTC 2017 x86_64 Intel(R) Xeon(R) CPU E3-1505M v5 @ 2.80GHz Authentique Intel GNU/Linux
  • Autres :

Que s'est-il passé?

Je spécifiais node-cidr-mask-size dans un fichier de configuration kubeadm sous controllerManagerExtraArgs pour définir le drapeau. kube-controller-manager a été démarré avec 2 instances de --node-cidr-mask-size été transmises. La 2ème instance était la valeur par défaut ajoutée par kubeadm et supplantait la valeur que j'essayais de définir.

A quoi vous attendiez-vous ?

kube-controller-manager aurait dû être démarré avec une instance de --node-cidr-mask-size ou au moins celle que j'ai spécifiée serait la 2e pour qu'elle ait la priorité.

Comment le reproduire (le plus minimalement et le plus précisément possible) ?

  1. Exécutez kubeadm init --config=myconfig.yaml avec ce qui suit comme contenu du fichier myconfig.yaml
    apiVersion: kubeadm.k8s.io/v1alpha1 kind: MasterConfiguration api: advertiseAddress: "fd10::101" networking: serviceSubnet: fd30::0/110 podSubnet: "fd20:0::/120" controllerManagerExtraArgs: node-cidr-mask-size: "120"
  2. Vérifiez les indicateurs avec lesquels kube-controller-manager est démarré.

Autre chose que nous devons savoir ?

C'était un problème pour moi lorsque j'essayais d'utiliser kubeadm pour configurer un cluster IPv6 et spécifier un podSubnet.

Commentaire le plus utile

@tmjd J'ai contourné cela en déplaçant le networking.podSubnet vers controllerManagerExtraArgs.cluster-cidr et en ajoutant aussi allocate-node-cidrs , tout comme le code kubeadm l'aurait fait si podSubnet avait été spécifié directement.

En modifiant votre exemple d'origine, cela devient :

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:  
  advertiseAddress: "fd10::101"
networking:
  serviceSubnet: fd30::0/110   
  # MOVED BELOW podSubnet: "fd20:0::/120"    
controllerManagerExtraArgs:
  allocate-node-cidrs: "true"
  cluster-cidr: "fd20:0::/120"
  node-cidr-mask-size: "120"

Cette solution de contournement contourne essentiellement la déclaration if kubeadm ici :
https://github.com/kubernetes/kubernetes/blob/86a58202b68d04b2e31b56db80b4d2a4dec77c93/cmd/kubeadm/app/phases/controlplane/manifests.go#L336 -L342

Il ne semble pas que kubeadm utilise le podSubnet pour autre chose que la validation, mais je peux me tromper.

Je préférerais toujours pouvoir remplacer la taille du masque cidr du nœud d'une manière plus prise en charge.

Tous les 4 commentaires

toujours présent en 1.9.6.

Cela devrait vraiment être juste une option sous la clé networking , actuellement il met juste --node-cidr-mask-size dans la configuration deux fois, au début et à la fin

@tmjd J'ai contourné cela en déplaçant le networking.podSubnet vers controllerManagerExtraArgs.cluster-cidr et en ajoutant aussi allocate-node-cidrs , tout comme le code kubeadm l'aurait fait si podSubnet avait été spécifié directement.

En modifiant votre exemple d'origine, cela devient :

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:  
  advertiseAddress: "fd10::101"
networking:
  serviceSubnet: fd30::0/110   
  # MOVED BELOW podSubnet: "fd20:0::/120"    
controllerManagerExtraArgs:
  allocate-node-cidrs: "true"
  cluster-cidr: "fd20:0::/120"
  node-cidr-mask-size: "120"

Cette solution de contournement contourne essentiellement la déclaration if kubeadm ici :
https://github.com/kubernetes/kubernetes/blob/86a58202b68d04b2e31b56db80b4d2a4dec77c93/cmd/kubeadm/app/phases/controlplane/manifests.go#L336 -L342

Il ne semble pas que kubeadm utilise le podSubnet pour autre chose que la validation, mais je peux me tromper.

Je préférerais toujours pouvoir remplacer la taille du masque cidr du nœud d'une manière plus prise en charge.

@tmjd Fix devrait atterrir dans la prochaine version de kubeadm de master.

Quel est le statut à ce sujet ?
Je suis actuellement en train de configurer un cluster Kubernetes avec :

kubeadm version: &version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.4", GitCommit:"5ca598b4ba5abb89bb773071ce452e33fb66339d", GitTreeState:"clean", BuildDate:"2018-06-06T08:00:59Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

Le problème se produit toujours ici.

Cette page vous a été utile?
0 / 5 - 0 notes