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 镜像中定义的默认值。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...