如何在命令行中启动pod而不在kubernetes中部署?

Lar*_*Cai 18 kubernetes minikube

我想以简单的方式调试pod,因此我想在没有部署的情况下启动pod.

但它会自动创建部署

$ kubectl run nginx --image=nginx --port=80
deployment "nginx" created
Run Code Online (Sandbox Code Playgroud)

所以我必须创建该nginx.yaml文件

---
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
    - name: nginx
      image: nginx
      ports:
        - containerPort: 80

并创建如下的pod,然后它只创建pod

kubectl create -f nginx.yaml
pod "nginx" created
Run Code Online (Sandbox Code Playgroud)

如何在命令行中指定kind:Pod要避免deployment

//我在Windows 7下运行minikue 0.20.0和kubernetes 1.7.0

Jan*_*art 31

kubectl run nginx --image=nginx --port=80 --restart=Never
Run Code Online (Sandbox Code Playgroud)

--restart=Always:此Pod的重新启动策略.合法值[ Always,OnFailure,Never].如果设置Always 为创建部署,则设置OnFailure为创建作业时,如果设置为Never,则创建常规窗格.对于后两者--replicas必须1.默认Always[...]

参见官方文件https://kubernetes.io/docs/user-guide/kubectl-conventions/#generators

  • @LarryCai此处记录:https://kubernetes.io/docs/user-guide/kubectl-conventions/#generators (4认同)
  • 此答案现已弃用。请参阅:/sf/answers/4342567141/ (2认同)

小智 6

现在有两种方法可以通过命令行创建 pod。

kubectl run nginx --image=nginx --restart=Never

或者

kubectl run --generator=run-pod/v1 nginx1 --image=nginx

查看官方文档。 https://kubernetes.io/docs/reference/kubectl/conventions/#generators


Vai*_*ain 5

为此使用生成器,默认 kubectl 运行将创建一个部署对象。如果您想覆盖此行为,请使用“run-pod/v1”生成器。

kubectl run --generator=run-pod/v1 nginx1 --image=nginx
Run Code Online (Sandbox Code Playgroud)

您可以参考下面的链接以获得更好的理解。

https://kubernetes.io/docs/reference/kubectl/conventions/#generators


yur*_*s87 5

我对 kubernetes 比较陌生,但自从提出这个问题以来,它似乎已经发展了很多。从其最新版本(我正在运行 v1.16)开始,生成器已被弃用,并且在 v1.18 中被完全删除。\n请参阅相应的票证发行说明。\n发行说明明确指出:

\n\n
\n

从 kubectl run 中删除所有生成器。现在它只会创建\n Pod。

\n
\n\n

我已经kubectl run使用各种--restart标志进行了测试,但从未创建任何部署。我们现在拥有的称为“裸”Pod。虽然您可能想使用它,但它违背了 k8s最佳实践

\n\n
\n

如果可以避免,请不要使用裸 Pod(即未绑定到 ReplicaSet 或部署的 Pod)。如果节点发生故障,裸 Pod 不会被重新调度。

\n
\n