AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1077480
Accepted
John Smith
John Smith
Asked: 2021-09-14 15:22:22 +0800 CST2021-09-14 15:22:22 +0800 CST 2021-09-14 15:22:22 +0800 CST

确保每个 kubernetes 节点至少有一个 ingress-nginx

  • 772

我正在尝试为通过 helm chart 部署的 ingress-nginx 编写自动缩放配置。

我的目标是:

  • 最少 3 个副本(因为我最少有 3 个节点)
  • 确保每个节点只有一个 nginx,但是:
  • 要有弹性,如果自动缩放说我们需要 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 想在 3 节点集群上生成第四个 nginx,它应该可以自由地这样做
      replicaCount: 3
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: app.kubernetes.io/name
                operator: In
                values:
                - ingress-nginx
              - key: app.kubernetes.io/instance
                operator: In
                values:
                - ingress-nginx
              - key: app.kubernetes.io/component
                operator: In
                values:
                - controller
            topologyKey: "kubernetes.io/hostname"

      topologySpreadConstraints:
        - maxSkew: 1
          topologyKey: topology.kubernetes.io/zone
          whenUnsatisfiable: ScheduleAnyway
          labelSelector:
            matchLabels:
              app.kubernetes.io/instance: ingress-nginx

      autoscaling:
        enabled: true
        minReplicas: 3
        maxReplicas: 6
        targetCPUUtilizationPercentage: 75
        targetMemoryUtilizationPercentage: 100
nginx kubernetes nginx-ingress
  • 1 1 个回答
  • 334 Views

1 个回答

  • Voted
  1. Best Answer
    mario
    2021-09-17T04:13:43+08:002021-09-17T04:13:43+08:00

    如果每个节点只需要一个 nginx 实例,将其部署为DaemonSet不是更容易吗?

    正如您在官方文档中所读到的:

    DaemonSet确保所有(或部分)节点运行 Pod 的副本。随着节点被添加到集群中,Pod 也被添加到它们中。当从集群中删除节点时,这些 Pod 会被垃圾回收。删除 DaemonSet 将清理它创建的 Pod。

    在您的用例中,这似乎是正确的解决方案。

    正如您在评论中正确建议的那样,nginx-ingress 官方 helm 图表既可以部署为 a 也可以部署Deployment为DaemonSet. 可以通过调整其values.yaml文件来完成。

    • 1

相关问题

  • Gzip 与反向代理缓存

  • nginx 作为代理的行为

  • Nginx 学习资源 [关闭]

  • 提供 70,000 个静态文件 (jpg) 的最佳方式?

  • 在 Apache、LightTPD 和 Nginx Web 服务器上提供 PHP 5.x 应用程序的现状?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve