我有一个在 Kubernetes 中运行的部署,并希望在应用更新之前更新“args”,以便在它重新启动时,它使用与初始启动时不同的入口点 arg,其中还包括一些数据引导。
我知道您可以运行kubectl set image以更新部署或副本集正在运行的映像,但是如何在不删除和重新创建资源的情况下更新参数?
您可以kubectl patch按照@mr.franco 的回答使用。我使用这个补丁args的kubernetes-dashboard,而无需修改其官方安装清单部署。
这是一个完整的示例,说明如何args在现有部署上替换(在 JSON 补丁方面)容器:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.1/aio/deploy/recommended.yaml
Run Code Online (Sandbox Code Playgroud)
kubectl get deployment kubernetes-dashboard --namespace kubernetes-dashboard -o=json | jq '.spec.template.spec.containers[0].args'
Run Code Online (Sandbox Code Playgroud)
[
"--auto-generate-certificates",
"--namespace=kubernetes-dashboard"
]
Run Code Online (Sandbox Code Playgroud)
[
"--auto-generate-certificates",
"--namespace=kubernetes-dashboard"
]
Run Code Online (Sandbox Code Playgroud)
kubectl patch deployment \
kubernetes-dashboard \
--namespace kubernetes-dashboard \
--type='json' \
-p='[{"op": "replace", "path": "/spec/template/spec/containers/0/args", "value": [
"--auto-generate-certificates",
"--enable-insecure-login",
"--enable-skip-login",
"--namespace=kubernetes-dashboard"
]}]'
Run Code Online (Sandbox Code Playgroud)
[
"--auto-generate-certificates",
"--enable-insecure-login",
"--enable-skip-login",
"--namespace=kubernetes-dashboard"
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2632 次 |
| 最近记录: |