nginx-ingress fluxcd HelmRelease 中的 loadBalancerIP 和注释在 azure AKS 上被忽略
loadBalancerIP and annotations in nginx-ingress fluxcd HelmRelease are ignored on azure AKS
我在 Azure AKS 集群上运行,其中 fluxcd
工作正常。
我正在尝试通过 fluxcd CDR HelmRelease 配置 nginx-ingress
图表。专门告诉 nginx-ingress 使用已经创建的静态 public IP,它位于另一个资源组中作为 AKS 节点资源组。
基础 AKS 服务主体在 ip 所在的资源组上具有网络贡献者角色。
使用以下 HelmRelease 配置文件时,将忽略 loadBalancerIP 属性(以及任何注释),并在 azure 中创建一个新的 public IP 并将其分配给 azure 负载均衡器。
apiVersion: helm.fluxcd.io/v1
kind: HelmRelease
metadata:
name: helm-nginx-ingress
namespace: nginx-ingress
spec:
releaseName: nginx-ingress
targetNamespace: nginx-ingress
chart:
repository: https://kubernetes-charts.storage.googleapis.com/
name: nginx-ingress
version: 1.24.4
values:
controller.service:
loadBalancerIP: "12.234.162.41"
annotations:
service.beta.kubernetes.io/azure-load-balancer-resource-group: "name-of-resource-group"
为了让事情更简单,我还尝试了一个 ip,它直接存在于与 AKS 节点相同的资源组中(无济于事)。顺便说一句:从来没有错误。它只是忽略 属性 并创建一个新的 ip。
有趣的是,直接使用 helm 3 发布相同的图表(因此没有 fluxcd)工作完美,即使 ip 不在同一资源组的特殊情况也是如此:
helm upgrade nginx-ingress --install --wait --namespace nginx-ingress \
--set controller.service.loadBalancerIP="12.234.162.41" \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-resource-group"="name-of-resource-group" \
stable/nginx-ingress
所以我猜问题出在 CDR HelmRelease 和值规范的翻译上。有人遇到过类似的问题吗?
AKS Kubernetes 版本:v1.14.8
fluxcd/flux 图片标签:1.17.0
本地 Helm 版本:v3.0.3
应该是这样的:
values:
controller:
service:
loadBalancerIP: "12.234.162.41"
xxx
https://github.com/helm/charts/blob/master/stable/nginx-ingress/values.yaml#L246
我在 Azure AKS 集群上运行,其中 fluxcd
工作正常。
我正在尝试通过 fluxcd CDR HelmRelease 配置 nginx-ingress
图表。专门告诉 nginx-ingress 使用已经创建的静态 public IP,它位于另一个资源组中作为 AKS 节点资源组。
基础 AKS 服务主体在 ip 所在的资源组上具有网络贡献者角色。
使用以下 HelmRelease 配置文件时,将忽略 loadBalancerIP 属性(以及任何注释),并在 azure 中创建一个新的 public IP 并将其分配给 azure 负载均衡器。
apiVersion: helm.fluxcd.io/v1
kind: HelmRelease
metadata:
name: helm-nginx-ingress
namespace: nginx-ingress
spec:
releaseName: nginx-ingress
targetNamespace: nginx-ingress
chart:
repository: https://kubernetes-charts.storage.googleapis.com/
name: nginx-ingress
version: 1.24.4
values:
controller.service:
loadBalancerIP: "12.234.162.41"
annotations:
service.beta.kubernetes.io/azure-load-balancer-resource-group: "name-of-resource-group"
为了让事情更简单,我还尝试了一个 ip,它直接存在于与 AKS 节点相同的资源组中(无济于事)。顺便说一句:从来没有错误。它只是忽略 属性 并创建一个新的 ip。
有趣的是,直接使用 helm 3 发布相同的图表(因此没有 fluxcd)工作完美,即使 ip 不在同一资源组的特殊情况也是如此:
helm upgrade nginx-ingress --install --wait --namespace nginx-ingress \
--set controller.service.loadBalancerIP="12.234.162.41" \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-resource-group"="name-of-resource-group" \
stable/nginx-ingress
所以我猜问题出在 CDR HelmRelease 和值规范的翻译上。有人遇到过类似的问题吗?
AKS Kubernetes 版本:v1.14.8
fluxcd/flux 图片标签:1.17.0
本地 Helm 版本:v3.0.3
应该是这样的:
values:
controller:
service:
loadBalancerIP: "12.234.162.41"
xxx
https://github.com/helm/charts/blob/master/stable/nginx-ingress/values.yaml#L246