0

我正在运行正常的 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

4

1 回答 1

1

应该是这样的:

values:
  controller:
    service:
      loadBalancerIP: "12.234.162.41"
      xxx

https://github.com/helm/charts/blob/master/stable/nginx-ingress/values.yaml#L246

于 2020-02-02T08:09:13.293 回答