Điểm:1

Lỗi CoreDNS do vòng lặp: làm cách nào để nạp kubelet với độ phân giải phù hợp?

lá cờ in

Đây là lúc cuộc điều tra bắt đầu: CoreDNS không thể hoạt động lâu hơn trong vài giây, gây ra các lỗi sau:

$ kubectl lấy nhóm --all-namespaces
NAMESPACE NAME TÌNH TRẠNG SẴN SÀNG KHỞI ĐỘNG LẠI TUỔI
ingress-nginx ingress-nginx-controller-8xcl9 1/1 Chạy 0 11h
ingress-nginx ingress-nginx-controller-hwhvk 1/1 Chạy 0 11h
ingress-nginx ingress-nginx-controller-xqdqx 1/1 Chạy 2 (10h trước) 11h
kube-system calico-kube-controllers-684bcfdc59-cr7hr 1/1 Chạy 0 11h
kube-system calico-node-62p58 1/1 Running 2 (10h trước) 11h
kube-system calico-node-btvdh 1/1 Chạy 0 11h
kube-system calico-node-q5bkr 1/1 Chạy 0 11h
kube-system coredns-8474476ff8-dnt6b 0/1 CrashLoopBackOff 1 (3s trước) 5s
kube-system coredns-8474476ff8-ftcbx 0/1 Lỗi 1 (2s trước) 5s
kube-system dns-autoscaler-5ffdc7f89d-4tshm 1/1 Running 2 (10h trước) 11h
kube-system kube-apiserver-hyzio 1/1 Running 4 (10h trước) 11h
kube-system kube-controller-manager-hyzio 1/1 Running 4 (10h trước) 11h
kube-system kube-proxy-2d8ls 1/1 Chạy 0 11h
kube-system kube-proxy-c6c4l 1/1 Running 4 (10h trước) 11h
kube-system kube-proxy-nzqdd 1/1 Chạy 0 11h
kube-system kube-scheduler-hyzio 1/1 Running 5 (10h trước) 11h
kube-system kubernetes-dashboard-548847967d-66dwz 1/1 Chạy 0 11h
kube-system kubernetes-metrics-scraper-6d49f96c97-r6dz2 1/1 Chạy 0 11h
kube-system nginx-proxy-dyzio 1/1 Chạy 0 11h
kube-system nginx-proxy-zyzio 1/1 Chạy 0 11h
kube-system nodelocaldns-g9wxh 1/1 Chạy 0 11h
kube-system nodelocaldns-j2qc9 1/1 Running 4 (10h trước) 11h
kube-system nodelocaldns-vk84j 1/1 Chạy 0 11h
kube-system registry-j5prk 1/1 Chạy 0 11h
kube-system registry-proxy-5wbhq 1/1 Chạy 0 11h
kube-system registry-proxy-77lqd 1/1 Chạy 0 11h
kube-system registry-proxy-s45p4 1/1 Đang chạy 2 (10h trước) 11h

mô tả kubectl trên nhóm đó không mang lại nhiều điều cho bức tranh:

Sự kiện:
  Nhập Lý do Tuổi từ Tin nhắn
  ---- ------ ---- ---- -------
  Trình lập lịch trình mặc định của thập niên 67 được lên lịch bình thường Đã gán thành công kube-system/coredns-8474476ff8-dnt6b cho zyzio
  Bình thường được kéo 25 giây (x4 trên 68 giây) kubelet Container image "k8s.gcr.io/coredns/coredns:v1.8.0" đã có trên máy
  Đã tạo bình thường 25s (x4 trên 68s) kubelet Đã tạo coredns vùng chứa
  Bắt đầu bình thường 25s (x4 trên 68s) kubelet Bắt đầu container coredns
  Cảnh báo BackOff 6s (x11 trên 66s) kubelet Back-off khởi động lại vùng chứa không thành công

Nhưng việc xem nhật ký đã làm:

