หลังจากการสืบสวนฉันพบว่า นักเทียบท่าคริ
บริการขาดบางส่วน:
CGroup: /system.slice/cri-docker.service
ââ1098 /usr/local/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugin=
ฉันเพิ่มพวกเขาด้วยตนเอง /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
...
บริการโหลดซ้ำ:
sudo systemctl daemon โหลดซ้ำ
sudo systemctl รีสตาร์ท cri-docker.service
ณ จุดนี้ cri-dockerd ได้รับการกำหนดค่าอย่างถูกต้อง แต่ปัญหายังคงมีอยู่ ภายหลังฉันสังเกตเห็นว่า /opt/cni/bin
ว่างเปล่า (ไม่มีปลั๊กอินเครือข่ายคอนเทนเนอร์):
masterzulu@master-zulu:~$ sudo /usr/local/bin/cri-dockerd
INFO[0000] กำลังเชื่อมต่อกับนักเทียบท่าบน Endpoint unix:///var/run/docker.sock
INFO[0000] เริ่มไคลเอนต์นักเทียบท่าด้วยการหมดเวลาคำขอ 0 วินาที
INFO[0000] โหมด Hairpin ตั้งค่าเป็นไม่มี
ERRO[0000] เกิดข้อผิดพลาดในการตรวจสอบรายการการกำหนดค่า CNI ({
"ชื่อ": "cbr0",
"cniVersion": "0.3.1",
"ปลั๊กอิน": [
{
"ประเภท": "สักหลาด",
"ผู้รับมอบสิทธิ์": {
"โหมดกิ๊บ": จริง,
"isDefaultGateway": จริง
}
},
{
"ประเภท": "พอร์ตแมป",
"ความสามารถ": {
"portMappings": จริง
}
}
]
}
): [ไม่พบปลั๊กอิน "portmap" ในเส้นทาง [/opt/cni/bin]]
INFO[0000] เครือข่าย Docker cri จัดการโดยปลั๊กอินเครือข่าย kubernetes.io/no-op
...
ข้อมูล[0000] การตั้งค่า cgroupDriver cgroupfs
INFO[0000] Docker cri ได้รับการกำหนดค่ารันไทม์ &RuntimeConfig{NetworkConfig:&NetworkConfig{PodCidr:,},}
INFO[0000] การเริ่มต้นแบ็กเอนด์ GRPC สำหรับอินเทอร์เฟซ Docker CRI
INFO[0000] เริ่มแบ็กเอนด์ cri-dockerd grpc
ฉันคิดว่าฉันลบ /opt/cni/bin โดยไม่ได้ตั้งใจ ดังนั้นฉันจึงเพิ่มเนื้อหาอีกครั้ง (รับไฟล์ รุ่นล่าสุด):
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
บริดจ์แบนด์วิธ ไฟร์วอลล์ dhcp flannel โฮสต์-อุปกรณ์ โฮสต์-โลคัล ipvlan วนกลับ พอร์ตแมป macvlan ptp sbr การปรับแบบคงที่ vlan vrf
หลังจากรีสตาร์ท นักเทียบท่าคริ บริการ ทุกอย่างเริ่มทำงานตามที่คาดไว้:
masterzulu@master-zulu:~$ kubectl รับพ็อด -Ao กว้าง
สถานะพร้อมชื่อ NAMESPACE เริ่มอายุ IP NODE ใหม่
django-space django-588cb669d4-4zz7f 1/1 วิ่ง 0 11 วินาที 10.244.0.4 มาสเตอร์ซูลู
django-space postgres-deployment-b58d5ff94-scmrx 1/1 ทำงาน 0 12s 10.244.0.5 มาสเตอร์ซูลู
kube-system coredns-6d4b75cb6d-rnjlm 1/1 วิ่ง 0 73m 10.244.0.2 มาสเตอร์ซูลู
kube-system coredns-6d4b75cb6d-s6zl7 1/1 วิ่ง 0 73m 10.244.0.3 มาสเตอร์ซูลู
cni0
ขึ้น:
masterzulu@master-zulu:~$ ifconfig -a
cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
inet 10.244.0.1 netmask 255.255.255.0 ออกอากาศ 10.244.0.255
inet6 fe80::8c8:84ff:fe78:d999 คำนำหน้า 64 scopeid 0x20<ลิงค์>
อีเธอร์ 0a:c8:84:78:d9:99 txqueuelen 1,000 (อีเธอร์เน็ต)
แพ็คเก็ต RX 27714 ไบต์ 5010722 (5.0 MB)
ข้อผิดพลาด RX 0 หลุด 0 โอเวอร์รัน 0 เฟรม 0
แพ็กเก็ต TX 26936 ไบต์ 2898949 (2.8 MB)
ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0
นักเทียบท่าคริ สถานะ:
masterzulu@master-zulu:~$ sudo systemctl สถานะ cri-docker
â cri-docker.service - อินเทอร์เฟซ CRI สำหรับ Docker Application Container Engine
โหลดแล้ว: โหลดแล้ว (/etc/systemd/system/cri-docker.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
ใช้งานอยู่: ใช้งานอยู่ (ทำงาน) ตั้งแต่ ศ. 2022-05-27 22:39:06 BST; 1 ชม. 57 นาทีที่แล้ว
ทริกเกอร์โดย: â cri-docker.socket
เอกสาร: https://docs.mirantis.com
PID หลัก: 187399 (cri-dockerd)
งาน: 11
หน่วยความจำ: 17.1M
CGroup: /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>
28 พฤษภาคม 00:36:20 น. master-zulu cri-dockerd[187399]: time="2022-05-28T00:36:20+01:00" level=info msg="Using CNI configuration file /etc/cni/net .d/10-flannel.conflist"
ข้อสรุปของฉัน
การขาดงานของ --network-plugin=cni
ใน นักเทียบท่าคริ args เริ่มต้นหรือปัญหาอื่น ๆ ใน ซีเอ็นไอ configs อาจทำให้เกิดปัญหานี้โดยที่ นักเทียบท่าคริ เห็นว่า ซีเอ็นไอ หายไปและใช้อินเทอร์เฟซ นักเทียบท่า0
โดยตรงเพื่อให้พ็อดได้รับ IP จากช่วงนี้ 172.17.0.x
.
หวังว่านี่จะช่วยทุกคนที่มีปัญหาเดียวกัน