我正在运行正常的 Azure AKS 群集fluxcd
。我正在尝试nginx-ingress
通过fluxcd CDR HelmRelease 配置图表。特别是告诉 nginx-ingress 使用位于另一个资源组中的已创建静态公共 IP 作为 AKS 节点资源组。
基础 AKS 服务主体对 ip 所在的资源组具有网络参与者角色。
使用以下 HelmRelease 配置文件时,将忽略 loadBalancerIP 属性(以及任何注释),并在 azure 中创建一个新的公共 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"
为了让事情变得更容易,我还尝试使用与 AKS 节点直接存在于同一资源组中的 ip(无济于事)。顺便说一句:从来没有错误。它只是忽略该属性并创建一个新的 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