【问题标题】:Logically seperate azure kubernetes deployments逻辑上独立的 azure kubernetes 部署
【发布时间】:2019-09-04 12:19:47
【问题描述】:

我有一个使用应用程序创建和部署的 kubernetes 集群。

首先,如果我使用 firstapp.yaml 进行部署,它创建了一个 pod 和一个将 pod 暴露在外部的服务。

如果我在集群中有两个节点,然后使用 secondapp.yaml 进行另一个部署。

我注意到,第二次部署去了不同的节点。虽然这是逻辑分隔的理想行为。

这是 Kubernetes 提供的东西吗?它将如何管理使用不同文件进行的部署?他们是否总是在单独的节点上运行(如果提供了节点)?

如果不是,如果我想在两个节点之间进行逻辑分离,我想作为两个环境,比方说 dev 和 qa 环境,应该遵循什么做法。

【问题讨论】:

    标签: azure kubernetes azure-aks


    【解决方案1】:

    不,他们不需要去不同的节点。调度程序根据不同的标准确定放置 pod 的位置。

    至于你的最后一个问题 - 这没有任何意义。您可以使用命名空间\网络策略来分隔环境,您不应该关心您的 pod 是哪个节点。这就是拥有集群的全部意义所在。

    您可以使用放置约束来实现您的要求,但这根本没有意义。

    https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

    【讨论】:

    • 命名空间有什么帮助?
    【解决方案2】:

    同意@4c74356b41。 作为补充。无论您的 pod 在哪里,您都可以在 50 个节点之间拆分应用程序的多个副本,它们仍然可以相互通信(服务、服务发现、network CNI)并共享资源等。

    是的,这是 Kubernetes 的默认行为,您可以通过 taints、toleration's、resources、limits Node affinity 和 anti-affinity 来影响它(您可以在文档中找到有关每一项的大量信息,或者简单地在 Google 上搜索它)。此外,Pod 的调度位置取决于节点 capacity。您的 pod 已设置为特定节点,因为调度程序计算出它的得分最高,首先考虑到提到的条件。您可以找到有关进程here 的详细信息。

    再次如@4c74356b41 所述,如果您想将集群拆分为多个环境,可以针对不同的团队或您提到的开发和质量保证环境使用namespaces。他们基本上是在您的集群中创建一个较小的集群(请注意,这更多是一种逻辑分离,而不是从安全角度来看的分离,直到您添加其他组件,例如 例如角色) 您可以在部署 YAML 中添加一个 namespace 字段,以指定要将 pod 部署到哪个命名空间 - 它们在哪些节点上仍然无关紧要。取决于您的用例。

    请注意,我写的内容过于简单化了,中间的很多内容我没有提及,您可以在大多数 Kubernetes 教程中轻松找到这些内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 2021-05-28
      • 1970-01-01
      • 1970-01-01
      • 2021-02-09
      • 2018-02-08
      • 1970-01-01
      相关资源
      最近更新 更多