微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在 Azure k8s 集群中使用带有自定义类的 helm 创建第二个入口控制器

如何解决无法在 Azure k8s 集群中使用带有自定义类的 helm 创建第二个入口控制器

我使用 Helm 和认配置创建了一个入口控制器

default        nginx-ingress-controller        LoadBalancer   10.0.182.128   xx.xxx.xx.90     80:32485/TCP,443:31756/TCP   62m
default        nginx-ingress-default-backend   ClusterIP      10.0.12.39     <none>           80/TCP                       62m

使用头盔:

helm install nginx-ingress stable/nginx-ingress \         
--set controller.replicaCount=2 \     
--set controller.nodeselector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeselector."beta\.kubernetes\.io/os"=linux \
--set controller.service.loadBalancerIP="Created static IP" \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-dns-label-name"="XXX-aks-ingress"

此入口在认命名空间中运行。

现在,我想添加第二个入口控制器,从官方文档中我有特定的入口类

helm install nginx-ingress stable/nginx-ingress \     
--namespace ingress-Nginx-devices \ #I create this namespace first 
--set controller.ingressClass="Nginx-devices" \   # custom class to use for different ingress resources  
--set controller.replicaCount=2 \     
--set controller.nodeselector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeselector."beta\.kubernetes\.io/os"=linux \
--set controller.service.loadBalancerIP="A second static Ip address created before" \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-dns-label-name"="serviceIot-aks-ingress-iot"

但我不断收到此错误

Error: rendered manifests contain a resource that already exists. Unable to continue with install: ClusterRole "nginx-ingress" in namespace "" exists and cannot be imported into the current release: invalid ownership Metadata; annotation validation error: key "Meta.helm.sh/release-namespace" must equal "ingress-Nginx-devices": current value is "default"

这里有什么问题? 任何帮助表示赞赏:)

解决方法

你可以试试,我们改变的是名称:nginx-ingress-devices 而不是 nginx-ingress

helm install nginx-ingress-devices stable/nginx-ingress \     
--namespace ingress-nginx-devices \ #I create this namespace first 
--set controller.ingressClass="nginx-devices" \   # custom class to use for different ingress resources  
--set controller.replicaCount=2 \     
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set controller.service.loadBalancerIP="A second static Ip address created before" \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-dns-label-name"="serviceIot-aks-ingress-iot"

您收到的错误是由于已经存在同名的集群角色:nginx-ingress,因为您收到了错误。

ClusterRoleBindings 授予用户、组或服务帐户 ClusterRole 在整个集群中的权力。

您可以在此处获取参考文件:https://github.com/helm/charts/blob/master/stable/nginx-ingress/templates/clusterrole.yaml

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。