我有两个节点
gke-1789571565414321321-a3ec9151-node-q0cz
gke-98798532417432432421-a3ec9151-node-q0cz
我有两个ReplicationController来部署2个pod, xxx &的 YYY
我想要的是:如果在xxx
之一部署了node
,yyy
应该转到另一个。{/ p>
我是通过spec.nodeName
属性实现的。
是否存在避免指示特定节点的通用方法?
XXX:
{
"apiVersion": "v1",
"kind": "ReplicationController",
"metadata": {
"name": "xxx",
"labels": { "name" : "xxx" }
},
"spec": {
"replicas": 1,
"selector": {
"name":"xxx"
},
"template": {
"metadata": {
"labels": {
"name":"xxx"
}
},
"spec": {
"containers": [
//...
],
"nodeName" : "gke-1789571565414321321-a3ec9151-node-q0cz"
}
}
}
}
YYY:
{
"apiVersion": "v1",
"kind": "ReplicationController",
"metadata": {
"name": "yyy",
"labels": { "name" : "yyy" }
},
"spec": {
"replicas": 1,
"selector": {
"name":"yyy"
},
"template": {
"metadata": {
"labels": {
"name":"yyy"
}
},
"spec": {
"containers": [
//...
],
"nodeName" : "gke-98798532417432432421-a3ec9151-node-q0cz"
}
}
}
}
答案 0 :(得分:1)
您正在寻找的功能称为“反亲和力”,尚未实施(但在design doc in github中有所描述)。在此之前,您可以通过分配每个节点只能满足一次的约束来强制传播pod,例如主机端口(请参阅Allow only one pod of a type on a node in Kubernetes)。