我在Azure K8S集群中部署了一个应用程序,使用NGINX作为网关,具有公共静态IP,基于AKS & PUBLIC-IP和AKS & NGINX。
现在,我需要在Azure私有集群中部署应用程序,即,在私有vnet (参见CREATE PRIVATE AKS)中运行;尝试将公共静态IP分配给NGINX不起作用,这是可以预期的,因为负载均衡器期望的是私有IP,而不是公共IP。
如何使用NGINX和公网静态IP提供内网集群app的入站访问?
发布于 2020-05-29 07:01:04
正如上面的注释所述,您可以通过Azure中的应用程序网关执行相同的操作。但是如果你打算只使用AKS,你可能只想使用Application Gateway作为你的入口控制器,它已经用私有集群创建了。
请遵循此操作以实现相同的https://microsoft.github.io/AzureTipsAndTricks/blog/tip256.html
发布于 2020-05-29 14:23:41
根据您的描述,我知道您希望通过NGINX入口控制器进行入口流量,NGINX入口控制器具有具有静态IP的负载均衡器服务。如果您的部署配置正确,则应将负载均衡器服务分配给具有公网IP的NGINX入口控制器。由于我不知道您的名称空间,部署的命名等尝试:
kubectl get services --all-namespaces | grep -i loadbalancer您应该可以发现nginx负载均衡器服务有公网IP。现在,由于NGINX是您的入口控制器,这意味着您有一个第7层负载均衡器作为入口,因此您需要创建一个入口路由到在AKS中运行的应用程序。这里有来自Azure NGINX ingress的文档,也有Ingress K8s的文档
发布于 2020-06-03 03:14:49
您好,您有两种方法来根据您的需求实现that...Depending (和Azure成本...):
1-使用Azure Application Gateway。对于我自己,我使用Terraform。在这里你可以看到关于internal IP address的官方文档。
现在你可以使用这个作为你的新入口(去掉NGINX),如下所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: guestbook
annotations:
kubernetes.io/ingress.class: azure/application-gateway
spec:
rules:
- http:
paths:
- backend:
serviceName: frontend
servicePort: 80或者,您可以在内部使用NGINX作为您的入口,如选项2中所述。
2-首先,您必须有一个公共IP与负载均衡器相关联的it.The后端从该LB必须符合您的需求。
但是这里的trick...Do不是使用该公网IP创建NGINX,而是使用内部IP和内部负载均衡,您可以在以下url中了解如何创建NGINX:
https://docs.microsoft.com/en-us/azure/aks/ingress-internal-ip
您必须做的重要的事情是在helm参数上使用nginx ovveride:
controller:
service:
loadBalancerIP: 10.240.0.42
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"当然,必须创建内部VNET,并且负载均衡器IP必须是正确的。
现在让NGINX在私有IP后面监听,最后一个技巧是验证来自公共IP 的流量是否被重定向到内部VNET...Of课程,这取决于您如何在持有公共IP的LB后面进行基础设施设置。
https://stackoverflow.com/questions/62074177
复制相似问题