اختر واحدًا: تقرير الخطأ
إصدار kubeadm (استخدم kubeadm version
):
kubeadm version: &version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:14:39Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
البيئة :
kubectl version
):Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-07T23:17:28Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
CENTOS_MANTISBT_PROJECT = "CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION = "7"
REDHAT_SUPPORT_PRODUCT = "سنتوس"
REDHAT_SUPPORT_PRODUCT_VERSION = "7"
- **Kernel** (e.g. `uname -a`):
`Linux node1-lab-a1-01 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux`
- **Others**:
Our hosts are setup using IPv4 BGP over IPv6 (rfc5549: https://tools.ietf.org/html/rfc5549).
The host ip address is attached to a loopback address and FRR bgp announces that IP to connected TOR switches (spine and leaf fabric). There is no IPv4 address on the connected interfaces, but I do have a default route that allows access to the world:
```# ip route
default proto bgp metric 20
nexthop via 169.254.0.1 dev em1 weight 1 onlink
nexthop via 169.254.0.1 dev em2 weight 1 onlink
10.101.155.0/24 proto bgp metric 20
nexthop via 169.254.0.1 dev em1 weight 1 onlink
nexthop via 169.254.0.1 dev em2 weight 1 onlink
10.101.246.0/24 dev em3 proto kernel scope link src 10.101.246.11
169.254.0.0/16 dev em3 scope link metric 1002
169.254.0.0/16 dev em1 scope link metric 1003
169.254.0.0/16 dev em2 scope link metric 1005
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
وجود مشكلة مشابهة لمشكلة # 982
ركض
# kubeadm config images pull
unable to select an IP from default routes.
# kubeadm config images pull -v 10
I1003 20:56:35.880474 87226 interface.go:360] Looking for default routes with IPv4 addresses
I1003 20:56:35.880550 87226 interface.go:365] Default route transits interface "em1"
I1003 20:56:35.881831 87226 interface.go:174] Interface em1 is up
I1003 20:56:35.881925 87226 interface.go:222] Interface "em1" has 1 addresses :[fe80::266e:96ff:fe5f:7b48/64].
I1003 20:56:35.881957 87226 interface.go:189] Checking addr fe80::266e:96ff:fe5f:7b48/64.
I1003 20:56:35.881989 87226 interface.go:202] fe80::266e:96ff:fe5f:7b48 is not an IPv4 address
I1003 20:56:35.882027 87226 interface.go:360] Looking for default routes with IPv6 addresses
I1003 20:56:35.882051 87226 interface.go:376] No active IP found by looking at default routes
unable to select an IP from default routes.
نفس الخطأ يحدث مع عمل kubeadm init
أتوقع أن يعمل kubeadm وسحب الصور أو يؤدي عملية تهيئة.
ربما يكون لديك طريقة لتحديد عنوان IP أو واجهة مضيفي.
@ bart0shkad - هل لديك أي الاجهزة الشبكة التي تشبه هذا؟
scheuk ما هو عنوان IPv4 المحلي
هل يمكنك إضافته إلى / etc / hosts وتحديد kubeadm config؟
/ cc @ kubernetes / sig-network-bugs
timothysc هل نعرف ما إذا كان خادم api سيعمل مع هذا النوع من البيئة؟ أنا فقط أتساءل عما إذا كنا نجعل kubeadm يعمل في إعداد هذه الشبكة ، فهل سنواجه المزيد من المشاكل على الطريق؟
إذا كان لديك محول إيثرنت محدد يلف التفاصيل ويمكنك الارتباط أو تجاوز المضيفين / etc / hosts ، فأعتقد أنه يجب أن "يعمل فقط".
تضمين التغريدة
عنوان IP للمضيف المحلي الخاص بي يجلس على lo0:
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet 10.101.228.11/32 brd 10.101.228.11 scope global lo:0
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
عنوان ip 10.101.228.11
قضيت الصباح في عمل kubeadm init
.
تمكنت من إضافة هذا إلى التكوين وعملت init مثل السحر.
api:
advertiseAddress: 10.101.228.11
ومع ذلك ، ما زلت عالقًا في حاجة إلى مسار لأداء الأمر kubeadm config images pull
بالإضافة إلى kubeadm token create --print-join-command
للحصول على أمر الانضمام لإضافة عقد عاملة إلى الكتلة.
تضمين التغريدة
هل يمكنك شرح تجاوز / etc / hosts؟
لقد حاولت للتو إضافة 10.101.228.11 hostname
إلى / etc / hosts.
لكن kubeadm لا يزال يبحث في الواجهة مع المسار.
لذلك يجب أن يتم ذلك مع تفاصيل تكوين الشبكة الخاصة بك ، إلى جانب السلوك الافتراضي للنظام.
أنا متأكد تمامًا مما إذا كنت ستصنع محولًا موصلاً لربط عنوان IPv4 بـ ، مقابل الارتباط بالاسترجاع ، فإنه سيكتشف بشكل صحيح.
أنا أحفر الآن لمعرفة ما إذا كان هناك تجاوز عالمي لـ nic الذي يعمل عبر *.
لذلك سيكون مزيجًا من عناوين --api-advertise - و- hostname-override ، لست متأكدًا من أن كل هذه الخيارات تنتقل إلى جميع الأوامر الفرعية ، ولا تزال تبحث.
scheuk هل يمكنك تشغيل
kubeadm config images pull --config yourconfig.yaml
مع تحديد ملف التكوين الخاص بك: advertiseAddress
قد تحتاج إلى تمرير --config
لكل أمر فرعي b / c بالطريقة التي يتم بها إعداد شبكتك.
يمكنك تشغيل kubeadm token create --print-join-command
من أي مضيف أو خط أنابيب بعلامة --kubeconfig
.
هناك حل محتمل حول الصور التي تسحب الشيء نظرًا للتكوين سيكون شيئًا مثل:
kubeadm config images list | xargs -n1 -I {} docker pull {}
تشغيل قبل الحرف الأول
تضمين التغريدة
لا تستمر - kubeconfig:
# kubeadm token create --print-join-command --kubeconfig /etc/kubernetes/admin.conf
unable to select an IP from default routes.
أيضًا إذا حاولت باستخدام --config ، فإنه يقول إنه لا يمكنك الجمع بين هذين:
# kubeadm token create --print-join-command --config /etc/kubernetes/kubeadm.conf
can not mix '--config' with arguments [print-join-command]
نجح هذا ، وسوف أقوم بتحديث النشر الخاص بي للقيام بذلك
# kubeadm config images pull --config /etc/kubernetes/kubeadm.conf
أعني أنه يمكنك استخدام kubeadm token create
من جهاز ذو مسار افتراضي مثل الكمبيوتر المحمول الخاص بك طالما أنه يمكنه الوصول إلى apiserver قيد التشغيل ومستوى مشرف kubeconfig
تضمين التغريدة
""
لا يمكن خلط "--config" مع الوسائط [print-Join-command]
""
هو خطأ بسيط يمكننا إصلاحه في 1.13
هل ما زلت محجوبًا؟
تضمين التغريدة
ما زلت محجوبًا.
نستخدم ansible لأداء كل هذه الخطوات وأنا أعمل حاليا
kubeadm token create --print-join-command
على المعلم الأول للحصول على الأمر لربط العقد العاملة في الكتلة. ومع ذلك ، قد أتمكن من إلغاء حظر نفسي مؤقتًا عن طريق القيام بما يقوله mauilion ، وإعداد kubeadm محليًا (حيث يتم تشغيل ansible من) لتنفيذ هذا الإجراء.
شكرا لكل المساعدة حتى الآن!
نستخدم ansible لأداء كل هذه الخطوات وأنا أعمل حاليا
kubeadm token قم بإنشاء --print-Join-command على المعلم الأول للحصول على الأمر لضم العقد العاملة إلى الكتلة.
ناتج init
يحتوي على الأمر الذي يجب عليك تنفيذه على العقد الأخرى.
يتم ذلك عادةً بشكل غير مرئي لأن الرمز المميز قصير العمر ومن الأسهل التقاط إخراج أمر الانضمام من إنشاء الرمز المميز بدلاً من init.
كما أنه من الصعب بعض الشيء تحليله مع جميع المخرجات الأخرى والتباعد ؛)
كما أنه من الصعب بعض الشيء تحليله مع جميع المخرجات الأخرى والتباعد ؛)
لقد فعلت الكثير في حياتي ومن المحتمل أن أكون غير حساس للغاية ؛-)
لذا فإن مضيفي المحلي حيث يمكنني تشغيل kubeadm من ansible هو جهاز Mac.
من صفحة تثبيت kubeadm ، لا يدعم نظام التشغيل Mac OS X.
docker run --net=host --rm -v /path/to/kubeconfig:/kubeconfig quay.io/mauilion/kubeadm:v1.11.3 kubeadm token create --print-join-command --kubeconfig=/kubeconfig
output:
kubeadm join 10.192.0.2:6443 --token iwikby.5u4wc05jnbdldq5e --discovery-token-ca-cert-hash sha256:f19311dfe7034d14c48002fd4f29e285270a573b9e9066735d5749ca89b9c89f
:)
تضمين التغريدة لكن هذا رائع لديك كوناتين kubeadm :)
لقد قمت للتو بتحديث ansible لتنفيذ:
docker run --rm -v /etc/kubernetes/admin.conf:/kubeconfig quay.io/mauilion/kubeadm:v1.11.3 kubeadm token create --print-join-command --kubeconfig=/kubeconfig 2>/dev/null
على المعلم الأول. دع الحاوية تستخدم شبكة عامل الإرساء بدلاً من الشبكة المضيفة لإخفاء إعداد الشبكة.
لطيف
هل أنت غير محظورscheuk
نعم غير محظور الآن! شكرا لجميع التعليمات!
@ bart0shkad - هل لديك أي الاجهزة الشبكة التي تشبه هذا؟
ليس لدينا مثل هذا تمامًا ، لكنني أعتقد أنه يمكننا محاكاة هذا الإعداد بشكل أبسط ولكن قريبًا.
scheuk ، هل يمكنك عرض أمثلة ماذا لديك في جدول توجيه
kad انتقل فريق شبكتنا تمامًا إلى ipv6 حتى الآن ، لكنهم اشتروا في توجيه cumulus linux على المضيف باستخدام العناوين المحلية لرابط ipv6 و RFC المذكورة أعلاه.
هنا رابط لكيفية عملها: https://docs.cumulusnetworks.com/display/ROH/Routing+on+the+Host
ضمن قسم BGP و OSPF Unnumbered Interfaces .
مرفق هنا الإخراج إذا كان جدول توجيه IPv6 وواجهات:
# ip -6 route
unreachable ::/96 dev lo metric 1024 error -113 pref medium
unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113 pref medium
unreachable 2002:a00::/24 dev lo metric 1024 error -113 pref medium
unreachable 2002:7f00::/24 dev lo metric 1024 error -113 pref medium
unreachable 2002:a9fe::/32 dev lo metric 1024 error -113 pref medium
unreachable 2002:ac10::/28 dev lo metric 1024 error -113 pref medium
unreachable 2002:c0a8::/32 dev lo metric 1024 error -113 pref medium
unreachable 2002:e000::/19 dev lo metric 1024 error -113 pref medium
unreachable 3ffe:ffff::/32 dev lo metric 1024 error -113 pref medium
fe80::/64 dev fabric0 proto kernel metric 256 mtu 9000 pref medium
fe80::/64 dev em1 proto kernel metric 256 pref medium
fe80::/64 dev em2 proto kernel metric 256 pref medium
fe80::/64 dev em3 proto kernel metric 256 pref medium
fe80::/64 dev docker0 proto kernel metric 256 pref medium
# ip addr show em1
4: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
link/ether 24:6e:96:5f:7b:48 brd ff:ff:ff:ff:ff:ff
inet6 fe80::266e:96ff:fe5f:7b48/64 scope link
valid_lft forever preferred_lft forever
# ip addr show em2
5: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
link/ether 24:6e:96:5f:7b:4a brd ff:ff:ff:ff:ff:ff
inet6 fe80::266e:96ff:fe5f:7b4a/64 scope link
valid_lft forever preferred_lft forever
kad انتقل فريق شبكتنا تمامًا إلى ipv6 حتى الآن ، لكنهم اشتروا في توجيه cumulus linux على المضيف باستخدام العناوين المحلية لرابط ipv6 و RFC المذكورة أعلاه.
هنا رابط لكيفية عملها: https://docs.cumulusnetworks.com/display/ROH/Routing+on+the+Host
ضمن قسم BGP و OSPF Unnumbered Interfaces .
scheuk شكرا على التوضيحات. لذا ، لتلخيص الصورة بأكملها (لمعرفة ما إذا كنت قد فهمت الإعداد الخاص بك تمامًا):
lo
واجهة واحدة (أو أكثر؟) / 32 عنوان ipv4.lo
(مشابه لسيناريوهات ipv4)هل هذا صحيح ؟
إذا كان هذا صحيحًا أعلاه ، فهل يمكنك مشاركة ناتج إضافي ip ro get 8.8.8.8
؟
(بدلاً من 8.8.8.8
يمكنك استخدام أي عنوان IP أحادي الإرسال. أحاول فهم ما سيستخدمه kernel كعنوان مصدر صادر للمسار الافتراضي والمسارات التي حصلت عليها عبر ospf / bgp ، خارج نطاق IP للمجموعة الخاصة بك ).
scheuk ، يمكنك تجربة التصحيح من # 69578 لمعرفة ما إذا كان يعمل في الإعداد الخاص بك.
إذا كنت بحاجة إلى بعض المساعدة ، يمكنني توفير نظام ثنائي مدمج مع تطبيق التصحيح.
kad فهمك للإعداد لدينا صحيح.
تعلن BGP عن مسارات أخرى أيضًا ، وقد تم تكوينها لالتقاط مسارات الثقب الأسود المحلية والإعلان عنها ، ولكن هذا مخصص لاتصال POD مقابل اتصال المضيف.
هذا ناتج ip ro get
على المضيف:
# ip ro get 8.8.8.8
8.8.8.8 via 169.254.0.1 dev em2 src 10.101.228.11
cache
سأحاول أيضًا اختبار التصحيح من # 69578 وإعلامك بذلك
kad ، هل يمكنك أن ترسل لي ثنائيًا ، قد يستغرق وقتًا أقل ثم أقوم بإعداد go / معرفة كيفية إضافة تصحيح :)
kad ، هل يمكنك أن ترسل لي ثنائيًا ، قد يستغرق وقتًا أقل ثم أقوم بإعداد go / معرفة كيفية إضافة تصحيح :)
جرب http://orava.kad.name/kubeadm/kubeadm-69578
تم بناء هذا الكوبيدم من الفرع الرئيسي. ولكن إلى الحد الأدنى ، يجب أن يكون الأمر جيدًا لمحاولة الإعداد الخاص بك.
@ kad تبدو جيدة:
# ./kubeadm-69578 config images pull -v 10
I1009 21:53:05.336396 47234 interface.go:384] Looking for default routes with IPv4 addresses
I1009 21:53:05.336485 47234 interface.go:389] Default route transits interface "em1"
I1009 21:53:05.337591 47234 interface.go:196] Interface em1 is up
I1009 21:53:05.337687 47234 interface.go:244] Interface "em1" has 1 addresses :[fe80::266e:96ff:fe5f:7b48/64].
I1009 21:53:05.337721 47234 interface.go:211] Checking addr fe80::266e:96ff:fe5f:7b48/64.
I1009 21:53:05.337742 47234 interface.go:224] fe80::266e:96ff:fe5f:7b48 is not an IPv4 address
I1009 21:53:05.337768 47234 interface.go:398] Default route exists for IPv4, but interface "em1" does not have unicast addresses. Checking loopback interface
I1009 21:53:05.338779 47234 interface.go:196] Interface lo is up
I1009 21:53:05.338884 47234 interface.go:244] Interface "lo" has 4 addresses :[127.0.0.1/8 10.101.228.11/32 192.0.2.1/24 ::1/128].
I1009 21:53:05.338918 47234 interface.go:211] Checking addr 127.0.0.1/8.
I1009 21:53:05.338958 47234 interface.go:221] Non-global unicast address found 127.0.0.1
I1009 21:53:05.338977 47234 interface.go:211] Checking addr 10.101.228.11/32.
I1009 21:53:05.338995 47234 interface.go:218] IP found 10.101.228.11
I1009 21:53:05.339025 47234 interface.go:250] Found valid IPv4 address 10.101.228.11 for interface "lo".
I1009 21:53:05.339044 47234 interface.go:404] Found active IP 10.101.228.11 on loopback interface
I1009 21:53:05.339186 47234 version.go:156] fetching Kubernetes version from URL: https://dl.k8s.io/release/stable-1.txt
I1009 21:53:05.687024 47234 feature_gate.go:206] feature gates: &{map[]}
جيد. لذا ، يرجى التعليق على العلاقات العامة :)
/ ccrdodev - بخصوص
العلاقات العامة ذات الصلة بهذا في رحلة طيران من kad لكن المراجعات معلقة:
https://github.com/kubernetes/kubernetes/pull/69578
/ تعيين rdodev
دعنا نتحدث في الصباح على هذا.
kubeadm token create --print-Join-command --config /etc/kubernetes/kubeadm.conf لا يمكنه مزج "--config" مع الوسائط [print-Join-command]
من حيث cli ، فقد تم بالفعل الاهتمام بهذاtimothysc
عظيم!
فقط ضع عنوان IP الخاص بالسيد بدلاً من $ (hostname -i)
على سبيل المثال:
kubeadm init - عنوان الخادم الإعلاني 192.168.1.2
التعليق الأكثر فائدة
لقد فعلت الكثير في حياتي ومن المحتمل أن أكون غير حساس للغاية ؛-)