k8s的yaml设置容器启动时的命令及参数

pod.spec.containers[0].command字段可以设置容器的启动命令。

pod.spec.containers[0].args字段可以设置容器的命令参数。

如果在yaml中配置了容器的命令或参数,那么镜像设置命令或参数将会失效。

其使用方式有三种:直接使用、使用环境变量来设置参数和模拟shell。

直接使用

直接在command和args中编写命令和参数

1.编写command.yaml

apiVersion: v1kind: Podmetadata:  name: command-demo  labels:    purpose: demonstrate-commandspec:  containers:   - name: command-demo-container    image: debian    command: ["printenv"]    args: ["HOSTNAME", "KUBERNETES_PORT"]  restartPolicy: OnFailure

2.执行yaml

$ kubectl apply -f command.yaml

3.获取日志

# 需要拉去镜像,稍等一会$ kubectl logs command-demo# 日志输出command-demo tcp://10.96.0.1:443

使用环境变量来设置参数

将参数写在环境变量之后,之后在args中引用。

k8s的ConfigMaps 与 Secrets也可以先引用到环境变量,之后在args中引用。

1.编写command.yaml

apiVersion: v1kind: Podmetadata:  name: command-demo  labels:    purpose: demonstrate-commandspec:  containers:   - name: command-demo-container    image: debian    env:     - name: MESSAGE      value: "hello world"     command: ["/bin/echo"]    args: ["$(MESSAGE)"]  restartPolicy: OnFailure

2.执行yaml

$ kubectl apply -f command.yaml

3.获取日志

# 需要拉去镜像,稍等一会$ kubectl logs command-demo# 日志输出hello world

模拟shell

有时需要在shell脚本中运行命令。

1.编写command.yaml

apiVersion: v1kind: Podmetadata:  name: command-demo  labels:    purpose: demonstrate-commandspec:  containers:   - name: command-demo-container    image: debian    command: ["/bin/sh"]    args: ["-c", "while true; do echo hello; sleep 10;done"]  restartPolicy: OnFailure

2.执行yaml

$ kubectl apply -f command.yaml

3.获取日志

# 需要拉去镜像,稍等一会$ kubectl logs command-demo# 日志输出hello hello hello
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片