【问题标题】:Kubernetes - Is it possible to combine Pod.yaml and Service.yaml in one yaml file (but without Deployment)Kubernetes - 是否可以将 Pod.yaml 和 Service.yaml 组合在一个 yaml 文件中(但没有部署)
【发布时间】:2021-01-28 12:55:52
【问题描述】:

我有两种不同的 YAML,一种用于 Pod,另一种用于 Service。 是否可以将它们组合成一个 YAML 但不使用 Deployment 类型的 YAML,我知道我们可以在其中指定 Pod 和服务定义,但我不需要担心副本等。 是否可以将它们结合在一起?我在文档中没有找到这样的示例/指南。

谢谢。

【问题讨论】:

  • (即使你不想要多个副本,你仍然应该使用 Deployment,因为 Pod 创建后你无法更改它。Deployment 也知道如何更新自己,暂时运行两个Pod 并发,不会导致服务停机。)

标签: kubernetes yaml kubernetes-pod


【解决方案1】:

是的,你可以将任何你想要的资源放在一个 yaml 文件中,你只需要用三个破折号分隔它们,例如:

apiVersion: apps/v1
kind: Service

---
apiVersion: apps/v1
kind: Pod

【讨论】:

  • 谢谢!顺序重要吗?我应该在它们之间定义一些依赖关系还是可能不需要?
  • 两种顺序都可以。依赖关系是由 pod 的标签和服务的选择器隐含的,先部署哪个并不重要。
【解决方案2】:

你打算用这个 yaml 文件做什么? 'kubectl 创建'?

您可以用一行 3 个连字符分隔对象:'---'。

【讨论】:

    【解决方案3】:

    您可以在单个 YAML 中连接对象,用 --- 分隔它们

    类似:

    ---
    apiVersion: v1
    kind: Service
    ...
    ---
    apiVersion: v1
    kind: Pod
    ...
    

    您可能想先创建一个 Deployment,弄清楚您的 Pod 定义应该是什么样子。

    顺序无关紧要,尽管取决于加载它的客户端,失败可能会或可能不会停止应用其余对象——kubectl 会应用它所能应用的一切。

    【讨论】:

    • 谢谢你的澄清
    猜你喜欢
    • 2020-12-07
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多