选择其他POD不存在的节点

时间:2016-03-01 06:59:59

标签: kubernetes

我有两个节点

gke-1789571565414321321-a3ec9151-node-q0cz gke-98798532417432432421-a3ec9151-node-q0cz

我有两个ReplicationController来部署2个pod, xxx &的 YYY

我想要的是:如果在xxx之一部署了nodeyyy应该转到另一个。{/ 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"
      }
    }
  }
}

1 个答案:

答案 0 :(得分:1)

您正在寻找的功能称为“反亲和力”,尚未实施(但在design doc in github中有所描述)。在此之前,您可以通过分配每个节点只能满足一次的约束来强制传播pod,例如主机端口(请参阅Allow only one pod of a type on a node in Kubernetes)。