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

Kar*_*mar 2 azure kubernetes istio azure-load-balancer

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

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

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

the*_*dog 8

在 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"
Run Code Online (Sandbox Code Playgroud)

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

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

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

[...]
  k8s:
    serviceAnnotations:
      service.beta.kubernetes.io/azure-load-balancer-internal: "true"
      service.beta.kubernetes.io/azure-load-balancer-ipv4: 10.30.09.20
Run Code Online (Sandbox Code Playgroud)

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

az network vnet check-ip-address -g MyResourceGroup -n MyVnet --ip-address 10.30.09.20
Run Code Online (Sandbox Code Playgroud)