public云服务如何设置内部环境?

How to set internal environment with public cloud service?

对于 Microsoft Azure 云,使用 AKS 服务,我们希望部署一个只能由我们团队访问的内部应用程序。

这种情况:

即使使用private DNS也只能连接虚拟网络vms

那怎么办?

这是在 AWS 上使用 Calico 的解决方案:

https://docs.aws.amazon.com/eks/latest/userguide/calico.html

您可以在 Azure 中使用内部负载均衡器 (ILB),它就像常规负载均衡器一样,但只有来自部署 AKS 的同一 VNET 的私有 IP(因此,没有 public IP) .它使用注释:

annotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true"

如本文所述article。您可以使用 AzureDNS 将 A 记录指向该 IP。

最后,这是正确的解决方案:

https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx/examples/whitelist

如果使用 nginx-ingress,请使用此设置安装:

helm install stable/nginx-ingress \
    --set controller.service.externalTrafficPolicy=Local