ฉันกำลังพยายามเขียนการกำหนดค่าการปรับขนาดอัตโนมัติสำหรับ ingress-nginx ซึ่งใช้งานผ่านแผนภูมิหางเสือ
เป้าหมายของฉันคือ:
- 3 แบบจำลองขั้นต่ำ (เพราะฉันมี 3 โหนดขั้นต่ำ)
- ตรวจสอบให้แน่ใจว่ามีเพียงหนึ่ง nginx ต่อโหนด แต่:
- ยืดหยุ่น ถ้า autoscale บอกว่าเราต้องการ 4 nginx อนุญาตให้โหนดในคลัสเตอร์มี 2
- หากมีการเพิ่มโหนดที่สี่ ตรวจสอบให้แน่ใจว่าได้วางไข่ nginx ใหม่แล้ว
https://github.com/kubernetes/ingress-nginx/blob/main/charts/ingress-nginx/values.yaml#L326
https://github.com/kubernetes/ingress-nginx/blob/main/charts/ingress-nginx/values.yaml#L343
https://github.com/kubernetes/ingress-nginx/blob/main/charts/ingress-nginx/values.yaml#L256
ฉันลองเล่นด้วยการตั้งค่าด้านล่างและการผสมผสานกัน แต่มีบางอย่างผิดปกติเสมอ เช่น ตอนนี้ฉันมี nginx ตัวที่สี่ที่ต้องการวางไข่ด้วยเหตุผลบางอย่าง แต่ทำไม่ได้เพราะกฎต่อต้านความสัมพันธ์
ใครสามารถแบ่งปันแนวคิดบางอย่างเพื่อให้บรรลุเป้าหมายนั้นได้บ้าง
- หนึ่ง nginx ต่อโหนดเสมอ หากมีการสร้างโหนดใหม่ nginx ใหม่จะถูกสร้างขึ้น
- รักษาการปรับขนาดอัตโนมัติ หาก hpa ต้องการวางไข่ nginx ตัวที่สี่บนคลัสเตอร์ 3 โหนด ควรทำได้ฟรี
จำนวนซ้ำ: 3
ความสัมพันธ์กัน:
podAntiAffinity:
จำเป็นระหว่างการจัดกำหนดการถูกละเว้นระหว่างการดำเนินการ:
- ตัวเลือกฉลาก:
การจับคู่นิพจน์:
- รหัส: app.kubernetes.io/name
ผู้ดำเนินการ: ใน
ค่า:
- ทางเข้า nginx
- รหัส: app.kubernetes.io/instance
ผู้ดำเนินการ: ใน
ค่า:
- ทางเข้า nginx
- รหัส: app.kubernetes.io/component
ผู้ดำเนินการ: ใน
ค่า:
- ตัวควบคุม
โทโพโลยีคีย์: "kubernetes.io/hostname"
โทโพโลยีการแพร่กระจายข้อจำกัด:
- ความเอียงสูงสุด: 1
โทโพโลยีคีย์: topology.kubernetes.io/zone
เมื่อไม่พอใจ: กำหนดเวลาอย่างไรก็ตาม
ตัวเลือกป้ายกำกับ:
ป้ายกำกับการแข่งขัน:
app.kubernetes.io/instance: ingress-nginx
การปรับขนาดอัตโนมัติ:
เปิดใช้งาน: จริง
minReplicas: 3
แบบจำลองสูงสุด: 6
targetCPUUtilizationPercentage: 75
targetMemoryUtilizationPercentage: 100