当与 --dry-run=client 和 -o yaml 和命名空间标志一起使用时,Kubectl run 命令不会填充由它生成的 yaml 文件中的命名空间字段。是否需要在 yaml 中手动插入命名空间,我们还有其他选择吗?但是,不包括 --dry-run=client, -o yaml 标志执行的运行命令会在相应的命名空间中生成 pod。
kubectl 运行命令在 test 命名空间中生成 yaml 文件
kubectl run pod1 --namespace=test --image=nginx --dry-run=client -o yaml > pod.yaml
pod.yaml 生成时没有命名空间字段
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: pod1
name: pod1
spec:
containers:
- image: nginx
name: pod1
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
在没有 --dry-run=client -o yaml 的情况下使用时,可以在相应的命名空间中正常创建 pod
$ kubectl run po --namespace=test --image=nginx
pod/po created
$ kubectl get po -n test
NAME READY STATUS RESTARTS AGE
po 0/1 ContainerCreating 0 5s