ระบบปฏิบัติการ: อูบุนตู 18.04.6
ประเภทไฟร์วอลล์: IPtables UFW ถูกปิดใช้งาน
ฉันมีคลัสเตอร์ Kubernetes ที่มี 3 โหนดที่ให้บริการ controlplane และบริการ etcd ชื่อ cp01, cp02 และ cp03
ฉันเห็นว่า ฯลฯ
การรับส่งข้อมูลจากโหนด Controlplane/etcd แต่ละโหนดทำงานได้ดี ดูเหมือนว่าแอปพลิเคชัน etcd จะใช้งานได้ แม้ว่าฉันจะสังเกตเห็นว่าฉันไม่สามารถทำบางสิ่งเช่น etcdctl เลือก
ผู้นำคนใหม่
ฉันสังเกตเห็นว่าบางครั้งการรับส่งข้อมูลกลับถูกบล็อก นี่คือตัวอย่างข้อความบันทึกที่แสดงบล็อก:
23 พฤษภาคม 09:34:55 เคอร์เนล cp02: [1245818.175864] DROP-INPUT: IN=eth2 OUT= MAC=00:50:AA:BB:CC:DD:00:50:AA:BB:CC:11:08: 00 SRC=192.168.101.188 DST=192.168.101.189 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=2380 DPT=36532 WINDOW=0 RES=0x00 RST URGP=0
ฉันไม่เข้าใจว่าทำไมแพ็คเก็ตเหล่านี้ถึงถูกทิ้ง IPtables มีกฎที่จะยอมรับทั้งหมด ที่เกี่ยวข้องจัดตั้งขึ้น
การจราจร. ดูเหมือนว่าในบางครั้งจะไม่เกิดขึ้นและแพ็กเก็ตก็ลดลงจริง ๆ
นี่คือส่วนที่เกี่ยวข้องของ IPtables หมายเหตุต่อไปนี้:
- Kubernetes แทรกบรรทัดที่ 1-3
- บรรทัดที่ 4-7 เป็นกฎมาตรฐาน (ฉันเชื่อว่าเป็นเช่นนั้น)
- บรรทัดที่ 22 และ 23 จะบันทึก จากนั้นทิ้งแพ็กเก็ตทั้งหมดที่ไม่ตรงกับกฎที่มีอยู่
- บรรทัดที่ 7 ยอมรับทราฟฟิกที่เกี่ยวข้องและสร้างขึ้นทั้งหมด นั่นคือ ถ้าทราฟฟิกออกไปผ่านโฮสต์นี้ จะสามารถกลับมายังโฮสต์นี้ได้เนื่องจากทำเครื่องหมายว่าเป็นทราฟฟิกที่เกี่ยวข้องหรือสร้างแล้ว อย่างไรก็ตาม ข้อความบันทึกด้านบนแสดงว่าสิ่งนี้ไม่ได้เกิดขึ้น
cp03:~ # iptables -t filter -L INPUT --line-numbers -v
Chain INPUT (นโยบายยอมรับ 0 แพ็กเก็ต, 0 ไบต์)
num pkts bytes target prot เลือกใช้ปลายทางต้นทาง
1 2763 407K cali-INPUT ทั้งหมด -- ใดๆ ทุกที่ ทุกที่ /* cali:Cz_abcdefghijklm */
2 2763 407K KUBE-FIREWALL ทั้งหมด - ทุกที่ ทุกแห่ง
3 32 6559 KUBE-EXTERNAL-SERVICES ทั้งหมด -- ทุกที่ ทุกแห่ง ctstate NEW /* kubernetes พอร์ทัลบริการที่มองเห็นได้จากภายนอก */
4 1 84 ยอมรับ icmp -- ทุกที่ ทุกแห่ง /* 000 ยอมรับ icmp ทั้งหมด */
5 773 112K ยอมรับทั้งหมด -- ดูได้ทุกที่ทุกที่ /* 001 ยอมรับทั้งหมดเพื่อส่วนต่อประสาน */
6 0 0 ปฏิเสธทั้งหมด -- !lo ได้ทุกที่ localhost/8 /* 002 ปฏิเสธการรับส่งข้อมูลในเครื่องที่ไม่ได้อยู่บนอินเทอร์เฟซแบบย้อนกลับ */ ปฏิเสธด้วย icmp-port-unreachable
7 พ.ศ. 2501 288K ยอมรับทั้งหมด -- ทุกที่ ทุกรัฐ ที่เกี่ยวข้อง จัดตั้งขึ้น /* 003 ยอมรับกฎที่จัดตั้งขึ้นที่เกี่ยวข้อง */
8 0 0 ยอมรับ tcp -- admin.example.org ใดๆ ได้ทุกที่ หลายพอร์ต dports ssh /* 101 อนุญาต SSH จากเซิร์ฟเวอร์การจัดการจาก 192.168.100.16 */
9 0 0 ยอมรับ udp -- cp01.example.org ใดๆ ได้ทุกที่ หลายพอร์ต dports 8472 /* 101 Canal/Flannel VXLAN overlay networking จาก 192.168.101.188 */
10 0 0 ยอมรับ udp -- cp02.example.org ใดๆ ได้ทุกที่ หลายพอร์ต dports 8472 /* 101 Canal/Flannel VXLAN overlay networking จาก 192.168.101.189 */
11 0 0 ยอมรับ udp -- cp03.example.org ใดๆ ได้ทุกที่ หลายพอร์ต dports 8472 /* 101 Canal/Flannel VXLAN overlay networking จาก 192.168.101.190 */
12 0 0 ยอมรับ tcp -- cp01.example.org ใดๆ ได้ทุกที่ หลายพอร์ต dports 6443 /* 101 Kubernetes apiserver จาก 192.168.101.188 */
13 0 0 ยอมรับ tcp -- cp02.example.org ใดๆ ได้ทุกที่ หลายพอร์ต dports 6443 /* 101 Kubernetes apiserver จาก 192.168.101.189 */
14 0 0 ยอมรับ tcp -- cp03.example.org ใดๆ ได้ทุกที่ หลายพอร์ต dports 6443 /* 101 Kubernetes apiserver จาก 192.168.101.190 */
15 4 220 ยอมรับ tcp -- cp01.example.org ใดๆ ได้ทุกที่ หลายพอร์ต dports 2379:2380 /* 101 etcd คำขอไคลเอ็นต์จาก 192.168.101.188 */
16 4 220 ยอมรับ tcp -- cp02.example.org ใดๆ ได้ทุกที่ หลายพอร์ต dports 2379:2380 /* 101 etcd คำขอไคลเอ็นต์จาก 192.168.101.189 */
17 0 0 ยอมรับ tcp -- ใดๆ ก็ตาม cp03.example.org ได้ทุกที่ หลายพอร์ต dports 2379:2380 /* 101 etcd คำขอไคลเอ็นต์จาก 192.168.101.190 */
18 0 0 ยอมรับ tcp - cp01.example.org ใด ๆ ได้ทุกที่ หลายพอร์ต dports 10250 /* 101 kubelet API จาก 192.168.101.188 */
19 0 0 ยอมรับ tcp - cp02.example.org ใด ๆ ได้ทุกที่ หลายพอร์ต dports 10250 /* 101 kubelet API จาก 192.168.101.189 */
20 0 0 ยอมรับ tcp - cp03.example.org ใด ๆ ได้ทุกที่ หลายพอร์ต dports 10250 /* 101 kubelet API จาก 192.168.101.190 */
21 1 40 LOG all -- ใดๆ ที่ไหนก็ได้ ขีดจำกัด: เฉลี่ย 3/นาที 5 /* 998 Log all drops */ คำนำหน้าคำเตือนระดับ LOG "DROP-INPUT: "
22 1 40 DROP ทั้งหมด -- ทุกที่ ทุกแห่ง /* 999 ยกเลิกคำขออื่นๆ ทั้งหมด */