في كل مرة أقوم فيها بتثبيت Kubernetes 1.15.3 ، فإنه يعمل بشكل رائع ، حتى أقوم بإعادة تشغيل الجهاز الظاهري ثم لم يعد يستمع إلى المنفذ 6443. تم إيقاف تشغيل Swap. يحتوي / etc / tab فقط على وحدة تخزين الجذر على خادم Ubuntu 18.04 VM الخاص بي. لاحظ ، باستخدام الفانيلا

cat /proc/swaps
Filename                                Type            Size    Used    Priority

إرجاع kubectl فقط رفض

kubectl get nodes
The connection to the server <myip>:6443 was refused - did you specify the right host or port?

sudo netstat -tulpn

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       
PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      
770/systemd-resolve
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      
1694/sshd
tcp        0      0 127.0.0.1:36957         0.0.0.0:*               LISTEN      
1269/containerd
tcp        0      0 127.0.0.1:10248         0.0.0.0:*               LISTEN      
2720/kubelet
tcp        0      0 127.0.0.1:33385         0.0.0.0:*               LISTEN      
2720/kubelet
tcp6       0      0 :::22                   :::*                    LISTEN      
1694/sshd
tcp6       0      0 :::10250                :::*                    LISTEN      
2720/kubelet
udp        0      0 127.0.0.53:53           0.0.0.0:*                           
770/systemd-resolve

kubelet حالة systemctl

Oct 21 12:47:23 kubernetes1 kubelet[2720]: E1021 12:47:23.811807    2720 
reflector.go:125] k8s.io/client-go/informers/factory.go:133: Failed to list 
*v1beta1.RuntimeClass: Get https://<MYIP>:6443/apis/nodOct 21 
12:47:23 kubernetes1 kubelet[2720]: E1021 12:47:23.824760    2720 
kubelet.go:2248] node "kubernetes1" not found

ps -ef | قبضة مكعب

root      2720     1  0 12:32 ?        00:00:07 /usr/bin/kubelet -- 
bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf -- 
kubeconfig=/etc/kubernetes/kubelet.conf -- 
config=/var/lib/kubelet/config.yaml --cgroup-driver=cgroupfs --network- 
plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.1 --resolv- 
conf=/run/systemd/resolve/resolv.conf

باستخدام الفانيلا

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 

أيه أفكار؟ يخبرني "interweb" فقط أن أتحقق من المبادلة ، لكنني قمت بفحصها حرفياً 6 طرق مختلفة وجميع المؤشرات تشير إلى أنه متوقف.

يُظهر ملف admin الذي تم نسخه إلى .kube الخادم الصحيح والمنفذ الصحيح. خادم API ليس فقط. افكار اي احد؟

Journalctl -xeu kubelet

ملاحظة ، kubernetes1 هو اسم الخادم الرئيسي الخاص بي.

Oct 22 02:28:59 kubernetes1 kubelet[2720]: E1022 02:28:59.521057    2720 kubelet.go:2248] node "kubernetes1" not found
Oct 22 02:28:59 kubernetes1 kubelet[2720]: E1022 02:28:59.610016    2720 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: Failed to list *v1.Pod: Get https://<myip>:6443/api/v1/podsOct 22 02:28:59 kubernetes1 kubelet[2720]: E1022 02:28:59.621170    2720 kubelet.go:2248] node "kubernetes1" not found
Oct 22 02:28:59 kubernetes1 kubelet[2720]: E1022 02:28:59.721293    2720 kubelet.go:2248] node "kubernetes1" not found
Oct 22 02:28:59 kubernetes1 kubelet[2720]: E1022 02:28:59.810053    2720 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/kubelet.go:444: Failed to list *v1.Service: Get https://<myip>:6443/api/v1/servicesOct 22 02:28:59 kubernetes1 kubelet[2720]: E1022 02:28:59.823444    2720 kubelet.go:2248] node "kubernetes1" not found
Oct 22 02:28:59 kubernetes1 kubelet[2720]: E1022 02:28:59.923615    2720 kubelet.go:2248] node "kubernetes1" not found
Oct 22 02:29:00 kubernetes1 kubelet[2720]: E1022 02:29:00.010365    2720 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/kubelet.go:453: Failed to list *v1.Node: Get https://<myip>:6443/api/v1/nodes?fieldOct 22 02:29:00 kubernetes1 kubelet[2720]: E1022 02:29:00.023809    2720 kubelet.go:2248] node "kubernetes1" not found
Oct 22 02:29:00 kubernetes1 kubelet[2720]: E1022 02:29:00.123954    2720 kubelet.go:2248] node "kubernetes1" not found
Oct 22 02:29:00 kubernetes1 kubelet[2720]: E1022 02:29:00.210384    2720 reflector.go:125] k8s.io/client-go/informers/factory.go:133: Failed to list *v1beta1.RuntimeClass: Get https://<myip>:6443/apis/nodOct 22 02:29:00 kubernetes1 kubelet[2720]: E1022 02:29:00.225717    2720 kubelet.go:2248] node "kubernetes1" not found
Oct 22 02:29:00 kubernetes1 kubelet[2720]: E1022 02:29:00.325890    2720 kubelet.go:2248] node "kubernetes1" not found
Oct 22 02:29:00 kubernetes1 kubelet[2720]: E1022 02:29:00.410429    2720 reflector.go:125] k8s.io/client-go/informers/factory.go:133: Failed to list *v1beta1.CSIDriver: Get https://<myip>:6443/apis/storagOct 22 02:29:00 kubernetes1 kubelet[2720]: E1022 02:29:00.425998    2720 kubelet.go:2248] node "kubernetes1" not found
Oct 22 02:29:00 kubernetes1 kubelet[2720]: E1022 02:29:00.526126    2720 kubelet.go:2248] node "kubernetes1" not found
Oct 22 02:29:00 kubernetes1 kubelet[2720]: E1022 02:29:00.610341    2720 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: Failed to list *v1.Pod: Get https://<myip>:6443/api/v1/podsOct 22 02:29:00 kubernetes1 kubelet[2720]: E1022 02:29:00.626218    2720 kubelet.go:2248] node "kubernetes1" not found
answer

بعد إعادة تثبيت نظام التشغيل و Kubernetes 1.15.5 ، كانت المشكلة متعلقة بـ DNS. لن يتم سحب صور Docker نظرًا لتعذر حل خادم عامل الإرساء بعد إعادة التشغيل.

لقد حاولت سابقًا تعديل resolv.conf مباشرةً كما ذكر أعلاه ، لكن Ubuntu يريد إدارة resolv.conf نفسه باستخدام netplan. يبدو أن إجراء التغييرات اليدوية وإعادة التشغيل يؤدي إلى تجاهل هذه التغييرات.

إذا قمت بتعديل netplan yaml ، وقمت بتشغيل تطبيق netplan ، فإنه يضع 127.0.0.53 في resolv.conf ويقوم بتشغيل وكيل DNS محلي ، والذي يقوم بعد ذلك بإعادة التوجيه بشكل صحيح إلى خادم dns dns الذي قمت بتكوينه. أتوقع أن أرى خوادم DNS الخاصة بي في resolv.conf وهذا ما تسبب في المشكلة.

لا تقم بتعديل resolv.conf مباشرة على أوبونتو. استخدم netplan.

نظرًا لعدم وجود تأكيد لـ OP ، فأنا أنشره كـ Community Wiki.

خطأ مثل:

Get registry-1.docker.io/v2: dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:55820->[::1]:53: read: connection refused.

يعني أن VM لا يمكنه الوصول إلى مستودع Docker. لقد وجدت بعض القضايا المشابهة مثل هذه .

سوف أنشر بعض الإجراءات التي قد تساعد في حل هذه المشكلة:

1. أعد تشغيل Docker و kubelet باستخدام:

$ service docker restart
$ systemctl restart kubelet

2. أضف خادم الأسماء يدويًا

- SSH to the master
- sudo vi /etc/resolv.conf
- add "nameserver 8.8.8.8" and save this change.
- Eventually restart docker and kubelet

3. أعد تثبيت عامل الإرساء أو قم بتثبيت أحدث إصدار

4. استخدام عامل ميناء خلف الوكيل

إذا كنت تستخدم أي وكيل ، فتحقق من هذا البرنامج التعليمي.

تعديل:

استنادًا إلى المعلومات الواردة من OP ، يبدو أن المشكلة نتجت عن Netplan وهي أداة مفيدة لتكوين الشبكات على نظام Linux . لقد فرض تكوين شبكة أخرى بسبب عدم تمكن Docker من سحب الصور.

تحتاج فقط إلى إنهاء خدمة kubelet وإعادة التشغيل مرة أخرى. ستعمل البودات والحاويات جيدًا قبل إعادة التشغيل.

pkill kubelet

و

systemctl restart kubelet

حظا سعيدا