我正在通过killer.sh.for CKAD 工作。我遇到了一个 pod 定义文件,该文件在就绪探针下有一个命令字段,并且容器执行另一个命令但使用 args。
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: pod6
name: pod6
spec:
containers:
- args:
- sh
- -c
- touch /tmp/ready && sleep 1d
image: busybox:1.31.0
name: pod6
resources: {}
readinessProbe: # add
exec: # add
command: # add
- sh # add
- -c # add
- cat /tmp/ready # add
initialDelaySeconds: 5 # add
periodSeconds: 10 # add
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
如果未使用就绪探测并且隐式创建了此 pod,则不会使用 args。
kubectl run pod6 --image=busybox:1.31.0 --dry-run=client --command -- sh -c "touch /tmp/ready && sleep 1d" > 6.yaml
输出 YAML 如下所示:
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: pod69
name: pod69
spec:
containers:
- command:
- sh
- -c
- touch /tmp/ready && sleep 1d
image: busybox:1.31.9
name: pod69
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
为什么 readinessProbe 和容器上都没有使用命令?命令什么时候变成args?有没有办法告诉?
我已通读此文档:https ://kubernetes.io/docs/tasks/inject-data-application/_print/ 但我仍然没有太多运气了解这种情况以及何时切换到 args。