我有一个 Kubernetes 集群,其中有多个入口控制器。我已经删除了一个入口控制器的源文件。如何删除我不再想要的入口控制器?
首先,您可以在没有清单文件的情况下执行以下步骤:
kubectl get ns
例如:ingress-nginx
2-删除此命名空间中的所有资源
kubectl delete all --all -n ingress-nginx
如果您的入口控制器没有安装在专用命名空间中,那么您将必须一一删除资源。
kubectl delete ingress ingress-nginx
kubectl delete deployment ingress-nginx
kubectl delete service ingress-nginx
删除入口不仅仅意味着删除服务、部署。我们需要删除 ingressController 创建的 webhooks 和自定义资源。这样,你就可以以一种无缝的方式安装另一个 ingressController,否则你会像我一样资源已经存在异常。
因此,对 Sameh Ammar 所说的补充几点: 获取要删除的入口的命名空间
kubectl get ns
整体删除命名空间
kubectl delete all --all -n ingress-nginx
检查并删除ingressClass
kubectl delete ingressClass nginx
您可以使用
获取所有ingressClasskubectl get ingressClass -A
检查并删除验证网络钩子,
kubectl delete ValidatingWebhookConfiguration ingress-nginx-admission
(就我而言)
您可以使用
获取所有验证网络钩子kubectl get ValidatingWebhookConfiguration
这应该可以让你像魅力一样安装和使用新的入口控制器。
如果您不在正确的命名空间中,您可以执行以下操作:
kubectl delete ingress ingress-nginx --namespace=<insert-namespace-name-here>