تقرير BUG (تم نسخه من مشكلةrhuss المقدمة هنا https://github.com/kubernetes/kubernetes/issues/5363)
1.8.0 - حتى المستوى الرئيسي الحالي (26 أكتوبر 2017)
عند استخدام kubeadm مع رمز تم إنشاؤه بواسطة رمز kubeadm يتم إنشاؤه مسبقًا ، ولكن أيضًا عند السماح لـ kubeadm بإنشاء الرمز المميز ، يتم تجاهل تكوين tokenTTL
. وينطبق الشيء نفسه عند عدم استخدام ملف التكوين ولكن باستخدام kubeadm init --token-ttl 0
أتوقع عند تقديم tokenTTL من 0s أن الرمز المميز لا تنتهي صلاحيته.
راجع https://github.com/kubernetes/kubernetes/issues/53637 حيث وصف rhuss هذا بشكل جيد.
تم تقديم هذا الخطأ في https://github.com/kubernetes/kubernetes/pull/48783 عندما تم تغيير الرمز المميز الافتراضي TTL.
لا تملك آلية افتراضية آلية واجهة برمجة التطبيقات طريقة للتمييز بين القيمة غير المحددة والقيمة التي تم تعيينها صراحةً على الصفر.
لقد أجريت بعض الاختبارات اليدوية على هذا التغيير ، ولكن على ما يبدو فقط مقابل kubeadm token create --ttl 0
، والذي يعمل بشكل جيد لأنه لا يستخدم آلية MasterConfiguration الافتراضية.
cc @ kubernetes / sig-الكتلة-دورة حياة البق
/ نوع الخلل
الحل الحالي هو إنشاء رمز مميز إضافي بمفردي _after_ kubeadm init
:
kubeadm init --config /etc/kubernetes/kubeadm.yml
kubeadm token create --ttl 0 --groups system:bootstrappers:kubeadm:default-node-token --description "Bootstrap token which does not expire"
ثم يتم استخدام الرمز المميز الأحدث لـ kubeadm join
على العقد.
شكرا @ matmoyer لإصلاح الخلل:
تم إصلاح هذا في master
ويجب أن يكون في الإصدار 1.8.3.
التعليق الأكثر فائدة
الحل الحالي هو إنشاء رمز مميز إضافي بمفردي _after_
kubeadm init
:ثم يتم استخدام الرمز المميز الأحدث لـ
kubeadm join
على العقد.