0
点赞
收藏
分享

微信扫一扫

Kubernetes 集群 Pod 资源启动命令(六)

caoxingyu 2023-04-17 阅读 59

启动命令

编写配置文件

创建 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
/ #


举报

相关推荐

0 条评论