Score:0

ไม่สามารถเข้าถึงเครื่องโฮสต์จากพ็อดในคลัสเตอร์ kubernetes

ธง cn
sb9

ฉันมีการตั้งค่าคลัสเตอร์ 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: อ่าน: ไม่มีเส้นทางไปยังโฮสต์

ฉันกำลังพยายามคิดว่ามีอยู่แล้วฉันสามารถเพิ่มเส้นทางไปยังพ็อดโดยค่าเริ่มต้น แต่ไม่คุ้นเคยกับพวกเขาเพื่อแก้ไข

กรุณาแนะนำ แจ้งให้เราทราบหากต้องการรายละเอียดอื่นๆ

ขอบคุณ สุธีร์

Score:0
ธง cn
sb9

ฉันสามารถแก้ไขปัญหาของฉันได้โดยการปิดใช้งานบริการไฟร์วอลล์ชั่วคราวทั้งบนมาสเตอร์และผู้ปฏิบัติงาน

[admin@fedkubemaster ~]$ sudo systemctl หยุด firewalld.service
[admin@fedkubemaster ~]$ sudo systemctl ปิดใช้งาน firewalld.service

[admin@fedkubenode ~]$ sudo systemctl หยุด firewalld.service
[admin@fedkubenode ~]$ sudo systemctl ปิดใช้งาน firewalld.service

แต่สิ่งที่ฉันยังต้องเข้าใจว่าทำไมทั้งๆ พอร์ตที่จำเป็น ตามเอกสารประกอบของ kubernetes ถูกเปิดใช้งานว่าเหตุใดจึงทำให้เกิดปัญหานี้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา