K8s Pod Command 与容器镜像 Cmd 启动优先级详解

栏目: IT技术 · 发布时间: 4年前

内容简介:创建 Pod 时,可以为其下的容器设置启动时要执行的命令及其参数。如果要设置命令,就填写在配置文件的下表给出了 Docker 与 Kubernetes 中对应的字段名称:如果要覆盖Docker容器默认的

创建 Pod 时,可以为其下的容器设置启动时要执行的命令及其参数。如果要设置命令,就填写在配置文件的 command 字段下,如果要设置命令的参数,就填写在配置文件的 args 字段下。一旦 Pod 创建完成,该命令及其参数就无法再进行更改了。

启动优先级

下表给出了 Docker 与 Kubernetes 中对应的字段名称:

描述 Docker字段名称 Kubernetes字段名称
容器执行的命令 Entrypoint command
传给命令的参数 Cmd args

如果要覆盖Docker容器默认的 EntrypointCmd ,需要遵循如下规则:

  • 如果在 Pod 配置中没有设置 command 或者 args ,那么将使用 Docker 镜像自带的命令及其参数。
  • 如果在 Pod 配置中只设置了 command 但是没有设置 args ,那么容器启动时只会执行该命令,Docker 镜像中自带的命令及其参数会被忽略。
  • 如果在 Pod 配置中只设置了 args ,那么 Docker 镜像中自带的命令会使用该新参数作为其执行时的参数。
  • 如果在 Pod 配置中同时设置了 commandargs ,那么 Docker 镜像中自带的命令及其参数会被忽略。容器启动时只会执行配置中设置的命令,并使用配置中设置的参数作为命令的参数。

例子

Pod 启动例子:

使用 commandargs 示例:

apiVersion: v1
kind: Pod
metadata:
  name: demo
  labels:
    purpose: demo
spec:
  containers:
  - name: demo-container
    image: debian
    command: ["printenv"]
    args: ["HOSTNAME", "KUBERNETES_PORT"]
  restartPolicy: OnFailure

使用 环境变量 来设置参数:

env:
- name: MESSAGE
  value: "hello world"
command: ["/bin/echo"]
args: ["$(MESSAGE)"]

上面例子使用 env 来声明环境变量,但 k8s 中也可以使用 ConfigMapsSecrets 来做为变量传入。

通过 shell 命令来执行:

command: ["/bin/bash"]
args: ["-c", "while true; do echo "Hello World"; sleep 10;done"]

Docker 镜像启动例子

Cmd 单独使用:

FROM ubuntu:trusty
CMD ["echo", "Hello World"]

Entrypoint 单独使用:

FROM ubuntu:trusty
ENV name John
ENTRYPOINT ["echo", "Hello, $name"]

EntrypointCmd 组合使用:

FROM ubuntu:trusty
ENTRYPOINT ["/bin/ping", "-c", "10"]
CMD ["localhost"]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Is Parallel Programming Hard, And, If So, What Can You Do About

Is Parallel Programming Hard, And, If So, What Can You Do About

Paul E. McKenney

The purpose of this book is to help you understand how to program shared-memory parallel machines without risking your sanity.1 By describing the algorithms and designs that have worked well in the pa......一起来看看 《Is Parallel Programming Hard, And, If So, What Can You Do About 》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试