kubernetes 是否可以使用kubectl run --overrides来添加新的配置,而不是覆盖整个配置?

nukf8bse  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(105)

我有一个kubectl run命令,看起来像这样:

kubectl --context ${CONTEXT} -n ${NAMESPACE} run ${POD_NAME}         \
    --env VARIABLE1=${VARIABLE1}                                                         \
    --env VARIABLE2=${VARIABLE2}                                                         \
    --image ${DOCKER_IMAGE}:${IMAGE_TAG}                                                         \
    --image-pull-policy=Always --restart=Never --rm --wait --attach                              \
    --command -- sh -c "./my-srcipt.sh"

在某些时候,我最终需要为这个pod处理SecurityContext。我看到这个--overrides选项,并尝试像这样使用它:

kubectl --context ${CONTEXT} -n ${NAMESPACE} run ${POD_NAME}         \
    --env VARIABLE1=${VARIABLE1}                                                         \
    --env VARIABLE2=${VARIABLE2}                                                         \
    --image ${DOCKER_IMAGE}:${IMAGE_TAG}                                                         \
    --image-pull-policy=Always --restart=Never --rm --wait --attach                              \
    --overrides="{
                    \"apiVersion\": \"v1\",
                    \"spec\": {
                      \"securityContext\": {
                          \"runAsUser\": 1234,
                          \"runAsGroup\": 1234,
                          \"fsGroup\": 1234
                      },
                      \"containers\": [
                        {
                          \"image\": \"${DOCKER_IMAGE}:${IMAGE_TAG}\",
                          \"name\": \"${POD_NAME}\",
                          \"securityContext\": {
                            \"capabilities\": {
                              \"drop\": [\"ALL\"]
                            }
                          }
                        }
                      ]
                    }
                  }"                                                                              \
    --command -- sh -c "./my-srcipt.sh"

但是,看起来--overrides选项替代了kubectl run的其他选项(包括--command和--env)中给出的整个pod配置。
有没有一种方法可以在不覆盖其他所有内容的情况下添加这些对象?

mzmfm0qo

mzmfm0qo1#

对于任何想知道的人,我能够通过将--override-type strategic选项添加到kubectl run命令来解决我的问题。

相关问题