kubernetes - 指定每个节点的确切 pod 数量,然后执行映像版本升级
问题描述
我在 k8s 集群中有 3 个节点,我需要在每个节点中安排 2 个 pod,所以我最终会拥有 3 个节点,每个节点有 2 个 pod(6 个副本)。
我发现 k8s 具有Pod Affinity/Anti-Affinity功能,这似乎是正确的做法。
我的问题是:我想每个节点运行 2 个 pod,但我经常kubectl apply
用来升级我的 docker 映像版本,在这种情况下,k8s 应该能够在终止旧映像之前在每个节点中安排 2 个新映像 - 更新的如果我使用 Pod Affinity/Anti-Affinity 来安排每个节点仅允许 2 个 pod 的图像?
如何在我的部署配置中执行此操作?我无法让它工作。
解决方案
我相信这是 kubelet 设置的一部分,因此您必须查看 kubelet 的--max-pods
标志,具体取决于您的集群配置。以下链接可能有用:
https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#kubelet
和
https://kubernetes.io/docs/tasks/administer-cluster/reconfigure-kubelet/
推荐阅读
- python - python中的内部函数和pylint的分支计数
- javascript - jQuery根据选择框填充文本框值
- python - 在后台运行 python 中的烧瓶实例
- java - getClass() 上的 getResource("") 在 JDK 11 中返回 null,该 JDK 8 正在运行
- arrays - 如何检查numpy数组中的元素字符串是否可以更改为整数,如果可以,请更改它?Python
- javascript - 使用 if 使价值动态化 - Vue
- node.js - 未捕获的 ReferenceError:缓冲区未在 React 中定义
- react-native - 为什么在 iOS 模拟器上为 react-native 运行应用程序后不显示 json 数据?
- linux - PowerOn 在 openbmc 中不使用 gpio 启用
- java - 如何在java中创建基于文本冒险的战斗方法?