删除处于 "terminating" 状态的 linkerd kubernetes 命名空间
Delete linkerd kubernetes namespace in "terminating" status
这是资源状态:
kind: Namespace
api
Version: v1
metadata:
name: linkerd
selfLink: /api/v1/namespaces/linkerd
uid: e7337b2b-bddb-4344-a986-d450973bc8cf
resourceVersion: '5540346'
creationTimestamp: '2020-05-10T13:49:21Z'
deletionTimestamp: '2020-06-03T20:16:30Z'
labels:
config.linkerd.io/admission-webhooks: disabled
linkerd.io/is-control-plane: 'true'
spec:
finalizers:
- kubernetes
status:
phase: Terminating
conditions:
- type: NamespaceDeletionDiscoveryFailure
status: 'True'
lastTransitionTime: '2020-06-03T20:16:44Z'
reason: DiscoveryFailed
message: >-
Discovery failed for some groups, 1 failing: unable to retrieve the
complete list of server APIs: tap.linkerd.io/v1alpha1: the server is
currently unable to handle the request
- type: NamespaceDeletionGroupVersionParsingFailure
status: 'False'
lastTransitionTime: '2020-06-03T20:16:38Z'
reason: ParsedGroupVersions
message: All legacy kube types successfully parsed
- type: NamespaceDeletionContentFailure
status: 'False'
lastTransitionTime: '2020-06-03T20:16:38Z'
reason: ContentDeleted
message: 'All content successfully deleted, may be waiting on finalization'
- type: NamespaceContentRemaining
status: 'False'
lastTransitionTime: '2020-06-03T20:16:57Z'
reason: ContentRemoved
message: All content successfully removed
- type: NamespaceFinalizersRemaining
status: 'False'
lastTransitionTime: '2020-06-03T20:16:38Z'
reason: ContentHasNoFinalizers
message: All content-preserving finalizers finished
API 服务:
$ kubectl get apiservice
NAME SERVICE AVAILABLE AGE
v1. Local True 28d
v1.admissionregistration.k8s.io Local True 28d
v1.apiextensions.k8s.io Local True 28d
v1.apps Local True 28d
v1.authentication.k8s.io Local True 28d
v1.authorization.k8s.io Local True 28d
v1.autoscaling Local True 28d
v1.batch Local True 28d
v1.coordination.k8s.io Local True 28d
v1.networking.k8s.io Local True 28d
v1.rbac.authorization.k8s.io Local True 28d
v1.scheduling.k8s.io Local True 28d
v1.storage.k8s.io Local True 28d
v1alpha1.linkerd.io Local True 18d
v1alpha1.snapshot.storage.k8s.io Local True 28d
v1alpha1.split.smi-spec.io Local True 18d
v1alpha1.tap.linkerd.io linkerd/linkerd-tap False (ServiceNotFound) 24d
v1alpha2.acme.cert-manager.io Local True 18d
v1alpha2.cert-manager.io Local True 18d
v1alpha2.linkerd.io Local True 18d
v1beta1.admissionregistration.k8s.io Local True 28d
v1beta1.apiextensions.k8s.io Local True 28d
v1beta1.authentication.k8s.io Local True 28d
v1beta1.authorization.k8s.io Local True 28d
v1beta1.batch Local True 28d
v1beta1.certificates.k8s.io Local True 28d
v1beta1.coordination.k8s.io Local True 28d
v1beta1.discovery.k8s.io Local True 18d
v1beta1.events.k8s.io Local True 28d
v1beta1.extensions Local True 28d
v1beta1.networking.k8s.io Local True 28d
v1beta1.node.k8s.io Local True 28d
v1beta1.policy Local True 28d
v1beta1.rbac.authorization.k8s.io Local True 28d
v1beta1.scheduling.k8s.io Local True 28d
v1beta1.storage.k8s.io Local True 28d
v2.cilium.io Local True 18d
v2beta1.autoscaling Local True 28d
v2beta2.autoscaling Local True 28d
我尝试删除终结器,但什么也没做。
还尝试用 --grace-period=0 --force
删除仍然没有。
它不显示命名空间下的任何资源。
我还能做些什么来强制删除?
您遇到的错误是由 api 服务 v1alpha1.tap.linkerd.io
不工作 (ServiceNotFound
) 引起的。很难说是什么原因造成的,但我可以看到两种解决方法:
如果您不需要那个 API 而不是简单地删除它:kubectl delete apiservice v1alpha1.tap.linkerd.io
.
如果需要,可以尝试删除相关的pods重启一下看看有没有用
之后您应该可以删除您提到的命名空间。
如果有帮助,请告诉我。
您可以 运行 linkerd uninstall | kubectl delete -f -
它将按正确的顺序删除资源,因此不会发生此错误。
这是资源状态:
kind: Namespace
api
Version: v1
metadata:
name: linkerd
selfLink: /api/v1/namespaces/linkerd
uid: e7337b2b-bddb-4344-a986-d450973bc8cf
resourceVersion: '5540346'
creationTimestamp: '2020-05-10T13:49:21Z'
deletionTimestamp: '2020-06-03T20:16:30Z'
labels:
config.linkerd.io/admission-webhooks: disabled
linkerd.io/is-control-plane: 'true'
spec:
finalizers:
- kubernetes
status:
phase: Terminating
conditions:
- type: NamespaceDeletionDiscoveryFailure
status: 'True'
lastTransitionTime: '2020-06-03T20:16:44Z'
reason: DiscoveryFailed
message: >-
Discovery failed for some groups, 1 failing: unable to retrieve the
complete list of server APIs: tap.linkerd.io/v1alpha1: the server is
currently unable to handle the request
- type: NamespaceDeletionGroupVersionParsingFailure
status: 'False'
lastTransitionTime: '2020-06-03T20:16:38Z'
reason: ParsedGroupVersions
message: All legacy kube types successfully parsed
- type: NamespaceDeletionContentFailure
status: 'False'
lastTransitionTime: '2020-06-03T20:16:38Z'
reason: ContentDeleted
message: 'All content successfully deleted, may be waiting on finalization'
- type: NamespaceContentRemaining
status: 'False'
lastTransitionTime: '2020-06-03T20:16:57Z'
reason: ContentRemoved
message: All content successfully removed
- type: NamespaceFinalizersRemaining
status: 'False'
lastTransitionTime: '2020-06-03T20:16:38Z'
reason: ContentHasNoFinalizers
message: All content-preserving finalizers finished
API 服务:
$ kubectl get apiservice
NAME SERVICE AVAILABLE AGE
v1. Local True 28d
v1.admissionregistration.k8s.io Local True 28d
v1.apiextensions.k8s.io Local True 28d
v1.apps Local True 28d
v1.authentication.k8s.io Local True 28d
v1.authorization.k8s.io Local True 28d
v1.autoscaling Local True 28d
v1.batch Local True 28d
v1.coordination.k8s.io Local True 28d
v1.networking.k8s.io Local True 28d
v1.rbac.authorization.k8s.io Local True 28d
v1.scheduling.k8s.io Local True 28d
v1.storage.k8s.io Local True 28d
v1alpha1.linkerd.io Local True 18d
v1alpha1.snapshot.storage.k8s.io Local True 28d
v1alpha1.split.smi-spec.io Local True 18d
v1alpha1.tap.linkerd.io linkerd/linkerd-tap False (ServiceNotFound) 24d
v1alpha2.acme.cert-manager.io Local True 18d
v1alpha2.cert-manager.io Local True 18d
v1alpha2.linkerd.io Local True 18d
v1beta1.admissionregistration.k8s.io Local True 28d
v1beta1.apiextensions.k8s.io Local True 28d
v1beta1.authentication.k8s.io Local True 28d
v1beta1.authorization.k8s.io Local True 28d
v1beta1.batch Local True 28d
v1beta1.certificates.k8s.io Local True 28d
v1beta1.coordination.k8s.io Local True 28d
v1beta1.discovery.k8s.io Local True 18d
v1beta1.events.k8s.io Local True 28d
v1beta1.extensions Local True 28d
v1beta1.networking.k8s.io Local True 28d
v1beta1.node.k8s.io Local True 28d
v1beta1.policy Local True 28d
v1beta1.rbac.authorization.k8s.io Local True 28d
v1beta1.scheduling.k8s.io Local True 28d
v1beta1.storage.k8s.io Local True 28d
v2.cilium.io Local True 18d
v2beta1.autoscaling Local True 28d
v2beta2.autoscaling Local True 28d
我尝试删除终结器,但什么也没做。
还尝试用 --grace-period=0 --force
删除仍然没有。
它不显示命名空间下的任何资源。
我还能做些什么来强制删除?
您遇到的错误是由 api 服务 v1alpha1.tap.linkerd.io
不工作 (ServiceNotFound
) 引起的。很难说是什么原因造成的,但我可以看到两种解决方法:
如果您不需要那个 API 而不是简单地删除它:
kubectl delete apiservice v1alpha1.tap.linkerd.io
.如果需要,可以尝试删除相关的pods重启一下看看有没有用
之后您应该可以删除您提到的命名空间。
如果有帮助,请告诉我。
您可以 运行 linkerd uninstall | kubectl delete -f -
它将按正确的顺序删除资源,因此不会发生此错误。