我希望通过命令行kubectl
为特定资源(pvs,pvcs,策略等)创建yaml文件。
kubectl create
仅支持创建某些资源类型(即clusterroles,clusterrolebindings,configmaps,cronjobs,部署,作业,名称空间,pod中断预算,优先级类,配额,角色,角色绑定,机密,服务和服务帐户) 。
为什么它不支持pod,pvs,pvcs等?
我知道kubectl run --generator=run=pod/v1
用于广告连播,但是是否有未将其添加到kubectl create
的特定原因?
我搜索了docs和github问题,但找不到解释。
我知道诸如ksonnet之类的工具,但是我想知道是否存在一种本机方式(或没有这种方式的原因)。
答案 0 :(得分:2)
您可以使用kubectl create
创建任何类型的对象。为此,您有两种解决方案:
kubectl create -f my-pod-descriptor.yml
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: busybox-sleep
spec:
containers:
- name: busybox
image: busybox
args:
- sleep
- "1000000"
EOF
现在回到问题所在,例如为什么他们不添加kubectl create pod
命令。我真的没有答案。
我的猜测是,直接管理 pods 并不是一个好习惯。建议改为使用部署。并且您有一个kubectl create deployment
命令。
关于其他物体,例如 pv或pvc ,该怎么办?好吧,我不知道:)
请记住,从控制台创建/管理所有内容并不是一个好习惯,因为您将无法保存正在执行的操作的历史记录。优先使用在SCM中管理的文件。
因此,我想K8S团队不会在不推荐的程序或命令上投入过多精力。对我来说很好。