我对以下命令有点困惑:
kubectl run busybox --image=busybox --restart=Never -o yaml --dry-run -- /bin/sh -c 'echo hello;sleep 3600'
Run Code Online (Sandbox Code Playgroud)
YAML:
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: busybox
name: busybox
spec:
containers:
- args:
- /bin/sh
- -c
- echo hello;sleep 3600
image: busybox
name: busybox
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Never
status: {}
Run Code Online (Sandbox Code Playgroud)
我知道如果我们不指定 parameter --command,则后面的参数--将被视为参数。
但我想知道,/bin/sh -c "echo hello;sleep 3600"在争论的情况下是如何工作的?根据 Kubernetes 文档(https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes),如果我们仅在 POD 中指定参数,则 docker EntryPoint 将用作入口点命令。因此,将在 docker 映像中执行的结果命令将是Docker EntryPoint + kubectl …