Kubenetes ApiService регенерируется после удаления - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь обновить cert-manager в моем кластере kubernetes. В настоящее время установленная версия была предварительно изменена, и я пытаюсь очистить старые 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 секунд они регенерируются. Где мне нужно искать, чтобы определить, что заставляет их регенерировать.

Все остальные ресурсы диспетчера сертификатов были удалены.

Это произошло потому, что я, кажется, не могу просматривать / редактировать / удалять ресурсы в новом CRD, но применение изменений обновляет (скрытый) ресурс.

1 Ответ

1 голос
/ 31 января 2020

Поведение, которое вы испытываете, вероятно, вызвано дополнением Istio. Когда Istio включен в кластере, создаются следующие ресурсы:

Certificates.certmanager.k8s.io,

challenge.certmanager.k8s.io,

clusterissuers. certmanager.k8s.io,

эмитентов.certmanager.k8s.io и

orders.certmanager.k8s.io

.. и istio отвечает за их согласование периодически. Это означает, что если вы удалите их вручную, они будут автоматически воссозданы.

Вы можете убедиться в этом, создав образец кластера с включением istio, а затем выполните следующую команду:

~ $ kubectl get apiservices

~ $ kubectl get customresourcedefinitions.apiextensions.k8s.io и

~ $ kubectl описывают customresourcedefinitions.apiextensions.k8s.io сертификаты.certmanager.k8s.io

Есть аддон с меткой «addonmanager.kubernetes.io/mode=Reconcile», который по определению периодически согласовывается, и это является причиной того, что CRD (управляемый Istio) продолжал обновляться. Для получения подробной информации вы можете обратиться к этому URL . Пожалуйста, попробуйте отключить надстройку перед удалением. "

...