$ nhật ký kubectl coredns-8474476ff8-dnt6b -n kube-system
.:53
[INFO] plugin/tải lại: Chạy cấu hình MD5 = 5b233a0166923d642fdbca0794b712ab
CoreDNS-1.8.0
linux/amd64, go1.15.3, 054c9ae
[FATAL] plugin/vòng lặp: Đã phát hiện vòng lặp (127.0.0.1:49048 -> :53) cho vùng ".", xem https://coredns.io/plugins/loop#troubleshooting.Truy vấn: "HINFO 2906344495550081187.9117452939332601176."

Thật tuyệt khi tài liệu khắc phục sự cố được liên kết! Tôi bắt đầu duyệt trang đó và phát hiện ra rằng thực sự tôi /etc/resolv.conf chứa IP cục bộ có vấn đề máy chủ tên 127.0.0.53.

Ngoài ra, tôi tìm thấy thực IP DNS trong /run/systemd/resolve/resolv.conf, nhưng câu hỏi bây giờ là: cách thực hiện hành động được mô tả trong tài liệu khắc phục sự cố, cho biết:

Thêm phần sau vào yaml cấu hình kubelet của bạn: resolvConf: (hoặc thông qua cờ dòng lệnh --resolv-conf không dùng nữa trong 1.10). ârealâ resolv.conf của bạn là tệp chứa IP thực của các máy chủ ngược dòng của bạn và không có địa chỉ cục bộ/loopback. Cờ này yêu cầu kubelet chuyển một resolv.conf thay thế cho Pods. Đối với các hệ thống sử dụng systemd-resolved, /run/systemd/resolve/resolv.conf thường là vị trí của ârealâ resolv.conf, mặc dù vị trí này có thể khác nhau tùy thuộc vào bản phân phối của bạn.

Vì vậy, các câu hỏi là:

  • cách tìm hoặc nơi tạo yaml cấu hình kubelet đã đề cập,
  • ở cấp độ nào tôi nên chỉ định độ phân giảiConf giá trị và
  • nó có thể chấp nhận nhiều giá trị không? Tôi có hai máy chủ tên được xác định. Chúng có nên được đưa ra dưới dạng các mục riêng biệt hoặc một mảng không?
Điểm:1
lá cờ us

/etc/resolv.conf/ được đặt trong mỗi nút của bạn. Bạn có thể chỉnh sửa nó bằng cách SSHnhập vào nút.
Sau đó, bạn phải khởi động lại kubelet để thay đổi có hiệu lực.

sudo systemctl khởi động lại kubelet

(Nếu điều đó không hiệu quả, hãy khởi động lại các nút của bạn bằng khởi động lại sudo)


/home/kubernetes/kubelet-config.yaml (cũng nằm trên mỗi nút của bạn) chứa tệp config của kubelet. Bạn có thể tạo mới độ phân giải.conf tập tin và trỏ đến nó với độ phân giảiConf cánh đồng

apiVersion: kubelet.config.k8s.io/v1beta1
...
loại: Cấu hình Kubelet
...
decvConf: <vị trí của tệp>

Quan trọng: Cấu hình mới sẽ chỉ được áp dụng cho các nhóm được tạo sau khi cập nhật.Bạn nên thoát nút của mình trước khi thay đổi cấu hình.


nó có thể chấp nhận nhiều giá trị không? Tôi có hai máy chủ tên được xác định. Chúng có nên được đưa ra dưới dạng các mục riêng biệt hoặc một mảng không?

Cấu hình Kubelet trạng thái tài liệu độ phân giảiConf thuộc loại chuỗi, vì vậy có lẽ chỉ một giá trị duy nhất được chấp nhận.

AbreQueVoy avatar
lá cờ in
Chỉ khởi động lại kubelet không giúp được gì; Tôi đã phải thực hiện thao tác `khởi động lại sudo` tàn bạo cho các nút, nhưng nhờ gợi ý của bạn, cuối cùng nó cũng hoạt động như bình thường.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.