ControllerManagerExtraArgs ، node-cidr-mask-size
تقرير الشوائب
إصدار kubeadm (استخدم kubeadm version
): v1.9.3
البيئة :
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 الأربعاء 6 ديسمبر 4:27:34 UTC 2017 x86_64 Intel (R) Xeon (R) CPU E3-1505M v5 @ 2.80 جيجاهرتز GenuineIntel GNU / Linuxكنت أحدد node-cidr-mask-size
في ملف تكوين kubeadm ضمن controllerManagerExtraArgs
لتعيين العلم. بدأ kube-controller-manager مع حالتين من --node-cidr-mask-size
تم تمريرها إليه. كان المثيل الثاني هو الافتراضي الذي يضيفه kubeadm ويتجاوز القيمة التي كنت أحاول تعيينها.
يجب أن يبدأ kube-controller-manager بمثيل واحد من --node-cidr-mask-size
أو على الأقل سيكون المثال الذي حددته هو الثاني بحيث يكون له الأسبقية.
kubeadm init --config=myconfig.yaml
بما يلي كمحتويات الملف 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"
كانت هذه مشكلة بالنسبة لي عند محاولة استخدام kubeadm لإعداد مجموعة IPv6 وتحديد podSubnet.
لا يزال موجودًا في 1.9.6.
يجب أن يكون حقًا مجرد خيار تحت networking
key ، حاليًا يضع --node-cidr-mask-size
في التكوين مرتين ، في البداية والنهاية
tmjd لقد عملت على networking.podSubnet
إلى controllerManagerExtraArgs.cluster-cidr
وإضافة allocate-node-cidrs
أيضًا ، تمامًا مثل كود kubeadm إذا كان podSubnet
قد تم المحدد مباشرة.
تعديل المثال الأصلي الخاص بك ، يصبح:
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"
هذا الحل هو في الأساس التحايل على بيان kubeadm if
هنا:
https://github.com/kubernetes/kubernetes/blob/86a58202b68d04b2e31b56db80b4d2a4dec77c93/cmd/kubeadm/app/phases/controlplane/manifests.go#L336 -L342
لا يبدو أن kubeadm يستخدم podSubnet
لأي شيء آخر غير التحقق من الصحة ولكن قد أكون مخطئًا.
لا يزال يفضل أن تكون قادرًا على تجاوز حجم قناع عقدة cidr بطريقة أكثر دعمًا.
tmjd Fix يجب أن يهبط في إصدار kubeadm التالي من السيد.
ما هو الوضع في هذا؟
أقوم حاليًا بإعداد مجموعة Kubernetes باستخدام:
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"}
لا تزال المشكلة تحدث هنا.
التعليق الأكثر فائدة
tmjd لقد عملت على
networking.podSubnet
إلىcontrollerManagerExtraArgs.cluster-cidr
وإضافةallocate-node-cidrs
أيضًا ، تمامًا مثل كود kubeadm إذا كانpodSubnet
قد تم المحدد مباشرة.تعديل المثال الأصلي الخاص بك ، يصبح:
هذا الحل هو في الأساس التحايل على بيان kubeadm
if
هنا:https://github.com/kubernetes/kubernetes/blob/86a58202b68d04b2e31b56db80b4d2a4dec77c93/cmd/kubeadm/app/phases/controlplane/manifests.go#L336 -L342
لا يبدو أن kubeadm يستخدم
podSubnet
لأي شيء آخر غير التحقق من الصحة ولكن قد أكون مخطئًا.لا يزال يفضل أن تكون قادرًا على تجاوز حجم قناع عقدة cidr بطريقة أكثر دعمًا.