Azure kubernetes - 带有内部负载均衡器的 Istio 控制器

Azure kubernetes - Istio controller with Internal load balancer

我有一个带有 Istio 服务网格的 Azure kubernetes 集群。

目前 Istio 控制器与 public 负载均衡器 IP 相关联。我想使用内部负载均衡器配置 Istio。我将使用 public IP 到内部 LB 的防火墙映射。

如何配置 Istio 控制器以使用内部负载均衡器?

在 istio 1.7 中,您可以使用 IstioOperator.

创建 values.yml:

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  profile: default #or demo
  components:
    ingressGateways:
      - name: istio-ingressgateway
        enabled: true
        k8s:
          serviceAnnotations:
            service.beta.kubernetes.io/azure-load-balancer-internal: "true"

现在使用命令 istioctl install -f values.yml.

安装 istio

入口网关现在将获得一个内部负载均衡器,其中集群 vnet 的 ip 作为外部 ip。通过这种方式,集群只能从 vnet 内部或与集群对等的 vnet 中使用。

如果你想要一个固定的 ip,从群集 VNet 中选择一个未使用的(这里例如 10.30.09.20)并添加:

[...]
  k8s:
    serviceAnnotations:
      service.beta.kubernetes.io/azure-load-balancer-internal: "true"
    service:
      loadBalancerIP: 10.30.09.20

您可以使用 az cli 检查 IP 地址是否为 available/unused:

az network vnet check-ip-address -g MyResourceGroup -n MyVnet --ip-address 10.30.09.20