无法完全删除Kubernetes CustomResource

无法完全删除Kubernetes CustomResource,kubernetes,kubeless,Kubernetes,Kubeless,删除自定义资源定义时遇到问题。 我正在尝试将kubeless从v1.0.0-alpha.7升级到v1.0.0-alpha.8 我试图通过执行以下操作删除所有创建的自定义资源 $kubectl删除-f kubeless-v1.0.0-alpha.7.yaml 删除部署“kubeless控制器管理器” 已删除serviceaccount“控制器帐户” 集群角色“kubeless控制器部署器”已删除 clusterrolebinding“kubeless控制器部署器”已删除 customresourc

删除自定义资源定义时遇到问题。 我正在尝试将kubeless从v1.0.0-alpha.7升级到v1.0.0-alpha.8

我试图通过执行以下操作删除所有创建的自定义资源

$kubectl删除-f kubeless-v1.0.0-alpha.7.yaml
删除部署“kubeless控制器管理器”
已删除serviceaccount“控制器帐户”
集群角色“kubeless控制器部署器”已删除
clusterrolebinding“kubeless控制器部署器”已删除
customresourcedefinition“functions.kubeless.io”已删除
customresourcedefinition“httptriggers.kubeless.io”已删除
customresourcedefinition“cronjobtriggers.kubeless.io”已删除
已删除configmap“kubeless配置”
但当我尝试时

$kubectl获取customresourcedefinition
姓名年龄
functions.kubeless.io 21d
正因为如此,当我下一次尝试升级时

$kubectl create-f kubeless-v1.0.0-alpha.8.yaml
服务器错误(AlreadyExists):创建“kubeless-v1.0.0-alpha.8.yaml”时出错:正在删除对象:customresourcedefinitions.apiextensions.k8s.io“functions.kubeless.io”已存在
我认为由于函数定义中的这种不匹配,hello world示例失败了

$kubeless函数部署hellopy——运行时python2.7——来自文件test.py——handler test.hello
信息[0000]正在部署功能。。。
FATA[0000]未能部署hellopy。收到:
服务器不允许在请求的资源上使用此方法(post functions.kubeless.io)
最后,这里是

$kubectl描述customresourcedefinitions.apiextensions.k8s.io
名称:functions.kubeless.io
名称空间:
标签:
注释:kubectl.kubernetes.io/last applicated configuration={“apiVersion”:“apiextensions.k8s.io/v1beta1”,“description”:“kubernetes Native Serverless Framework”,“kind”:“CustomResourceDefinition”,“metadata”:{“anno…”。。。
API版本:apiextensions.k8s.io/v1beta1
种类:CustomResourceDefinition
元数据:
创建时间戳:2018-08-02T17:22:07Z
删除宽限期秒:0
删除时间戳:2018-08-24T17:15:39Z
定稿人:
customresourcecleanup.apieExtensions.k8s.io
世代:1
资源版本:99792247
自链接:/api/apiextensions.k8s.io/v1beta1/customresourcedefinitions/functions.kubeless.io
UID:951713a6-9678-11e8-bd68-0a34b6111990
规格:
组别:kubeless.io
姓名:
种类:功能
列表种类:FunctionList
复数:功能
单数:函数
作用域:命名空间
版本:v1beta1
地位:
认可名称:
种类:功能
列表种类:FunctionList
复数:功能
单数:函数
条件:
最后转换时间:2018-08-02T17:22:07Z
消息:未找到冲突
原因:没有冲突
状态:正确
类型:接受名称
最后转换时间:2018-08-02T17:22:07Z
消息:已接受初始名称
原因:接受初始名称
状态:正确
类型:已建立
最后转换时间:2018-08-23T13:29:45Z
消息:正在删除CustomResource
原因:InstanceDeleteInProgress
状态:正确
类型:终止
活动:

事实证明,根本原因是带有终结器的自定义资源可能会“死锁”。 CustomResource“functions.kubeless.io”有一个

终结器:
customresourcecleanup.apiextensions.k8s.io

这是在删除时可能使其处于不良状态


我按照中提到的步骤操作,现在它被删除了。希望这能帮助其他遇到此问题的人。

在我的例子中,我删除了自定义资源对象,但没有删除自定义资源定义(CRD)

我用:
kubectl delete-f resourcedefinition.yaml
修复了它。在该文件中,我定义了我的CRD

因此,我认为最好的做法不是手动删除自定义对象,而是删除定义对象和CRD的文件。

$kc get CRD
创建于的名称
AccessControlPolicys.networking.zephyr.solo.io 2020-04-22T12:58:39Z
istioperators.install.istio.io 2020-04-22T13:49:20Z
kubernetesclusters.discovery.zephyr.solo.io 2020-04-22T12:58:39Z
伊奥2020-04-22T12:58:39Z
meshservices.discovery.zephyr.solo.io 2020-04-22T12:58:39Z
meshworkloads.discovery.zephyr.solo.io 2020-04-22T12:58:39Z
交通政策.networking.zephyr.solo.io 2020-04-22T12:58:39Z
virtualmeshcertificatesigningrequests.security.zephyr.solo.io 2020-04-22T12:58:39Z
virtualmesh.networking.zephyr.solo.io 2020-04-22T12:58:39Z
结果 尝试:


在尝试强制删除后解决了我的问题。

我必须摆脱一些其他东西

kubectl get mutatingwebhookconfiguration | ack consol | awk{print$1}| xargs-I{}kubectl delete mutatingwebhookconfiguration{}

kubectl get clusterrolebinding | ack consol | awk{print$1}| xargs-I{}kubectl delete clusterrolebinding{}


kubectl get clusterrolebinding | ack consol | awk{print$1}| xargs-I{}kubectl delete clusterrole{}

它说CustomResource删除正在进行中,但没有被删除。状态没有变化。是不是--force帮助资源处于删除/终止或其他一些状态?可能添加--grace period=0$ kubectl delete crd istiooperators.install.istio.io delete error $ kubectl patch crd/istiooperators.install.istio.io -p '{"metadata":{"finalizers":[]}}' --type=merge success delete crd istiooperators.install.istio.io
NAME                                                            CREATED AT
accesscontrolpolicies.networking.zephyr.solo.io                 2020-04-22T12:58:39Z
kubernetesclusters.discovery.zephyr.solo.io                     2020-04-22T12:58:39Z
meshes.discovery.zephyr.solo.io                                 2020-04-22T12:58:39Z
meshservices.discovery.zephyr.solo.io                           2020-04-22T12:58:39Z
meshworkloads.discovery.zephyr.solo.io                          2020-04-22T12:58:39Z
trafficpolicies.networking.zephyr.solo.io                       2020-04-22T12:58:39Z
virtualmeshcertificatesigningrequests.security.zephyr.solo.io   2020-04-22T12:58:39Z
virtualmeshes.networking.zephyr.solo.io                         2020-04-22T12:58:39Z
oc patch some.crd/crd_name -p '{"metadata":{"finalizers":[]}}' --type=merge