【问题标题】:Pod manifest into Deployment ManifestPod manifest 到 Deployment Manifest
【发布时间】:2022-01-03 20:03:03
【问题描述】:

在 Kubernetes 中,将正在运行的 pod manifest 转换为具有 x 个副本的 Deployment 的简单方法是什么?

我尝试获取清单

k get po xyz -o yaml>po1.yaml

然后编辑 yaml 并与部署清单匹配,但似乎并不容易。我在转换时不断出错。

【问题讨论】:

    标签: kubernetes kubectl


    【解决方案1】:

    dit 不能自动进行,它们是在 pod 提交时计算的几个字段。

    但您可以使用yq 来提取 pod 的规范:

    k get pod/xyz -o yaml | yq .spec -y > pod-spec.yml
    

    然后您只需将其添加到部署中:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: deployment
      name: deployment
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: deployment
      strategy:
        rollingUpdate:
          maxSurge: 25%
          maxUnavailable: 25%
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: deployment
        spec: <here>
    

    不要忘记从 pod 规范中删除:

    • 服务帐号的volumeMountsvolume
    • nodeName

    还有很多默认字段可以删除。

    【讨论】:

    • ,有没有 yq 的替代品,你的意思是我应该剪切规范部分并粘贴到部署中。
    • 你也可以用 jq 完全做到这一点。在这两种情况下,您都需要手动复制/粘贴
    猜你喜欢
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    相关资源
    最近更新 更多