为什么 kubectl create 只支持某些资源?
Why does kubectl create only support certain resources?
我希望通过命令行 kubectl
为特定资源(pvs、pvc、策略等)创建 yaml 文件。
kubectl create
仅支持创建某些资源类型(即 clusterroles、clusterrolebindings、configmaps、cronjobs、部署、作业、命名空间、pod 中断预算、优先级、配额、角色、角色绑定、秘密、服务和服务帐户)。
为什么不支持pods、pvs、pvcs等?
我知道 kubectl run --generator=run=pod/v1
用于 pods,但是否有特定原因未将其添加到 kubectl create
?
我搜索了文档和 github 个问题,但找不到解释。
我知道像 ksonnet 这样的工具,但我想知道是否有本地方式(或者没有的原因)。
您可以使用 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 并不是一个好习惯。建议改用 deployments。你有一个 kubectl create deployment
命令。
其他完全没问题的对象呢,例如 pv 或 pvc。好吧,我不知道:)
请记住,从控制台 create/manage 一切都不是一个好的做法,因为您将无法保留您正在做的事情的历史记录。更喜欢使用在 SCM 中管理的文件。
因此,我猜 K8S 团队并没有在不推荐的过程或命令上投入太多精力。这对我来说很好。
我希望通过命令行 kubectl
为特定资源(pvs、pvc、策略等)创建 yaml 文件。
kubectl create
仅支持创建某些资源类型(即 clusterroles、clusterrolebindings、configmaps、cronjobs、部署、作业、命名空间、pod 中断预算、优先级、配额、角色、角色绑定、秘密、服务和服务帐户)。
为什么不支持pods、pvs、pvcs等?
我知道 kubectl run --generator=run=pod/v1
用于 pods,但是否有特定原因未将其添加到 kubectl create
?
我搜索了文档和 github 个问题,但找不到解释。
我知道像 ksonnet 这样的工具,但我想知道是否有本地方式(或者没有的原因)。
您可以使用 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 并不是一个好习惯。建议改用 deployments。你有一个 kubectl create deployment
命令。
其他完全没问题的对象呢,例如 pv 或 pvc。好吧,我不知道:)
请记住,从控制台 create/manage 一切都不是一个好的做法,因为您将无法保留您正在做的事情的历史记录。更喜欢使用在 SCM 中管理的文件。
因此,我猜 K8S 团队并没有在不推荐的过程或命令上投入太多精力。这对我来说很好。