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

问题描述

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

当前,Istio控制器与公共负载平衡器IP相关联。我想使用内部负载平衡器配置Istio。我将使用从公共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中选择一个未使用的IP(例如10.30.09.20)并添加:

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...