首页 新闻 会员 周边

helm 安装 ingress-nginx 报错

0
悬赏园豆:30 [已解决问题] 解决于 2022-02-04 18:08

根据 ingress-nginx 的 Installation Guide 使用下面的命令安装 ingress-nginx

helm upgrade --install ingress-nginx ingress-nginx \ 
  --repo https://kubernetes.github.io/ingress-nginx \
  --namespace ingress-nginx --create-namespace

报错

Error: create: failed to create: secrets "sh.helm.release.v1.ingress-nginx.v1" is forbidden: unable to create new content in namespace ingress-nginx because it is being terminated

请问如何解决?kubernetes 版本是 1.23.3,helm 版本是 3.7.1

dudu的主页 dudu | 高人七级 | 园豆:30994
提问于:2022-02-04 17:32
< >
分享
最佳答案
0

再次运行同样的命令,问题竟然消失了。

运行下面的命令没发现相关的 secret(输出为空)

kubectl get secret --all-namespaces -l "owner=helm" | grep ingress-nginx
dudu | 高人七级 |园豆:30994 | 2022-02-04 17:41

用下面的命令安装再次出现这个问题

helm install ingress-nginx bitnami/nginx-ingress-controller --namespace ingress-nginx 
dudu | 园豆:30994 (高人七级) | 2022-02-04 17:51

原来是 ingress-nginx 处于 Terminating 状态引起的

$ kubectl get namespace | grep nginx           
ingress-nginx         Terminating   715d
dudu | 园豆:30994 (高人七级) | 2022-02-04 17:53

强制删除也删除不了

kubectl delete namespace ingress-nginx --force --grace-period 0
dudu | 园豆:30994 (高人七级) | 2022-02-04 17:55

通过 stackoverflow 上 "Namespace "stuck" as Terminating, How I removed it" 的回答中的方法解决了:

1)导出 ingress-nginx 命名空间的清单文件

$ kubectl get namespace ingress-nginx -o json > ingress-nginx.json

2)从导出的 ingress-nginx.json 文件中移除 finalizers 部分的 kubernetes

"spec": {
    "finalizers": [
    ]

3)用修改后的清单文件替换 ingress-nginx 命名空间的配置

kubectl replace --raw "/api/v1/namespaces/ingress-nginx/finalize" -f ingress-nginx.json

搞定!

dudu | 园豆:30994 (高人七级) | 2022-02-04 18:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册