在k8s的清单中更改Pod的docker image的CMD时,不能使用command

只要仔细阅读文件,就可以找到写下的内容。
但由于容易出错,我做了个备忘录。

    • ちゃんと読むべきもの

https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/
https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes

总结

    • マニフェストのcommandはDockerfileのENTRYPOINT

 

    マニフェストのargsはDockerfileのCMD
apiVersion: v1
kind: Pod
metadata:
  name: command-demo
  labels:
    purpose: demonstrate-command
spec:
  containers:
  - name: command-demo-container
    image: debian
    command: ["printenv"]                    # こっちはENTRYPOINT
    args: ["HOSTNAME", "KUBERNETES_PORT"]    # こっちはCMD
  restartPolicy: OnFailure

请注意

此外,请注意由于对command和args分别进行了定义,其行为可能会有所变化。

Dockerfile的内容

    • ENTRYPOINT: echo

 

    CMD: HOSTNAME

如果是那样的话 (If it were like that)

commandargs実行されるコマンド未定義未定義echo HOSTNAMEprintenv未定義printenv未定義KUBERNETES_PORTecho KUBERNETES_PORTprintenvKUBERNETES_PORTprintenv KUBERNETES_PORT

成为。

广告
将在 10 秒后关闭
bannerAds