Tôi đang cố gắng viết cấu hình tự động thay đổi tỷ lệ cho ingress-nginx, được triển khai thông qua biểu đồ helm.
mục tiêu của tôi là:
- 3 bản sao tối thiểu (vì tôi có tối thiểu 3 nút)
- đảm bảo chỉ có một nginx trên mỗi nút, nhưng:
- linh hoạt, nếu autoscale nói rằng chúng ta cần 4 nginx, hãy cho phép một nút trong cụm có 2
- nếu một nút thứ tư được thêm vào, đảm bảo một nginx mới được sinh ra
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
Tôi đã thử chơi với các cài đặt bên dưới và sự kết hợp của chúng nhưng luôn có điều gì đó không ổn, ví dụ: ngay bây giờ tôi có một nginx thứ tư muốn sinh ra vì một số lý do và nó không thể do quy tắc antiaffinity.
Bất cứ ai có thể chia sẻ một số ý tưởng làm thế nào để đạt được điều đó?
- luôn luôn có một nginx trên mỗi nút, nếu một nút mới được tạo, một nginx mới sẽ được tạo
- duy trì tính năng tự động thay đổi quy mô, nếu hpa muốn sinh ra nginx thứ tư trên cụm 3 nút thì bạn có thể tự do thực hiện việc đó
bản saoCount: 3
sự giống nhau:
podAntiAffinity:
bắt buộcDuringDuringSchedulingIgnoredDuringExecution:
- bộ chọn nhãn:
matchExpressions:
- khóa: app.kubernetes.io/name
toán tử: Trong
giá trị:
- xâm nhập-nginx
- khóa: app.kubernetes.io/instance
toán tử: Trong
giá trị:
- xâm nhập-nginx
- khóa: app.kubernetes.io/component
toán tử: Trong
giá trị:
- bộ điều khiển
khóa cấu trúc liên kết: "kubernetes.io/hostname"
topoSpreadConstraints:
- Độ nghiêng tối đa: 1
khóa cấu trúc liên kết: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
nhãnSelector:
trận đấuNhãn:
app.kubernetes.io/instance: ingress-nginx
tự động mở rộng:
đã bật: đúng
tối thiểuBản sao: 3
Bản sao tối đa: 6
targetCPUUtilizationPercentage: 75
targetMemoryUtilizationPercentage: 100