ฉันมีการตั้งค่าคลัสเตอร์ kubernetes ต้นแบบ 1 คนและ 1 คนโดยใช้ kubeadm บนสภาพแวดล้อมการจำลองเสมือน KVM ของ Fedora linux พร้อมช่วง pod cidr - 10.244.0.0/16 ใช้นโยบายเครือข่ายสักหลาด
โหนดหลัก:
ชื่อโฮสต์ - fedkubemaster
ที่อยู่ IP - 192.168.122.161
โหนดการทำงาน:
ชื่อโฮสต์ - fedkubenode
ที่อยู่ IP - 192.168.122.27
(หมายเหตุ - FQDN ของโฮสต์ของฉันไม่สามารถแก้ไข DNS ได้)
$ kubectl รับโหนด -o กว้าง
ชื่อ สถานะ บทบาท อายุ เวอร์ชัน ภายใน-IP ภายนอก-IP OS-อิมเมจ เคอร์เนล-เวอร์ชัน คอนเทนเนอร์-รันไทม์
fedkubemaster Ready control-plane, master 2d20h v1.23.3 192.168.122.161 <ไม่มี> Fedora Linux 35 (Workstation Edition) 5.15.16-200.fc35.x86_64 docker://20.10.12
fedkubenode Ready <ไม่มี> 2d6h v1.23.3 192.168.122.27 <ไม่มี> Fedora Linux 35 (Workstation Edition) 5.15.16-200.fc35.x86_64 docker://20.10.12
นี่คือเส้นทางของฉันจากโหนดหลัก โหนดผู้ปฏิบัติงาน
[admin@fedkubemaster ~]$ เส้นทาง -n
ตารางเส้นทางเคอร์เนล IP
เกตเวย์ปลายทาง Genmask ตั้งค่าสถานะการอ้างอิงเมตริก ใช้ Iface
0.0.0.0 192.168.122.1 0.0.0.0 UG 100 0 0 enp1s0
10.244.0.0 0.0.0.0 255.255.255.0 คุณ 0 0 0 cni0
10.244.1.0 10.244.1.0 255.255.255.0 UG 0 0 0 ผ้าสักหลาด.1
172.17.0.0 0.0.0.0 255.255.0.0 คุณ 0 0 0 นักเทียบท่า 0
172.18.0.0 0.0.0.0 255.255.0.0 คุณ 0 0 0 br-25b1faebd814
192.168.122.0 0.0.0.0 255.255.255.0 คุณ 100 0 0 enp1s0
[admin@fedkubenode ~]$ เส้นทาง -n
ตารางเส้นทางเคอร์เนล IP
เกตเวย์ปลายทาง Genmask ตั้งค่าสถานะการอ้างอิงเมตริก ใช้ Iface
0.0.0.0 192.168.122.1 0.0.0.0 UG 100 0 0 enp1s0
10.244.0.0 10.244.0.0 255.255.255.0 UG 0 0 0 ผ้าสักหลาด.1
10.244.1.0 0.0.0.0 255.255.255.0 คุณ 0 0 0 cni0
172.17.0.0 0.0.0.0 255.255.0.0 คุณ 0 0 0 นักเทียบท่า 0
192.168.122.0 0.0.0.0 255.255.255.0 คุณ 100 0 0 enp1s0
ฉันใช้ dnsutil pod yml defnition เพื่อทดสอบการเชื่อมต่อกับเครื่องโฮสต์
api เวอร์ชัน: v1
ชนิด: ฝัก
ข้อมูลเมตา:
ชื่อ: dnsutils
เนมสเปซ: ค่าเริ่มต้น
ข้อมูลจำเพาะ:
ตู้คอนเทนเนอร์:
- ชื่อ: dnsutils
รูปภาพ: k8s.gcr.io/e2e-test-images/jessie-dnsutils:1.3
สั่งการ:
- นอน
- "3600"
imagePullPolicy: ถ้าไม่ใช่ปัจจุบัน
นโยบายรีสตาร์ท: เสมอ
นี่คือ ip addr และเส้นทาง ip ของฉันแสดงเอาต์พุตจากภายใน dnsutils pod
root@dnsutils:/# ip addr
1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN กลุ่มเริ่มต้น qlen 1,000
ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 ขอบเขตโฮสต์เลย
valid_lft ตลอดไป reserved_lft ตลอดไป
2: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state ค่าเริ่มต้นของกลุ่ม
ลิงค์/อีเธอร์ 7a:50:37:bc:4b:45 brd ff:ff:ff:ff:ff:ff
inet 10.244.1.2/24 brd 10.244.1.255 ขอบเขต global eth0
valid_lft ตลอดไป reserved_lft ตลอดไป
root@dnsutils:/#
root@dnsutils:/# แสดงเส้นทาง ip
ค่าเริ่มต้นผ่าน 10.244.1.1 dev eth0
10.244.0.0/16 ผ่าน 10.244.1.1 dev eth0
10.244.1.0/24 dev eth0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.244.1.2
ฉันกำลังพยายามทำ nslookup และ ping ไปยังเครื่องโฮสต์ของฉัน FQDN และไม่สามารถแก้ไขได้ จากนั้นฉันพยายาม ping ด้วยที่อยู่ IP ตามลำดับซึ่งโหนดหลักแสดงเอาต์พุตเมื่อแพ็คเก็ตกรองและโหนดผู้ปฏิบัติงานสามารถตอบสนองด้วยที่อยู่ IP
root@dnsutils:/# nslookup fedkubemaster
;; หมดเวลาการเชื่อมต่อ; ไม่สามารถเข้าถึงเซิร์ฟเวอร์ได้
root@dnsutils:/# nslookup fedkubenode
;; หมดเวลาการเชื่อมต่อ; ไม่สามารถเข้าถึงเซิร์ฟเวอร์ได้
root@dnsutils:/# ปิง fedkubemaster
ping: โฮสต์ที่ไม่รู้จัก fedkubemaster
root@dnsutils:/# ปิง fedkubenode
ping: โฮสต์ที่ไม่รู้จัก fedkubenode
root@dnsutils:/# ปิง 192.168.122.161
PING 192.168.122.161 (192.168.122.161) 56(84) ไบต์ของข้อมูล
จาก 10.244.1.1 icmp_seq=1 แพ็กเก็ตถูกกรอง
จาก 10.244.1.1 icmp_seq=2 แพ็คเก็ตถูกกรอง
^ซี
--- สถิติ ping 192.168.122.161 ---
ส่งแพ็กเก็ต 2 แพ็กเก็ต ได้รับ 0 ข้อผิดพลาด +2 แพ็กเก็ตสูญหาย 100% เวลา 1013ms
root@dnsutils:/# ปิง 192.168.122.27
PING 192.168.122.27 (192.168.122.27) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 192.168.122.27: icmp_seq=1 ttl=64 เวลา=0.286 ms
64 ไบต์จาก 192.168.122.27: icmp_seq=2 ttl=64 เวลา=0.145 ms
ปัญหาคือฉันต้องการให้เครื่องโฮสต์ของฉัน FQDN สามารถแก้ไขได้จากภายใน Pod แต่ฉันไม่สามารถเข้าใจได้ว่าฉันจะแก้ไขได้อย่างไร ดูเหมือนว่าไม่มีเส้นทางในการแก้ไข FQDN โฮสต์ของฉันจากภายในพ็อดซึ่งสะท้อนอยู่ในบันทึก coredns ด้วย นี่คือข้อผิดพลาด
[admin@fedkubemaster networkutils] $ kubectl บันทึก -f coredns-64897985d-8skq2 -n kube-system
.:53
[INFO] ปลั๊กอิน/โหลดซ้ำ: กำลังรันการกำหนดค่า MD5 = db32ca3650231d74073ff4cf814959a7
CoreDNS-1.8.6
ลินุกซ์/amd64, go1.17.1, 13a9191
[ข้อผิดพลาด] ปลั๊กอิน/ข้อผิดพลาด: 2 2603559064493035223.1593267795798361043 HINFO: อ่าน udp 10.244.0.2:38440->192.168.122.1:53: อ่าน: ไม่มีเส้นทางไปยังโฮสต์
[ข้อผิดพลาด] ปลั๊กอิน/ข้อผิดพลาด: 2 2603559064493035223.1593267795798361043 HINFO: อ่าน udp 10.244.0.2:34275->192.168.122.1:53: อ่าน: ไม่มีเส้นทางไปยังโฮสต์
ฉันกำลังพยายามคิดว่ามีอยู่แล้วฉันสามารถเพิ่มเส้นทางไปยังพ็อดโดยค่าเริ่มต้น แต่ไม่คุ้นเคยกับพวกเขาเพื่อแก้ไข
กรุณาแนะนำ แจ้งให้เราทราบหากต้องการรายละเอียดอื่นๆ
ขอบคุณ
สุธีร์