public云服务如何设置内部环境?
How to set internal environment with public cloud service?
对于 Microsoft Azure 云,使用 AKS 服务,我们希望部署一个只能由我们团队访问的内部应用程序。
这种情况:
- 使用 public 域 myawesomesite.com 进行生产。
- 使用内部子域。myawesomesite.com 进行暂存。 (限制访问)
即使使用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
对于 Microsoft Azure 云,使用 AKS 服务,我们希望部署一个只能由我们团队访问的内部应用程序。
这种情况:
- 使用 public 域 myawesomesite.com 进行生产。
- 使用内部子域。myawesomesite.com 进行暂存。 (限制访问)
即使使用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