Sau một số cuộc điều tra, tôi thấy rằng cri-dockerd
dịch vụ bị thiếu một số đối số:
Nhóm C: /system.slice/cri-docker.service
ââ1098 /usr/local/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugin=
Tôi đã thêm chúng theo cách thủ công vào /etc/systemd/system/cri-docker.service
:
...
ExecStart=/usr/local/bin/cri-dockerd --network-plugin=cni --cni-bin-dir=/opt/cni/bin --cni-cache-dir=/var/lib/cni/cache - -cni-conf-dir=/etc/cni/net.d --pod-infra-container-image=k8s.gcr.io/pause:3.7
...
Tải lại dịch vụ:
Sudo systemctl daemon-tải lại
Sudo systemctl khởi động lại cri-docker.service
tại thời điểm này, cri-dockerd được cấu hình đúng, nhưng sự cố vẫn tiếp diễn, sau đó tôi nhận thấy rằng /opt/cni/bin
trống (không có plugin mạng vùng chứa):
masterzulu@master-zulu:~$ sudo /usr/local/bin/cri-dockerd
THÔNG TIN[0000] Đang kết nối với docker trên Endpoint unix:///var/run/docker.sock
THÔNG TIN [0000] Bắt đầu máy khách docker với thời gian chờ yêu cầu 0 giây
THÔNG TIN[0000] Chế độ kẹp tóc được đặt thành không
ERRO[0000] Lỗi khi xác thực danh sách cấu hình CNI ({
"tên": "cbr0",
"cniVersion": "0.3.1",
"bổ sung": [
{
"loại": "flannel",
"đại biểu": {
"chế độ kẹp tóc": đúng,
"isDefaultGateway": đúng
}
},
{
"type": "sơ đồ cổng",
"khả năng": {
"portMappings": đúng
}
}
]
}
): [không thể tìm plugin "portmap" trong đường dẫn [/opt/cni/bin]]
THÔNG TIN[0000] Docker cri mạng được quản lý bởi plugin mạng kubernetes.io/no-op
...
THÔNG TIN[0000] Đang đặt cgroupDriver cgroupfs
THÔNG TIN[0000] Docker cri đã nhận cấu hình thời gian chạy &RuntimeConfig{NetworkConfig:&NetworkConfig{PodCidr:,},}
THÔNG TIN[0000] Bắt đầu chương trình phụ trợ GRPC cho giao diện Docker CRI.
THÔNG TIN[0000] Bắt đầu chương trình phụ trợ cri-dockerd grpc
Tôi nghĩ rằng tôi đã xóa nhầm /opt/cni/bin, vì vậy tôi đã thêm lại nội dung của nó (lấy phát hành mới nhất):
cd /tmp && mkdir cni-plugins && wget https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz && cd cni-plugins && tar zxfv ../cni-plugins-linux-AMD64-v1.1.1.tgz
Sudo cp /tmp/cni-plugins/* /opt/cni/bin/
ls /opt/cni/bin
cầu băng thông tường lửa dhcp flannel Host-device Host-local ipvlan loopback macvlan portmap ptp sbr điều chỉnh tĩnh vlan vrf
sau khi khởi động lại cri-docker service, mọi thứ bắt đầu hoạt động như mong đợi:
masterzulu@master-zulu:~$ kubectl get pods -Ao wide
NAMESPACE NAME TÌNH TRẠNG SẴN SÀNG KHỞI ĐỘNG LẠI TUỔI IP NODE
django-space django-588cb669d4-4zz7f 1/1 Chạy 0 11s 10.244.0.4 master-zulu
django-space postgres-deployment-b58d5ff94-scmrx 1/1 Đang chạy 0 12 giây 10.244.0.5 master-zulu
kube-system coredns-6d4b75cb6d-rnjlm 1/1 Đang chạy 0 73m 10.244.0.2 master-zulu
kube-system coredns-6d4b75cb6d-s6zl7 1/1 Chạy 0 73m 10.244.0.3 master-zulu
cni0
lên:
masterzulu@master-zulu:~$ ifconfig -a
cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 10.244.0.1 netmask 255.255.255.0 phát sóng 10.244.0.255
inet6 fe80::8c8:84ff:fe78:d999 tiền tốlen 64 phạm vi 0x20<link>
ether 0a:c8:84:78:d9:99 txqueuelen 1000 (Ethernet)
Gói RX 27714 byte 5010722 (5,0 MB)
Lỗi RX 0 bị rớt 0 tràn 0 khung hình 0
Gói TX 26936 byte 2898949 (2,8 MB)
Lỗi TX 0 bị rớt 0 tràn 0 sóng mang 0 va chạm 0
cri-docker trạng thái:
masterzulu@master-zulu:~$ sudo systemctl status cri-docker
â cri-docker.service - Giao diện CRI cho Docker Application Container Engine
Đã tải: đã tải (/etc/systemd/system/cri-docker.service; đã bật; giá trị đặt trước của nhà cung cấp: đã bật)
Hoạt động: hoạt động (đang chạy) kể từ Thứ Sáu 2022-05-27 22:39:06 BST; 1 giờ 57 phút trước
TriggeredBy: â cri-docker.socket
Tài liệu: https://docs.mirantis.com
PID chính: 187399 (cri-dockerd)
Nhiệm vụ: 11
Bộ nhớ: 17.1M
Nhóm C: /system.slice/cri-docker.service
ââ187399 /usr/local/bin/cri-dockerd --network-plugin=cni --cni-bin-dir=/opt/cni/bin --cni-cache-dir=/var/lib /cni/cache --cni-conf-dir=/etc/cni/net.d --po>
Ngày 28 tháng 5 00:36:20 master-zulu cri-dockerd[187399]: time="2022-05-28T00:36:20+01:00" level=info msg="Sử dụng tệp cấu hình CNI /etc/cni/net .d/10-flannel.conflist"
kết luận của tôi
sự thiếu vắng của --mạng-plugin=cni
Trong cri-dockerd startup args hoặc bất kỳ vấn đề nào khác trong CNI configs có thể gây ra sự cố này khi cri-docker cho rằng CNI bị thiếu và sử dụng giao diện docker0
trực tiếp để các nhóm nhận được IP cao hơn từ phạm vi này 172.17.0.x
.
Hy vọng điều này sẽ giúp bất cứ ai có cùng một vấn đề.