【问题标题】:kubernetes deployments / replicasets are recreated after deletionkubernetes 部署/副本集在删除后重新创建
【发布时间】:2020-11-30 08:01:26
【问题描述】:

我正在尝试删除集群中的一些旧部署/副本集,但是当我运行 kubectl delete deployment 它会说部署被删除并且该部署中的 pod 正在终止,但是几秒钟后部署被神奇地重新创建并且 pod 又回来了。 这与我拥有的另一个副本集的结果相同。

什么可能会重新创建这些部署/副本集,我该如何阻止它,以便我可以永久删除这些部署/rs?

编辑:这是一些输出。这是在 GKE 中的 Kubernetes 集群上:

kubectl get deployments
NAME             READY   UP-TO-DATE   AVAILABLE   AGE
quickstart-kb    1/1     1            1           41m
ubuntu           1/1     1            1           66d

kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
ubuntu-677fc9fd77-fgd7k           1/1     Running   0          19d
quickstart-kb-f9b65577f-4fxph     1/1     Running   0          40m

kubectl delete deployment quickstart-kb
deployment.extensions "quickstart-kb" deleted

kubectl get deployments
NAME             READY   UP-TO-DATE   AVAILABLE   AGE
quickstart-kb    0/1     1            0           7s
ubuntu           1/1     1            1           66d

kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
quickstart-kb-6cb6cf897d-qcjff    0/1     Running   0          11s
ubuntu-677fc9fd77-fgd7k           1/1     Running   0          19d

kubectl get deployments
NAME             READY   UP-TO-DATE   AVAILABLE   AGE
quickstart-kb    1/1     1            1           4m6s
ubuntu           1/1     1            1           66d

kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
quickstart-kb-6cb6cf897d-qcjff    1/1     Running   0          4m13s
ubuntu-677fc9fd77-fgd7k           1/1     Running   0          19d

【问题讨论】:

  • 你能提供输出吗?或您执行的某些命令
  • 用一些输出编辑了我的帖子,如果有更多有用的信息,请告诉我!

标签: kubernetes google-kubernetes-engine kubectl


【解决方案1】:

我认为您的部署对象是通过部署一些自定义资源 (CRD) 创建的。

当您创建 CRD 时,CRD 控制器创建了部署对象。因此,即使您删除了部署对象,CRD 控制器也会重新创建它。

删除 CRD 对象本身,以删除使用它创建的部署和其他对象(如果有)。

从名字看,好像是KibanaCRD对象:

apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana

使用以下命令删除 Kibana 对象:

$ kubectl delete Kibana quickstart-kb

【讨论】:

  • 谢谢!!!是的,这是一个 kibana 部署,我可以通过您提供的命令将其删除。这是我第一次遇到 CRD,这是部署某些应用程序的常用方式吗?我发现运行“kubectl get all”时看不到 crd 很有趣。
  • 是的,如果您使用操作员管理的应用程序,这很常见。使用 kubectl get crd 列出 CRD。和kubectl get <CRD-Kind> ... 列出特定 CRD 类型的对象。
  • 是的,当我查看 CRD 并查看“kind:”时,这就是让我运行 kubectl get 的字段,对吗?这就是 kubectl delete Kibana 起作用的原因?
  • 是的,你会在spec.names.kind自定义资源定义中找到那种。
猜你喜欢
  • 1970-01-01
  • 2020-12-16
  • 1970-01-01
  • 2019-01-20
  • 2020-12-27
  • 1970-01-01
  • 2018-09-14
  • 1970-01-01
  • 2017-04-02
相关资源
最近更新 更多