Kubernetes Api Service 删除后重新生成
Kubenetes ApiService regenerated after deletion
我正在尝试升级我的 kubernetes 集群中的证书管理器。目前安装的版本是 crd 名称更改前的版本,我正在尝试清理旧的 CRD。
> kubectl get crd | grep certmanager.k8s.io
certificates.certmanager.k8s.io 2020-01-31T08:25:56Z
challenges.certmanager.k8s.io 2020-01-31T08:25:56Z
clusterissuers.certmanager.k8s.io 2020-01-31T08:25:58Z
issuers.certmanager.k8s.io 2020-01-31T08:25:03Z
orders.certmanager.k8s.io 2020-01-31T08:25:08Z
识别出 crds 后,我将其删除:
> kubectl delete customresourcedefinition certificates.certmanager.k8s.io challenges.certmanager.k8s.io clusterissuers.certmanager.k8s.io issuers.certmanager.k8s.io orders.certmanager.k8s.io
customresourcedefinition.apiextensions.k8s.io "certificates.certmanager.k8s.io" deleted
customresourcedefinition.apiextensions.k8s.io "challenges.certmanager.k8s.io" deleted
customresourcedefinition.apiextensions.k8s.io "clusterissuers.certmanager.k8s.io" deleted
customresourcedefinition.apiextensions.k8s.io "issuers.certmanager.k8s.io" deleted
customresourcedefinition.apiextensions.k8s.io "orders.certmanager.k8s.io" deleted
删除后 kubectl get crd | grep certmanager.k8s.io
显示没有 crds,但大约 30 秒后它们会重新生成。我需要在哪里查看以确定导致它们再生的原因。
已删除所有其他证书管理器资源。
这是因为我似乎无法 view/edit/delete 新 CRD 中的资源,但应用更改会更新(隐藏的)资源。
您遇到的行为可能是由 Istio 插件引起的。在集群中启用 Istio 时,将创建以下资源:
certificates.certmanager.k8s.io,
challenges.certmanager.k8s.io,
clusterissuers.certmanager.k8s.io,
issuers.certmanager.k8s.io 和
orders.certmanager.k8s.io
.. 而 istio 负责定期协调它们。这意味着如果您手动删除它们,它们将自动重新创建。
您可以通过创建一个启用 istio 的示例集群然后 运行 以下命令来验证这一点:
~$ kubectl 获取 apiservices
~$ kubectl get customresourcedefinitions.apiextensions.k8s.io, and
~$ kubectl describe customresourcedefinitions.apiextensions.k8s.io certificates.certmanager.k8s.io
有一个标签为“addonmanager.kubernetes.io/mode=Reconcile”的插件,根据定义,它会定期协调,这就是为什么 CRD(由 Istio 管理)不断被重新创建的原因。详情可以参考这篇URL。请在删除之前尝试禁用插件。"
我正在尝试升级我的 kubernetes 集群中的证书管理器。目前安装的版本是 crd 名称更改前的版本,我正在尝试清理旧的 CRD。
> kubectl get crd | grep certmanager.k8s.io
certificates.certmanager.k8s.io 2020-01-31T08:25:56Z
challenges.certmanager.k8s.io 2020-01-31T08:25:56Z
clusterissuers.certmanager.k8s.io 2020-01-31T08:25:58Z
issuers.certmanager.k8s.io 2020-01-31T08:25:03Z
orders.certmanager.k8s.io 2020-01-31T08:25:08Z
识别出 crds 后,我将其删除:
> kubectl delete customresourcedefinition certificates.certmanager.k8s.io challenges.certmanager.k8s.io clusterissuers.certmanager.k8s.io issuers.certmanager.k8s.io orders.certmanager.k8s.io
customresourcedefinition.apiextensions.k8s.io "certificates.certmanager.k8s.io" deleted
customresourcedefinition.apiextensions.k8s.io "challenges.certmanager.k8s.io" deleted
customresourcedefinition.apiextensions.k8s.io "clusterissuers.certmanager.k8s.io" deleted
customresourcedefinition.apiextensions.k8s.io "issuers.certmanager.k8s.io" deleted
customresourcedefinition.apiextensions.k8s.io "orders.certmanager.k8s.io" deleted
删除后 kubectl get crd | grep certmanager.k8s.io
显示没有 crds,但大约 30 秒后它们会重新生成。我需要在哪里查看以确定导致它们再生的原因。
已删除所有其他证书管理器资源。
这是因为我似乎无法 view/edit/delete 新 CRD 中的资源,但应用更改会更新(隐藏的)资源。
您遇到的行为可能是由 Istio 插件引起的。在集群中启用 Istio 时,将创建以下资源:
certificates.certmanager.k8s.io,
challenges.certmanager.k8s.io,
clusterissuers.certmanager.k8s.io,
issuers.certmanager.k8s.io 和
orders.certmanager.k8s.io
.. 而 istio 负责定期协调它们。这意味着如果您手动删除它们,它们将自动重新创建。
您可以通过创建一个启用 istio 的示例集群然后 运行 以下命令来验证这一点:
~$ kubectl 获取 apiservices
~$ kubectl get customresourcedefinitions.apiextensions.k8s.io, and
~$ kubectl describe customresourcedefinitions.apiextensions.k8s.io certificates.certmanager.k8s.io
有一个标签为“addonmanager.kubernetes.io/mode=Reconcile”的插件,根据定义,它会定期协调,这就是为什么 CRD(由 Istio 管理)不断被重新创建的原因。详情可以参考这篇URL。请在删除之前尝试禁用插件。"