问题描述
我想即时创建一个k8s吊舱的副本, 并使用一些自定义配置对其进行修补。
不幸的是, 我真的不知道从哪里开始...
my-service
- kustomization.yaml
- deployment.yaml
然后
kubectl apply -k ./path/to/my-service --override `{ "image": "foo-1","name": "foo-1" }`
我所讨论的替代应该为部署提供动态信息, 例如我仅在构建时拥有的信息等。
A.C
- []不应更改原始
my-service
吊舱,即时部署应创建一个新的临时吊舱。 - []新的临时容器应具有
original
的所有信息
解决方法
您可以使用简单的基础和叠加层:
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。