一、启动命令
1.1 编写配置文件
创建pod_command.yaml文件,并编写如下内容,即在容器启动之后,向 、opt/text.txt文件写入时间戳,执行命令主要通过command字段传入,类型为列表格式
apiVersion: v1
kind: Namespace
metadata:
name: dev
---
apiVersion: v1
kind: Pod
metadata:
name: pod-command
namespace: dev
labels:
user: redrose2100
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;"]
1.2 创建资源
使用如下命令创建namespace和pod资源
[root@master pod]# kubectl apply -f pod_command.yaml
namespace/dev created
pod/pod-command created
[root@master pod]#
1.3 进入容器检查数据
如下,进入容器中,并查看 /tmp/hello.txt文件内容,如下,表示已经成功执行命令
[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
/ #
1.4 关于kubernetes中command和args的参数说明:
- 如果command和args都没写,则使用dockerfile中的配置
- 如果command写了,但是args没写,那么dockerfile默认配置会被忽略,执行输入的command
- 如果command没写,但是args写了,那么dockerfile中配置的ENTRYPOINT的命令会被执行,使用当前args的参数
- 如果command和args都写了,那么dockerfile的配置被忽略,执行command追加上args参数
1.5 删除资源
使用如下命令删除资源
[root@master pod]# kubectl delete -f pod_command.yaml
namespace "dev" deleted
pod "pod-command" deleted
[root@master pod]#