一、启动命令

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]#

Logo

开源、云原生的融合云平台

更多推荐