Điểm:2

Đảm bảo ít nhất một ingress-nginx trên mỗi nút kubernetes

lá cờ es

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
mario avatar
lá cờ cm
Nếu bạn chỉ cần một phiên bản nginx cho mỗi nút, thì việc triển khai nó dưới dạng [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) có dễ dàng hơn không?
John Smith avatar
lá cờ es
có thể triển khai dưới dạng daemonset thông qua biểu đồ helm không?
John Smith avatar
lá cờ es
mới phát hiện ra https://github.com/kubernetes/ingress-nginx/blob/main/charts/ingress-nginx/values.yaml#L174
John Smith avatar
lá cờ es
cảm ơn vì gợi ý, có vẻ hiệu quả, nếu bạn muốn đưa ra câu trả lời chính thức, tôi sẽ chấp nhận
Điểm:1
lá cờ cm

Nếu bạn chỉ cần một phiên bản nginx cho mỗi nút, thì việc triển khai nó có dễ dàng hơn không DaemonSet ?

Như bạn có thể đọc trong các tài liệu chính thức:

Một DaemonSet đảm bảo rằng tất cả (hoặc một số) Nút chạy một bản sao của Pod. Như các nút được thêm vào cụm, các Nhóm được thêm vào chúng. Vì các nút là bị xóa khỏi cụm, các Pod đó được thu gom rác. xóa một DaemonSet sẽ dọn sạch các Pod mà nó đã tạo.

Và đây có vẻ là giải pháp phù hợp trong trường hợp sử dụng của bạn.

Như bạn đã đề xuất đúng trong nhận xét của mình, biểu đồ helm chính thức của nginx-ingress có thể được triển khai như một triển khai hoặc như một DaemonSet. nó có thể được thực hiện bằng cách điều chỉnh nó giá trị.yaml tập tin.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.