Score:2

ตรวจสอบให้แน่ใจอย่างน้อยหนึ่ง ingress-nginx ต่อโหนด kubernetes

ธง es

ฉันกำลังพยายามเขียนการกำหนดค่าการปรับขนาดอัตโนมัติสำหรับ 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
mario avatar
cm flag
หากคุณต้องการเพียงหนึ่งอินสแตนซ์ nginx ต่อโหนด การปรับใช้เป็น [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) จะง่ายกว่าไหม
John Smith avatar
es flag
เป็นไปได้ไหมที่จะปรับใช้เป็น daemonset ผ่านผังหางเสือ?
John Smith avatar
es flag
เพิ่งค้นพบ https://github.com/kubernetes/ingress-nginx/blob/main/charts/ingress-nginx/values.yaml#L174
John Smith avatar
es flag
ขอบคุณสำหรับคำใบ้ ดูเหมือนว่าจะได้ผล หากคุณต้องการตอบกลับอย่างเป็นทางการ ฉันจะยอมรับ
Score:1
ธง cm

หากคุณต้องการอินสแตนซ์ nginx เพียงหนึ่งรายการต่อโหนด การปรับใช้เป็น DaemonSet ?

ตามที่คุณอ่านได้ในเอกสารอย่างเป็นทางการ:

DaemonSet ตรวจสอบให้แน่ใจว่าโหนดทั้งหมด (หรือบางส่วน) เรียกใช้สำเนาของ Pod เนื่องจาก โหนดถูกเพิ่มไปยังคลัสเตอร์ พ็อดจะถูกเพิ่มเข้าไป เป็นโหนด ลบออกจากคลัสเตอร์ พ็อดเหล่านั้นจะถูกรวบรวมเป็นขยะ กำลังลบ DaemonSet จะล้าง Pods ที่สร้างขึ้น

และนี่ดูเหมือนจะเป็นทางออกที่ถูกต้องในกรณีการใช้งานของคุณ

ตามที่คุณแนะนำอย่างถูกต้องในความคิดเห็นของคุณ แผนภูมิหางเสืออย่างเป็นทางการของ nginx-ingress ปรับใช้ได้ทั้งแบบ การปรับใช้ หรือเป็นก DaemonSet. ก็สามารถทำได้ โดยการปรับของมัน ค่า. yaml ไฟล์.

โพสต์คำตอบ

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