2016-06-13 67 views
4

的单个节点我有一个kubernetes簇与4个节点和一个主。我试图在所有节点中运行5个nginx窗格。目前有时调度程序在一台机器上运行所有的豆荚,有时在不同的机器上运行。避免kubernetes调度运行所有吊舱在kubernetes簇

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

如何执行调度以循环方式运行的节点上荚,因此,如果任何节点发生故障,然后在至少一个节点应该有NGINX荚运行模式。

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

回答

2

调度会分散你的豆荚,如果您的容器指定的记忆,他们需要的数量和CPU资源请求。见 http://kubernetes.io/docs/user-guide/compute-resources/

+0

感谢@DavidO的答复,我热切期望对于某人的回应。但遗憾的是你错过了我的问题。我不希望基于节点中可用的资源进行pod调度。我想以循环方式在指定节点上安排pod(无需事项资源)。如果资源不可用,那么我只是想跳过该节点。 –

+0

添加一些更多的信息:尝试下面的链接,但无法看到预期的结果http://kubernetes.io/docs/user-guide/node-selection/ –

+0

任何人可以对这个建议? –

0

我觉得跨荚反关联性功能将帮助您。 根据已在节点上运行的Pod上的标签,可以根据Pod上的标签来限制pod有资格按照哪些节点进行排定。这是一个例子。

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    labels: 
    run: nginx-service 
    name: nginx-service 
spec: 
    replicas: 3 
    selector: 
    matchLabels: 
     run: nginx-service 
    template: 
    metadata: 
     labels: 
     service-type: nginx 
    spec: 
     affinity: 
     podAntiAffinity: 
      preferredDuringSchedulingIgnoredDuringExecution: 
      - labelSelector: 
       matchExpressions: 
       - key: service-type 
       operator: In 
       values: 
       - nginx 
      topologyKey: kubernetes.io/hostname 
     containers: 
     - name: nginx-service 
     image: nginx:latest 

注意:我用preferredDuringSchedulingIgnoredDuringExecution在这里,因为你比节点的更多豆荚。

如需更详细的信息,可以参考间吊舱亲和力和反关联性(测试版功能)以下链接部分: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

相关问题