ฉันมีการตั้งค่าคลัสเตอร์ K8 แบบเปลือยเปล่าโดยใช้ Kubespray (Calico เป็น CNI) และเปิดใช้งานสแต็กคู่ ฉันเห็นว่าพ็อดทั้งหมดที่ได้รับการปรับใช้ได้รับทั้งที่อยู่ IPv4 และ IPv6 แต่เมื่อฉันพยายามติดตั้งตัวควบคุม nginx-ingress โดยใช้แผนภูมิหางเสือ nginx บริการจะเปิดใช้งานและกำหนด IPv4 เท่านั้น ฉันสามารถดูข้อมูลจำเพาะต่อไปนี้ได้เมื่อฉันใช้บริการ kubectl:
kubectl รับ svc ingress-nginx-controller -n ingress-nginx -o yaml
ข้อมูลจำเพาะ:
คลัสเตอร์ IP: 10.233.34.249
IP ของคลัสเตอร์:
- 10.233.34.249
externalTrafficPolicy: คลัสเตอร์
ครอบครัว IP:
- IPv4
ipFamilyPolicy: SingleStack
ฉันได้ลองเพิ่มข้อมูลจำเพาะต่อไปนี้ในไฟล์ value.yaml ด้วยตนเองสำหรับแผนภูมิหางเสือตัวควบคุมขาเข้า:
บริการ:
เปิดใช้งาน: จริง
คำอธิบายประกอบ: {}
ป้ายกำกับ: {}
# คลัสเตอร์ IP: ""
## รายการที่อยู่ IP ที่ให้บริการคอนโทรลเลอร์
## อ้างอิง: https://kubernetes.io/docs/user-guide/services/#external-ips
##
ipFamilyPolicy: PreferDualStack
ครอบครัว IP:
- IPv6
- IPv4
และใช้มันโดยใช้สิ่งต่อไปนี้ แต่ไม่มีประโยชน์: หางเสือติดตั้ง ingress-nginx ingress-nginx/ingress-nginx -f values.yaml -n ingress-nginx
ไม่ใช่แค่ปัญหาขาเข้าเท่านั้น โดยทั่วไปแล้วแอปพลิเคชันใด ๆ ที่ฉันพยายามปรับใช้โดยใช้แผนภูมิหางเสือมี Single Stack และ IPv4 เป็นข้อกำหนดสำหรับบริการซึ่งทำให้ฉันคิดว่าฉันขาดการกำหนดค่าด้วยตนเองบางอย่างที่จำเป็นในไฟล์ค่าสำหรับแผนภูมิเหล่านี้
นอกจากนี้ เมื่อฉันพยายามสร้างบริการพื้นฐานและปรับใช้โดยใช้ไฟล์บริการโดยตรงกับ ipFamilyPolicy: PreferDualStack และ ipFamilies: IPv6, IPv4 จากนั้นบริการก็ปรับใช้สำเร็จและได้รับทั้งที่อยู่ v6 และ v4 ดังนั้นฉันจึงรู้จากมุมมองของคลัสเตอร์ว่าการกำหนดค่าของฉันนั้นใช้ได้ และพารามิเตอร์บางอย่างขาดหายไปพร้อมกับแผนภูมิที่กำลังปรับใช้