ฉันติดตั้ง kubernetes แล้ว v1.23.0
โดยมี Arch Linux เป็นการกระจาย คลัสเตอร์ประกอบด้วยมาสเตอร์และโหนด ระบบบูธเป็น VM ที่ใช้ KVM
เมื่อพ็อดต้องการสร้างการสืบค้น DNS พ็อดจะได้รับการหมดเวลาเมื่อบริการส่งต่อคำขอไปยังอินสแตนซ์พ็อดของ coredns ซึ่งทำงานบนโหนด kubernetes อื่น
ดังนั้นฉันจึงสงสัยว่าผู้ให้บริการเครือข่ายทำงานไม่ถูกต้องหรือไม่ได้ตั้งค่าบางอย่าง (โมดูลเคอร์เนล, sysctl, ect) เนื่องจากเมื่อคำขอถูกส่งต่อไปยังอินสแตนซ์ coredns pod ที่รันอยู่ในเครื่อง ไคลเอนต์จะได้รับการตอบกลับ นี่คือขั้นตอนการดีบักของฉัน:
- ก่อนที่ฉันจะเริ่มดีบัก ฉันเพิ่มระดับบันทึกของ coredns โดยการเพิ่ม
บันทึก
ไปยัง configmap ของ coredns
# kubectl รับ -n configmaps ระบบ kube coredns -o yaml
api เวอร์ชัน: v1
ข้อมูล:
คอร์ไฟล์: |
.:53 {
บันทึก
ข้อผิดพลาด
สุขภาพ {
ลาเมดดัค 5s
}
พร้อม
kubernetes cluster.local in-addr.arpa ip6.arpa {
พ็อดไม่ปลอดภัย
Fallthrough ใน addr.arpa ip6.arpa
ttl 30
}
โพรมีธีอุส :9153
ซึ่งไปข้างหน้า . /etc/resolv.conf {
max_concurrent 1,000
}
แคช 30
ห่วง
โหลดใหม่
โหลดบาลานซ์
}
- ฉันปรับใช้เป็นการดีบักสภาพแวดล้อมคอนเทนเนอร์เครือข่ายของฉันด้วยเครื่องมือเครือข่ายเช่น
ขุด
, nslookup
และอื่น ๆ เพื่อทดสอบอินสแตนซ์ coredns ต่างๆ
kubectl ใช้ -f https://raw.githubusercontent.com/volker-raschek/network-tools/master/network-tools.yml
- มีพ็อดและบริการต่อไปนี้ของ coredns:
kubectl รับพ็อด บริการ -n kube-system -l k8s-app=kube-dns -o กว้าง
ชื่อ พร้อม สถานะ เริ่มใหม่ อายุ IP โหนด โหนดที่ได้รับการเสนอชื่อ เกตส์ความพร้อม
pod/coredns-64897985d-cgxmv 1/1 กำลังทำงาน 0 24 ชม. 10.85.0.4 archlinux-x86-64-000 <ไม่มี> <ไม่มี>
pod/coredns-64897985d-l9ftl 1/1 กำลังทำงาน 0 24 ชม. 10.85.0.3 archlinux-x86-64-001 <ไม่มี> <ไม่มี>
ประเภทชื่อ CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
บริการ/kube-dns ClusterIP 10.96.0.10 <ไม่มี> 53/UDP,53/TCP,9153/TCP 24 ชม. k8s-app=kube-dns
- ดำเนินการเชลล์ในพ็อดเครือข่ายของฉันและพยายามค้นหาที่อยู่ IP ของ
กูเกิล.คอม
ผ่านทาง แกนกลาง
บริการ. วิธีการจดจำคำสั่งนั้นใช้เวลาต่างกัน ขออภัย ฉันไม่สามารถทำซ้ำข้อผิดพลาดการหมดเวลาผ่านบริการ:
# kubectl exec เครื่องมือเครือข่าย -- เวลาขุด A google.com @ 10.96.0.10 +short
142.250.185.238
จริง 0m 5.02s
ผู้ใช้ 0m 0.02s
ระบบ 0m 0.00s
# kubectl exec เครื่องมือเครือข่าย -- เวลาขุด A google.com @ 10.96.0.10 +short
142.250.185.238
จริง 0m 0.03s
ผู้ใช้ 0m 0.01s
ระบบ 0m 0.00s
# kubectl exec เครื่องมือเครือข่าย -- เวลาขุด A google.com @ 10.96.0.10 +short
142.250.185.238
จริง 0m 10.03s
ผู้ใช้ 0m 0.01s
ระบบ 0m 0.01s
- ตอนนี้ฉันจำกัดการสืบค้นไว้ที่คอร์คอร์นส์พ็อดต่างๆ สังเกตว่าฝัก
coredns-64897985d-cgxmv
ด้วยไอพี 10.85.0.4
กำลังทำงานบนโหนดอื่น
พ็อด/coredns-64897985d-l9ftl / 10.85.0.3
kubectl exec เครื่องมือเครือข่าย -- เวลาขุด A google.com @ 10.85.0.3 +short
142.251.36.206
จริง 0m 0.09s
ผู้ใช้ 0m 0.00s
ระบบ 0m 0.01s
พ็อด/coredns-64897985d-cgxmv / 10.85.0.4
นี่คือข้อผิดพลาดการหมดเวลาเมื่อใช้อย่างชัดเจน แกนกลาง
พ็อดของโหนดอื่น
# kubectl exec เครื่องมือเครือข่าย -- เวลาขุด A google.com @ 10.85.0.4 +short
; <<>> DiG 9.16.20 <<>> A google.com @10.85.0.4 +short
;; ตัวเลือกส่วนกลาง: +cmd
;; หมดเวลาการเชื่อมต่อ; ไม่สามารถเข้าถึงเซิร์ฟเวอร์ได้
คำสั่งออกโดยสถานะไม่เป็นศูนย์ 9
จริง 0m 15.02s
ผู้ใช้ 0m 0.02s
ระบบ 0m 0.00s
คำสั่งสิ้นสุดด้วยรหัสทางออก 9
- บันทึกต่อไปนี้เขียนโดย
แกนกลาง
ฝัก:
พ็อด/coredns-64897985d-l9ftl / 10.85.0.3
# บันทึก kubectl -n ระบบ kube coredns-64897985d-l9ftl
.:53
[INFO] ปลั๊กอิน/โหลดซ้ำ: กำลังรันการกำหนดค่า MD5 = db32ca3650231d74073ff4cf814959a7
CoreDNS-1.8.6
ลินุกซ์/amd64, go1.17.1, 13a9191
[INFO] กำลังโหลดซ้ำ
[INFO] ปลั๊กอิน/สุขภาพ: เข้าสู่โหมดลาเมดัคเป็นเวลา 5 วินาที
[INFO] ปลั๊กอิน/โหลดซ้ำ: กำลังรันการกำหนดค่า MD5 = 3d3f6363f05ccd60e0f885f0eca6c5ff
[INFO] การโหลดซ้ำเสร็จสมบูรณ์
[INFO] 127.0.0.1:54962 - 9983 "HINFO IN 4683476401105705616.5032820535498752139.udp 57 false 512" NXDOMAIN qr,rd,ra 132 0.058383302s
[INFO] 10.85.0.1:24999 - 26748 "A IN google.com. udp 51 false 4096" NOERROR qr,rd,ra 1549 0.070006969s
[INFO] 10.85.0.1:6142 - 9467 "A IN google.com. udp 51 false 4096" NOERROR qr,aa,rd,ra 1549 0.000959536s
[INFO] 10.85.0.1:2544 - 20425 "A IN google.com. udp 51 false 4096" NOERROR qr,aa,rd,ra 1549 0.00065977s
[INFO] 10.85.0.1:26782 - 372 "A IN google.com. udp 51 false 4096" NOERROR qr,aa,rd,ra 1549 0.001292768s
[INFO] 10.85.0.1:62687 - 27302 "ใน google.com.udp 51 เท็จ 4096"
...
พ็อด/coredns-64897985d-cgxmv / 10.85.0.4
# บันทึก kubectl -n ระบบ kube coredns-64897985d-cgxmv
.:53
[INFO] ปลั๊กอิน/โหลดซ้ำ: กำลังรันการกำหนดค่า MD5 = db32ca3650231d74073ff4cf814959a7
CoreDNS-1.8.6
ลินุกซ์/amd64, go1.17.1, 13a9191
[INFO] กำลังโหลดซ้ำ
[INFO] ปลั๊กอิน/สุขภาพ: เข้าสู่โหมดลาเมดัคเป็นเวลา 5 วินาที
[INFO] ปลั๊กอิน/โหลดซ้ำ: กำลังรันการกำหนดค่า MD5 = 3d3f6363f05ccd60e0f885f0eca6c5ff
[INFO] การโหลดซ้ำเสร็จสมบูรณ์
เพื่อให้ปัญหาแคบลง ฉันติดตั้งคลัสเตอร์ใหม่ผ่าน ansible และติดตั้งผ้าดิบแทนผ้าสักหลาดโดยใช้คำสั่งด้านล่าง มีปัญหาเดียวกันอยู่ที่นั่น
$ หางเสือติดตั้งโครงการผ้าดิบ calico/tigera-operator --version v3.21.3
ฉันใช้ คู่มือการติดตั้ง kubeadm เพื่อเริ่มต้นคลัสเตอร์ ฉันดำเนินการต่อไปนี้ kubeadmin เริ่มต้น
คำสั่งเพื่อเริ่มต้นคลัสเตอร์:
$ kubeadm เริ่มต้น \
--apiserver-advertise-address=192.168.179.101 \
--apiserver-cert-extra-sans=api.example.com \
--control-plane-endpoint=192.168.179.100 \
--cri-socket=unix://var/run/crio/crio.sock \
--pod-network-cidr=10.244.0.0/16 \
--อัปโหลด-ใบรับรอง
โมดูลเคอร์เนล br_netfilter
และมีการกำหนดคุณสมบัติ sysctl แต่ปัญหายังคงมีอยู่ ฉันอยู่ที่จุดสิ้นสุดของแนวทางการแก้ปัญหาของฉันและต้องการคำแนะนำจากผู้เชี่ยวชาญที่นี่ ด้านล่างนี้คือรายการโมดูลเคอร์เนลของฉัน การตั้งค่า sysctl และข้อมูลอื่นๆ
ฉันหวังว่าจะมีคนช่วยฉันได้
ข้อมูลเคอร์เนล
$ uname -a
Linux archlinux-x86-64-000 5.10.90-1-lts #1 SMP วันพุธที่ 5 มกราคม 2022 13:07:40 +0000 x86_64 GNU/Linux
โมดูลเคอร์เนล
$ lsmod | เรียงลำดับ
ac97_bus 16384 1 snd_soc_core
aesni_intel 372736 0
agpgart 53248 4 intel_agp,intel_gtt,ttm,drm
atkbd 36864 0
bpf_preload 16384 0
บริดจ์ 274432 1 br_netfilter
br_netfilter 32768 0
cec 61440 1 drm_kms_helper
cfg80211 983040 0
crc16 16384 1 ต่อ 4
crc32c_generic 16384 0
crc32c_intel 24576 3
crc32_pclmul 16384 0
crct10dif_pclmul 16384 1
cryptd 24576 2 crypto_simd,ghash_clmulni_intel
crypto_simd 16384 1 aesni_intel
drm 577536 5 drm_kms_helper,qxl,drm_ttm_helper,ttm
drm_kms_helper 278528 3 qxl
drm_ttm_helper 16384 1 qxl
ต่อ4 933888 1
ล้มเหลว 16384 1 net_failover
ไขมัน 86016 1 vไขมัน
fb_sys_fops 16384 1 drm_kms_helper
ฟิวส์ 167936 1
ghash_clmulni_intel 16384 0
glue_helper 16384 1 aesni_intel
i2c_i801 36864 0
i2c_smbus 20480 1 i2c_i801
i8042 36864 0
intel_agp 24576 0
intel_gtt 24576 1 intel_agp
intel_pmc_bxt 16384 1 iTCO_wdt
intel_rapl_common 28672 1 intel_rapl_msr
intel_rapl_msr 20480 0
ip6_udp_tunnel 16384 1 vxlan
ip_set 57344 0
ip_tables 32768 0
ipt_REJECT 16384 0
ip_vs 184320 6 ip_vs_rr,ip_vs_sh,ip_vs_wrr
ip_vs_rr 16384 0
ip_vs_sh 16384 0
ip_vs_wrr 16384 0
irqbypass 16384 1 kvm
iTCO_vendor_support 16384 1 iTCO_wdt
iTCO_wdt 16384 0
jbd2 151552 1 ต่อ 4
จอยเดฟ 28672 0
kvm 933888 1 kvm_intel
kvm_intel 331776 0
ledtrig_audio 16384 1 snd_hda_codec_generic
libcrc32c 16384 4 nf_conntrack,nf_nat,nf_tables,ip_vs
libps2 20480 2 atkbd,psmouse
llc 16384 2 สะพาน,stp
lpc_ich 28672 0
mac_hid 16384 0
mbcache 16384 1 ต่อ 4
ขนาดโมดูลที่ใช้โดย
เมาส์เดฟ 24576 0
net_failover 24576 1 virtio_net
nf_conntrack 172032 6 xt_conntrack,nf_nat,xt_nat,nf_conntrack_netlink,xt_MASQUERADE,ip_vs
nf_conntrack_netlink 57344 0
nf_defrag_ipv4 16384 1 nf_conntrack
nf_defrag_ipv6 24576 2 nf_conntrack,ip_vs
nf_nat 57344 3 xt_nat,nft_chain_nat,xt_MASQUERADE
nfnetlink 20480 4 nft_compat,nf_conntrack_netlink,nf_tables,ip_set
nf_reject_ipv4 16384 1 ipt_REJECT
nf_tables 249856 183 nft_compat,nft_counter,nft_chain_nat
nft_chain_nat 16384 7
nft_compat 20480 122
nft_counter 16384 84
nls_iso8859_1 16384 0
ซ้อนทับ 147456 18
pcsspkr 16384 0
psmouse 184320 0
qemu_fw_cfg 20480 0
qxl 73728 0
แร็ป 16384 0
rfkill 28672 2 cfg80211
rng_core 16384 1 virtio_rng
serio 28672 6 serio_raw,atkbd,psmouse,i8042
serio_raw 20480 0
snd 114688 8 snd_hda_codec_generic,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_compress,snd_soc_core,snd_pcm
snd_compress 32768 1 snd_soc_core
snd_hda_codec 172032 2 snd_hda_codec_generic,snd_hda_intel
snd_hda_codec_generic 98304 1
snd_hda_core 110592 3 snd_hda_codec_generic,snd_hda_intel,snd_hda_codec
snd_hda_intel 57344 0
snd_hwdep 16384 1 snd_hda_codec
snd_intel_dspcfg 28672 1 snd_hda_intel
snd_pcm 147456 7 snd_hda_intel,snd_hda_codec,soundwire_intel,snd_compress,snd_soc_core,snd_hda_core,snd_pcm_dmaengine
snd_pcm_dmaengine 16384 1 snd_soc_core
snd_soc_core 327680 1 soundwire_intel
snd_timer 49152 1 snd_pcm
ซาวด์คอร์ 16384 1 snd
soundwire_bus 90112 3 soundwire_intel,soundwire_generic_allocation,soundwire_cadence
soundwire_cadence 36864 1 soundwire_intel
soundwire_generic_allocation 16384 1 soundwire_intel
soundwire_intel 45056 1 snd_intel_dspcfg
stp 16384 1 สะพาน
ระยะส่องกล้อง 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
ttm 114688 2 qxl,drm_ttm_helper
udp_tunnel 20480 1 vxlan
usbhid 65536 0
วธ 32768 0
วีแฟต 24576 0
virtio_balloon 24576 0
virtio_blk 20480 2
virtio_console 40960 0
virtio_net 61440 0
virtio_pci 28672 0
virtio_rng 16384 0
วีเอ็กซ์แลน 77824 0
xhci_pci 20480 0
xhci_pci_renesas 20480 1 xhci_pci
x_tables 53248 11 xt_conntrack,xt_statistic,nft_compat,xt_tcpudp,xt_addrtype,xt_nat,xt_comment,ipt_REJECT,ip_tables,xt_MASQUERADE,xt_mark
xt_addrtype 16384 2
xt_comment 16384 64
xt_conntrack 16384 13
xt_mark 16384 12
xt_MASQUERADE 20480 6
xt_nat 16384 7
xt_statistic 16384 3
xt_tcpudp 20480 15
ระบบ
เปิดคุณสมบัติ sysctl ถังขยะ. เกินจำนวนอักขระสูงสุดสำหรับความผิดพลาดของเซิร์ฟเวอร์