Điểm:1

Định tuyến Ubuntu 20.04 cho chỉ một IP (trong cùng một mạng con) kết thúc bằng "dev lo" thay vì "dev eth0", nút công nhân kubernetes không thể kết nối với nút chính

lá cờ fr

Tôi đã gặp sự cố định tuyến (như bây giờ đối với tôi). Tôi không thể truy cập một trong các nút công nhân (máy chủ) từ nút chính (máy chủ) của mình nữa. AFAIK, nó không liên quan gì đến Kubernetes, nó dẫn đến sự cố mạng Linux thuần túy. Vì sự cố chỉ xảy ra với một IP nên tôi đã khắc phục sự cố iptables, bật TRACE và nhận ra rằng gói thực sự đi qua chủ (eth0), truy cập iptables (vượt qua: raw > mangle >nat) nhưng khi nó phải được chuyển từ nat sang bộ lọc, nó chỉ biến mất. Theo tôi hiểu, đó là điểm mà kernel phải đưa ra quyết định định tuyến.Đã kiểm tra định tuyến và thấy rằng nó không hoạt động chỉ với một IP đó (tất cả các IP khác từ cùng một phân đoạn IP đều hoạt động tốt)!? Vì tôi đang sử dụng nhà cung cấp đám mây và không thể khắc phục sự cố kết nối mạng nên tôi đã thử cài đặt lại hệ điều hành (cùng Ubuntu 20.04) của nút chính (máy chủ). Phát hiện ra rằng với cài đặt lại hệ điều hành mới, sự cố không xuất hiện, do đó, sự cố cấu hình phải nằm trong máy chủ Linux chính của tôi (tôi đã hoàn nguyên ảnh chụp nhanh biểu mẫu máy chủ).

root@vmi57XXXX:~# tuyến đường  
Bảng định tuyến IP hạt nhân  
Cổng đích Genmask Flag Metric Ref Sử dụng Iface  
mặc định gw.provider.net 0.0.0.0 UG 0 0 0 eth0  
10.244.0.0 0.0.0.0 255.255.255.0 U 0 0 0 cni0  
10.244.1.0 10.244.1.0 255.255.255.0 UG 0 0 0 vải nỉ.1  
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0  
root@vmi57XXXX:~# tuyến đường ip nhận xx.xx.xx.96  
local xx.xx.xx.96 dev lo src xx.xx.xx.96 uid 0   
    bộ đệm <cục bộ>   
root@vmi57XXXX:~# tuyến đường ip nhận xx.xx.xx.95  
xx.xx.xx.95 qua xx.xx.xx.1 dev eth0 src xx.xx.xx.95 uid 0   
    bộ đệm  
root@vmi57XXXX:~# tuyến đường ip nhận xx.xx.xx.97  
xx.xx.xx.97 qua xx.xx.xx.1 dev eth0 src xx.xx.xx.97 uid 0   
    bộ đệm   
  
root@vmi57XXXX:~# arp -v  
Địa chỉ HWtype HWaddress Flags Mask Iface  
10.244.0.60 ête 8a:94:de:43:b6:0f C cni0  
10.244.0.63 ête 1e:76:6a:60:27:f3 C cni0  
10.244.0.62 ête 36:0b:19:5e:57:87 C cni0  
gw.provider.net ether 00:c0:1d:c0:ff:ee C eth0  
10.244.0.64 ether 82:03:61:c5:4d:fb C cni0  
10.244.0.50 (không đầy đủ) cni0  
10.244.1.0 ether 52:3d:a5:f4:c2:2c CM flannel.1  
10.244.0.61 ête 56:19:98:79:a1:3a C cni0  
Mục nhập: 8 Bỏ qua: 0 Tìm thấy: 8  

root@vmi57XXXX:~# ip netconf show dev eth0
inet eth0 chuyển tiếp trên rp_filter tắt mc_forwarding tắt proxy_neigh tắt 
bỏ qua_routes_with_linkdown tắt 
tắt chuyển tiếp inet6 eth0 mc_forwarding tắt proxy_neigh tắt 
bỏ qua_routes_with_linkdown tắt 

Bất kỳ manh mối nào về những gì đang diễn ra ở đó đều được hoan nghênh!!!

Cảm ơn

CHỈNH SỬA: Sau khi giải quyết vấn đề, điều đáng nói là hành vi này đã xảy ra với Kubernetes 1.21.2-00 và flannel là CNI. Tôi đã nâng cấp vài tuần trước và đây là lần khởi động lại đầu tiên của một nút công nhân sau khi nâng cấp.

Điểm:1
lá cờ fr

GIẢI QUYẾT!

kẻ xấu thực sự là Kubernetes - nó đặt một tuyến LOCA L trên nút chính không thể hoạt động nếu không có dịch vụ mạng chức năng của Kubernetes (flannel - trong trường hợp của tôi).Do đó, khi nút worker được khởi động lại, nó không còn có thể truy cập dịch vụ API của nút chính (6443/tcp) và không thể hiển thị chính nó với API - vòng tròn ma thuật khép kín trong đó nút đánh thức được lặp lại mà không gặp may.

Hôm nay tôi đã học về các tuyến "cục bộ" được duy trì bởi kernel (có thể tìm thấy tất cả các bảng định tuyến hiện có tại đây: /etc/iproute2/rt_tables).

bảng ip route ls cục bộ
local xx.xx.xx.96 dev kube-ipvs0 máy chủ phạm vi kernel proto src xx.xx.xx.96 <<< VẤN ĐỀ
local xx.xx.xx.50 dev eth0 máy chủ phạm vi kernel proto src xx.xx.xx.50 <<< i.e. OK

xóa tuyến đường

ip route del table local local xx.xx.xx.96 dev kube-ipvs0 proto kernel scope Host src xx.xx.xx.96

và bây giờ nó hoạt động

root@vmi57XXXX:~# tuyến đường ip nhận xx.xx.xx.96
xx.xx.xx.96 qua xx.xx.xx.1 dev eth0 src xx.xx.xx.50 uid 0 
    bộ đệm
Martin avatar
lá cờ kz
đi trước và chấp nhận câu trả lời của riêng bạn. Đẹp một! Tôi chưa bao giờ biết rằng có một bảng định tuyến không được hiển thị bằng cách sử dụng lệnh định tuyến "cũ"...
Marsplay avatar
lá cờ fr
đã phải mất hai ngày một đêm mất ngủ để tìm ra điều đó. Tôi không chắc chính xác những gì tôi đang tìm kiếm và việc tìm kiếm trên Google không giúp được gì cả. Để giúp đỡ những người khác, tôi đã thêm kubernetes vào tiêu đề vấn đề vì có thể có nhiều người khác gặp vấn đề tương tự. Và để chấp nhận câu trả lời của riêng tôi, phải mất hai ngày, đó là những gì quy tắc hệ thống nói :)

Đă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.