启动命令
编写配置文件
创建 pod_command.yaml 文件,并编写如下内容,即在容器启动之后,向 、opt/text.txt 文件写入时间戳,执行命令主要通过 command 字段传入,类型为列表格式
# 编写 yaml
apiVersion: v1
kind: Namespace
metadata:
name: dev
---
apiVersion: v1
kind: Pod
metadata:
name: pod-command
namespace: dev
labels:
user: app
spec:
containers:
- name: busybox
image: busybox:1.30
command: ["/bin/sh","-c","touch /tmp/hello.txt;while true;do /bin/echo $(date +%T) >> /tmp/hello.txt;sleep 3;done;"]
创建资源
进入容器中,并查看 /tmp/hello.txt 文件内容,如下,表示已经成功执行命令
创建 pod
[root@master pod]# kubectl apply -f pod_command.yaml
namespace/dev created
查看 pod 状态
[root@master pod]# kubectl get pod -n dev
NAME READY STATUS RESTARTS AGE
pod-command 1/1 Running 0 6s
进入容器验证
[root@master pod]# kubectl exec pod-command -n dev -it -c busybox /bin/sh
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
/ # tail -n 5 /tmp/hello.txt
15:13:58
15:14:01
15:14:04
15:14:07
15:14:10
/ #
关于kubernetes中command和args的参数说明:
- 如果 command 和 args 都没写,则使用 dockerfile 中的配置
- 如果 command 写了,但是 args 没写,那么 dockerfile 默认配置会被忽略,执行输入的 command
- 如果 command 没写,但是 args 写了,那么 dockerfile 中配置的 ENTRYPOINT 的命令会被执行,使用当前args的参数
- 如果 command 和args都写了,那么 dockerfile 的配置被忽略,执行 command 追加上args参数
同时配置 command 和 args
# 编写 yaml
apiVersion: v1
kind: Namespace
metadata:
name: dev
---
apiVersion: v1
kind: Pod
metadata:
name: pod-command
namespace: dev
labels:
user: rapp
spec:
containers:
- name: busybox
image: busybox:1.30
command: ["/bin/sh","-c","touch /tmp/hello.txt;while true;do /bin/echo $(date +%T) >> /tmp/hello.txt;sleep 3;done;"]
args: ["-c","touch /hello.txt;while true;do /bin/echo $(date +%T)>>/tmp/hellow.txt]
创建 pod
[root@master pod]# kubectl apply -f pod_command.yaml
namespace/dev created
查看 pod 状态
[root@master pod]# kubectl get pod -n dev
NAME READY STATUS RESTARTS AGE
pod-command 1/1 Running 0 6s
进入容器验证
[root@master pod]# kubectl exec pod-command -n dev -it -c busybox /bin/sh
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
/ # tail -n 5 /tmp/hello.txt
15:18:58
15:19:01
15:19:04
15:19:07
15:19:10
/ #