在Kubernetes中启动Pod时如何运行命令



我想在创建pod的过程中执行一个命令。我看到有两种选择:

kubectl run busybox --image=busybox --restart=Never -- sleep 3600

kubectl run busybox --image=busybox --restart=Never -- /bin/sh -c "sleep 3600"

以上两个命令之间的区别是什么?

  • 简而言之,如果您想运行"睡眠3600";。两者执行相同的操作。

  • 要了解这些选项的行为,请在中添加试运行选项

  • 第一个通过";睡眠"3600〃;作为busybox图像的入口点的自变量/bin/sh";

kubectl run busybox --image=busybox --restart=Never --dry-run=client -o yaml -- sleep 3600
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: busybox
name: busybox
spec:
containers:
- args:
- sleep
- "3600"
image: busybox
name: busybox
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Never
  • 第二个通过"/bin/sh-c"睡眠"3600〃;作为busybox图像的入口点的自变量/bin/sh"。因此,它将打开一个新的shell来运行";睡眠3600〃;在容器内
kubectl run busybox --image=busybox --restart=Never --dry-run=client -o yaml -- /bin/sh -c "sleep 3600"
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: busybox
name: busybox
spec:
containers:
- args:
- /bin/sh
- -c
- sleep 3600
image: busybox
name: busybox
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Never
status: {}
  • 如开头所述;睡眠3600〃;但是当您想要按容器运行多个命令时,这种方法是有用的,例如";睡眠3600〃"回声boo";。所以语法应该是
kubectl run busybox --image=busybox --restart=Never -- /bin/sh -c "sleep 3600;echo boo"

相关内容

  • 没有找到相关文章

最新更新