【问题标题】:Gke - kubernetes / how to ensure deployment isolation on a given nodeGke - kubernetes / 如何确保给定节点上的部署隔离
【发布时间】:2019-05-14 08:01:20
【问题描述】:

在节点选择器、亲和/反亲和之间有点迷失;污点

我感兴趣的是确保单个 pod/部署将在给定节点上运行,而不是在其他任何地方。并且该节点不会收到除指定的 Pod 之外的任何其他 Pod

鉴于上述选项(如果还有其他选项),最简洁的方法是什么?

【问题讨论】:

    标签: kubernetes google-kubernetes-engine kubernetes-pod kubernetes-deployment


    【解决方案1】:

    仅在一个节点上添加一些标签。

    您可以使用一个节点创建一个新的节点池。(我更喜欢这个,因为它可以很好地与自动缩放配合使用,将最小、最大节点设置为 1)

    创建一个具有一个副本且亲缘关系等于该节点的部署。

    限制仅在节点上运行此 pod:
    1)您可以添加等于节点资源值的资源限制,这样就不会在该节点上调度其他Pod。

    2) 对所有其他 pod 使用一些默认关联

    3) 使用node-isolation-restriction 限制可以在该节点上调度哪些Pod。这个我自己还没试过

    【讨论】:

    • 是的,基本上就是这样,我将创建一个带有一个节点的节点池,然后我会考虑在这个给定的节点池上运行一个 pod。我还没有研究过这个“......添加资源限制等于节点的资源值,以便在这个节点上没有调度其他 Pod”,你是怎么做的?
    • kubernetes.io/docs/concepts/configuration/… 在文档中了解此内容。如果您需要帮助,请在此处评论:)
    • 有点好奇,为什么节点上只需要一个 pod?
    • 更多的是寻找隔离托管第三方的最佳方法。而是给定节点池中的用户。最终可能会在众多节点上产生大量 pod;但我个人觉得在这种情况下让 kubernetes 自己完成这项工作很麻烦
    • 这意味着您将为每个第三方应用程序/服务添加节点?
    猜你喜欢
    • 2020-07-24
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    相关资源
    最近更新 更多