为什么命令式pod创建没有'kubectl create'?

时间:2019-12-03 07:03:07

标签: kubectl

您可以使用kubectl create创建服务,部署等,但不能使用pod进行。您需要改用kubectl run。这可能是什么原因?无论如何,您都是使用kubectl run --generator=run-pod/v1创建技术的吊舱吗?

1 个答案:

答案 0 :(得分:2)

我只能假设这是一个任意决定,而不是技术决定。

从kubectl 1.16开始,kubectl create可以创建以下类型的资源:

clusterrole, clusterrolebinding, configmap, cronjob, deployment, job,
namespace, poddisruptionbudget, priorityclass, quota, role, rolebinding,
secret, service, serviceaccount

如您所见,这些都是通常以独立方式使用的所有资源类型。例如,通常直接创建一个Deployment或Job。但是,直接为运行的工作负载创建Pod并不常见,它是not recommended(有例外,但它们主要用于调试和管理任务)。相反,只能将Pod创建为Deployment,Job等的一部分。

鉴于imperative kubectl commands最初是为初学者设计的,因此kubectl团队可能已决定不在kubectl create中包含Pods。另外,他们只需要在某处画线,即,您只能在kubectl create中包括最常见的资源类型,否则列表将变得很长。

运行单个Pod的方法是kubectl run --generator=run-pod/v1