在同一 AKS 群集中安装多个 nginx 入口控制器实例
Installing multiple nginx ingress controller instances in the same AKS cluster
我有一个全新的(空的)AKS 集群。我想使用 helm 在不同的命名空间和不同的入口 class 安装 nginx 入口控制器的两个实例。
我从第一个开始:
helm install ingress1 ingress-nginx/ingress-nginx --namespace namespace1 --set controller.ingressClass=class1
NAME: ingress1
LAST DEPLOYED: Fri Sep 24 20:46:28 2021
NAMESPACE: namespace1
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The ingress-nginx controller has been installed.
It may take a few minutes for the LoadBalancer IP to be available.
一切顺利
现在我选择第二个:
helm install ingress2 ingress-nginx/ingress-nginx --namespace namespace2 --set controller.ingressClass=class2
Error: rendered manifests contain a resource that already exists. Unable to continue with install: IngressClass "nginx" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "ingress2": current value is "ingress1"; annotation validation error: key "meta.helm.sh/release-namespace" must equal "namespace2": current value is "namespace1"
在同一集群中安装多个 nginx ingress controller 实例的正确方法是什么?
我认为您设置了错误的值,因此 class 名称在两个安装中都是 nginx
。看看这里的模板:controller-ingressclass
如果您使用的是官方 ingress-nginx Helm 存储库:https://kubernetes.github.io/ingress-nginx
然后尝试设置为:controller.ingressClassResource.name=class1|class2
而不是:
helm install ingress1 ingress-nginx/ingress-nginx --namespace namespace1 --set controller.ingressClassResource.name=class1
helm install ingress2 ingress-nginx/ingress-nginx --namespace namespace2 --set controller.ingressClassResource.name=class2
根据您的需要,您可能还需要更改其他值of the ingressClassResource
我有一个全新的(空的)AKS 集群。我想使用 helm 在不同的命名空间和不同的入口 class 安装 nginx 入口控制器的两个实例。
我从第一个开始:
helm install ingress1 ingress-nginx/ingress-nginx --namespace namespace1 --set controller.ingressClass=class1
NAME: ingress1
LAST DEPLOYED: Fri Sep 24 20:46:28 2021
NAMESPACE: namespace1
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The ingress-nginx controller has been installed.
It may take a few minutes for the LoadBalancer IP to be available.
一切顺利
现在我选择第二个:
helm install ingress2 ingress-nginx/ingress-nginx --namespace namespace2 --set controller.ingressClass=class2
Error: rendered manifests contain a resource that already exists. Unable to continue with install: IngressClass "nginx" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "ingress2": current value is "ingress1"; annotation validation error: key "meta.helm.sh/release-namespace" must equal "namespace2": current value is "namespace1"
在同一集群中安装多个 nginx ingress controller 实例的正确方法是什么?
我认为您设置了错误的值,因此 class 名称在两个安装中都是 nginx
。看看这里的模板:controller-ingressclass
如果您使用的是官方 ingress-nginx Helm 存储库:https://kubernetes.github.io/ingress-nginx
然后尝试设置为:controller.ingressClassResource.name=class1|class2
而不是:
helm install ingress1 ingress-nginx/ingress-nginx --namespace namespace1 --set controller.ingressClassResource.name=class1
helm install ingress2 ingress-nginx/ingress-nginx --namespace namespace2 --set controller.ingressClassResource.name=class2
根据您的需要,您可能还需要更改其他值of the ingressClassResource