0

我想即时创建一个 k8s pod 的副本,并使用一些自定义配置对其进行修补。

不幸的是,我真的不知道从哪里开始......

  my-service
    - kustomization.yaml
    - deployment.yaml

接着

kubectl apply -k ./path/to/my-service --override `{ "image": "foo-1", "name": "foo-1" }`

我正在谈论的覆盖应该为部署提供动态信息,例如我仅在构建时拥有的信息等。


交流电

  • my-service[ ]不应更改原始pod, on-the-fly-deployment应创建一个新的、短暂的 pod。
  • [ ] 新的临时 pod 应该包含来自original
4

1 回答 1

1

您可以使用简单的基础和覆盖:

my-service/
  base/
    kustomization.yml
    deployment.yml
  overlays/
    ephemeral/
      kustomization.yml

my-service/base/kustomization.yml

resources:
  - deployment.yml

如果您不需要临时部署的特定名称:

my-service/overlays/ephemeral/kustomization.yml

resources:
  - ../../base

nameSuffix: '-ephemeral'

images:
  - name: myImage
    newName: foo-1

replicas:
  - name: my-deployment
    count: 1

如果您需要特定名称,则必须将名称修补到my-service/overlays/ephemeral/kustomization.yml. 然后你可以运行:

kubectl apply -k my-service/base
kubectl apply -k my-service/overlays/ephemeral

需要明确的是,这将创建两个部署:单个 pod 的原始部署和一个部署。没有一个部署和一个单独的 pod。

于 2021-01-22T16:43:35.880 回答