controllerManagerExtraArgs, node-cidr-mask-size
FEHLERBERICHT
kubeadm-Version (verwenden Sie kubeadm version
): v1.9.3
Umgebung :
kubectl version
): v1.9.3
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"
uname -a
): Linux k8s-master 4.13.16-coreos-r2 #1 SMP Mi. 6. Dez. 04:27:34 UTC 2017 x86_64 Intel(R) Xeon(R) CPU E3-1505M v5 @ 2,80 GHz OriginalIntel GNU/LinuxIch habe node-cidr-mask-size
in einer kubeadm-Konfigurationsdatei unter controllerManagerExtraArgs
, um das Flag zu setzen. kube-controller-manager wurde mit 2 Instanzen von --node-cidr-mask-size
gestartet, die ihm übergeben wurden. Die zweite Instanz war die Standardeinstellung, die kubeadm hinzufügt und den Wert überschreibt, den ich festlegen wollte.
kube-controller-manager hätte mit einer Instanz von --node-cidr-mask-size
gestartet werden sollen oder zumindest die von mir angegebene wäre die 2., damit sie Vorrang hat.
kubeadm init --config=myconfig.yaml
mit dem folgenden Inhalt als Inhalt der Datei myconfig.yaml aus
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"
Dies war ein Problem für mich, als ich versuchte, mit kubeadm einen IPv6-Cluster einzurichten und ein podSubnet anzugeben.
noch vorhanden in 1.9.6.
Es sollte wirklich nur eine Option unter dem networking
Schlüssel sein, derzeit fügt es --node-cidr-mask-size
zweimal in die Konfiguration ein, am Anfang und am Ende
@tmjd Ich habe das networking.podSubnet
in controllerManagerExtraArgs.cluster-cidr
verschoben und auch allocate-node-cidrs
hinzugefügt habe, genau wie der kubeadm-Code, wenn podSubnet
gewesen wäre direkt angegeben.
Wenn Sie Ihr ursprüngliches Beispiel ändern, wird es zu:
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"
Diese Problemumgehung umgeht im Wesentlichen die Anweisung if
kubeadm hier:
https://github.com/kubernetes/kubernetes/blob/86a58202b68d04b2e31b56db80b4d2a4dec77c93/cmd/kubeadm/app/phases/controlplane/manifests.go#L336 -L342
Ich scheine nicht, dass kubeadm podSubnet
für etwas anderes als die Validierung verwendet, aber ich könnte mich irren.
Würde es dennoch vorziehen, die Größe der Knoten-Cidr-Maske auf eine stärker unterstützte Weise überschreiben zu können.
@tmjd Fix sollte in der nächsten kubeadm-Version von master landen.
Wie ist der Stand dazu?
Ich richte gerade einen Kubernetes-Cluster ein mit:
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"}
Das Problem tritt hier immer noch auf.
Hilfreichster Kommentar
@tmjd Ich habe das
networking.podSubnet
incontrollerManagerExtraArgs.cluster-cidr
verschoben und auchallocate-node-cidrs
hinzugefügt habe, genau wie der kubeadm-Code, wennpodSubnet
gewesen wäre direkt angegeben.Wenn Sie Ihr ursprüngliches Beispiel ändern, wird es zu:
Diese Problemumgehung umgeht im Wesentlichen die Anweisung
if
kubeadm hier:https://github.com/kubernetes/kubernetes/blob/86a58202b68d04b2e31b56db80b4d2a4dec77c93/cmd/kubeadm/app/phases/controlplane/manifests.go#L336 -L342
Ich scheine nicht, dass kubeadm
podSubnet
für etwas anderes als die Validierung verwendet, aber ich könnte mich irren.Würde es dennoch vorziehen, die Größe der Knoten-Cidr-Maske auf eine stärker unterstützte Weise überschreiben zu können.