我有 3 个节点的 k8s 集群
我想要一个带有 3 个副本的示例部署作为后续,所以每个 pod 都被安排在不同的节点中?
apiVersion: apps/v1 kind: Deployment metadata: name: tomcat-deployment labels:
app: tomcat spec: replicas: 3 selector:
matchLabels:
app: tomcat template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: tomcat:9.0
ports:
- containerPort: 80
最佳答案
您可以使用 podAntiAffinity 来确保部署的相同 pod 永远不应在同一节点上运行(取决于拓扑)。查看以下文档Assigning Pods to Nodes .
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deployment
labels:
app: tomcat
spec:
replicas: 3
selector:
matchLabels:
app: tomcat
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: tomcat:9.0
ports:
- containerPort: 80
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: "app"
operator: In
values:
- tomcat
topologyKey: "kubernetes.io/hostname"
关于kubernetes - 部署亲和性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62292476/