sách gpt4 ai đã đi

kubernetes - 避免 kubernetes 调度程序在 kubernetes 集群的单个节点中运行所有 pod

In lại 作者:行者123 更新时间:2023-12-04 03:19:41 30 4
mua khóa gpt4 Nike

我有一个具有 4 个节点和一个主节点的 Kubernetes 集群。我正在尝试在所有节点中运行 5 个 nginx pod。目前,调度程序有时在一台机器上运行所有 pod,有时在不同的机器上运行。

如果我的节点出现故障并且我的所有 pod 都在同一个节点上运行,会发生什么?我们需要避免这种情况。

如何强制调度程序以循环方式在节点上运行 pod,以便如果任何节点出现故障,那么至少一个节点应该让 NGINX pod 处于运行模式。

这可能吗?如果可能,我们如何实现这种情况?

1 Câu trả lời

使用 Pod 拓扑传播约束
自 2021 年起,(v1.19 及更高版本)您可以使用 Pod Topology Spread Constraints topologySpreadConstraints默认情况下,我发现它比 podAntiAfinity 更合适对于这种情况。
主要区别在于 Anti-affinity 只能限制每个节点一个 pod,而 Pod 拓扑传播约束可以限制每个节点 N 个 pod。

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-example-deployment
spec:
replicas: 6
selector:
matchLabels:
app: nginx-example
template:
metadata:
labels:
app: nginx-example
spec:
containers:
- name: nginx
image: nginx:latest
# This sets how evenly spread the pods
# For example, if there are 3 nodes available,
# 2 pods are scheduled for each node.
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: nginx-example
更多详情见 KEP-895an official blog post.

关于kubernetes - 避免 kubernetes 调度程序在 kubernetes 集群的单个节点中运行所有 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37784480/

30 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com