YAML 文件中的 Kubernetes 命令和参数

问题描述

Pod YAML 文件中的以下三个声明有什么区别:

  1. 容器:
  1. 容器:

  2. 容器:

另外,上面的 1、2 和 3 会产生相同的结果吗?



我进一步编辑。这真的让人感到困惑。看起来下面两个会产生相同的结果。如果是这样,不确定每个的目的是什么:

命令:
- 睡觉
- “5000”

参数:
- 睡觉
- “5000”

解决方法

对于第一种情况:

如果您只为容器提供 args,则 Docker 映像中定义的默认入口点将使用您提供的 args 运行。

对于第二种情况:

如果您为容器提供命令但没有参数,则仅使用提供的命令。 Docker 镜像中定义的默认 EntryPoint 和默认 Cmd 将被忽略。

所以在第一种情况下,busybox 默认入口点将执行给定的参数。在第二种情况下,busybox 默认入口点被忽略,“/bin/sh”命令将执行给定的参数。

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

,

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

在 Shell 中运行命令

command: ["/bin/sh"]
args: ["-c","while true; do echo hello; sleep 10; done"]

command 需要 args。或者

如果您不为容器提供命令或参数,则使用 Docker 镜像中定义的默认值。