如何删除 kubernetes 上的入口控制器?

问题描述 投票:0回答:3

我有一个 Kubernetes 集群,其中有多个入口控制器。我已经删除了一个入口控制器的源文件。如何删除我不再想要的入口控制器?

nginx kubernetes kubernetes-ingress nginx-ingress
3个回答
48
投票

首先,您可以在没有清单文件的情况下执行以下步骤:

  1. 获取您的入口控制器安装的命名空间
   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

20
投票

删除入口不仅仅意味着删除服务、部署。我们需要删除 ingressController 创建的 webhooks 和自定义资源。这样,你就可以以一种无缝的方式安装另一个 ingressController,否则你会像我一样资源已经存在异常。

因此,对 Sameh Ammar 所说的补充几点: 获取要删除的入口的命名空间

kubectl get ns

整体删除命名空间

kubectl delete all  --all -n ingress-nginx

检查并删除ingressClass

kubectl delete ingressClass nginx

您可以使用

获取所有ingressClass
kubectl get ingressClass -A

检查并删除验证网络钩子,

kubectl delete ValidatingWebhookConfiguration ingress-nginx-admission

(就我而言)

您可以使用

获取所有验证网络钩子
kubectl get ValidatingWebhookConfiguration

这应该可以让你像魅力一样安装和使用新的入口控制器。


0
投票

如果您不在正确的命名空间中,您可以执行以下操作:

kubectl delete ingress ingress-nginx --namespace=<insert-namespace-name-here>
© www.soinside.com 2019 - 2024. All rights reserved.