为Istio入口网关负载均衡器服务分配静态公共IP

时间:2019-11-01 12:52:04

标签: istio azure-aks static-ip-address azure-load-balancer

如您所知,通过安装Istio,它会创建一个带有publicIP的kubernetes负载平衡器,并将该公共IP用作istio-ingress-gateway LoadBalancer服务的外部IP。由于IP不是静态的,因此我在Azure中创建了一个静态公共IP,该IP与AKS在同一ResourceGroup中,我发现资源组名称如下:

 $ az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv

https://docs.microsoft.com/en-us/azure/aks/ingress-static-ip

我尝试通过以下命令重新安装istio:

$ helm template install/kubernetes/helm/istio --name istio --namespace istio-system --set grafana.enabled=true --set prometheus.enabled=true --set tracing.enabled=true --set kiali.enabled=true --set gateways.istio-ingressgateway.loadBalancerIP= my-static-public-ip | kubectl apply -f -

但是不管用,还是获得了动态IP。因此,我尝试在文件上设置我的静态公共IP: istio-demo.yaml,istio-demo-auth.yaml,方法是在istio-ingressgateway下添加负载均衡器IP:

spec:
type: LoadBalancer
loadBalancerIP: my-staticPublicIP

另外一个文件:values-istio-gteways.yaml

 loadBalancerIP: "mystaticPublicIP"
 externalIPs: ["mystaticPublicIP"]

然后使用上述helm命令重新安装istio。这次,它将mystaticPublicIP添加为istio-ingress-gateway负载均衡器服务的External_IP之一。因此,现在它既具有动态IP又具有mystaticPublicIP。 这似乎不是正确的方法。

我浏览了该网站下的相关问题,并用谷歌搜索,但没有一个可以帮助您。

我想知道是否有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我可以使用以下命令将静态公共IP成功分配给Istio网关服务

helm template install/kubernetes/helm --name istio --namespace istio-system --set gateways.istio-ingressgateway.loadBalancerIP=my-static-public-ip | kubectl apply -f –