我正在fluxcd
正常工作的Azure AKS群集上运行。我正在尝试通过fluxcd CDR HelmRelease配置nginx-ingress
图表。专门告诉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"
为了使事情变得容易,我还尝试了一个IP,该IP与AKS节点直接存在于同一资源组中(无济于事)。顺便说一句:迄今为止没有任何错误。它只是忽略该属性并创建一个新的IP。
有趣的是,即使ip不在同一个资源组中,这种情况下,直接释放带有舵3的相同图表(因此没有fluxcd)也能完美地工作:
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.8fluxcd / flux图像标签:1.17.0本地头盔版本: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