![](/img/trans.png)
[英]What is the Best way to Setup Proxy Pass in an Nginx Ingress object for Kubernetes
[英]What is the best way to organize a .net core app with nginx reverse proxy inside a kubernetes cluster?
我想在Azure Kubernetes服务上使用NGINX反向代理部署.NET Core应用程序。 整理豆荚和容器的最佳方法是什么?
两个单一容器的容器,一个用于nginx的容器,一个用于应用程序(.net-core / kestrel)的容器,因此每个容器可以独立于另一个容器进行扩展
一个多容器容器,该容器具有两个容器(一个用于nginx,一个用于应用程序)
一个单一容器的容器,一个同时运行Nginx和.net应用程序的容器
我会选择第一个选项,但是我不知道它是否是正确的选择,知道每个选项的优缺点将非常高兴。
如果我选择第一个选项,那么最好设置亲和力以将Nginx Pod放置在与App Pod相同的节点中吗? 还是反亲和力,以便它们部署在不同的节点上? 还是根本没有亲和力/反亲和力?
Kubernetes中入站流量的最佳实践是使用Ingress资源。 由于没有内置的入口控制器,因此需要在AKS中进行一些额外的设置。 您绝对不愿意做#2,因为它不灵活,而据我所知,#3是不可能的。
Kubernetes Ingress
资源是一个配置文件,用于管理入站群集流量的反向代理规则。 这样,您就可以将多个服务看作是组合的API。
要设置入口,请首先在自动生成的MC资源组中创建一个公共IP地址:
az network public-ip create `
-g MC_rg-name_cluster-name_centralus `
-n cluster-name-ingress-ip `
-l centralus `
--allocation-method static `
--dns-name cluster-name-ingress
现在创建一个入口控制器。 这实际上是处理来自公共IP的入站流量所必需的。 它坐着并监听Kubernetes API Ingress
更新,并自动生成nginx.conf
文件。
# Note: you'll have to install Helm and its service account prior to running this. See my GitHub link below for more information
helm install stable/nginx-ingress `
--name nginx-ingress `
--namespace default `
--set controller.service.loadBalancerIP=ip.from.above.result `
--set controller.scope.enabled=true `
--set controller.scope.namespace="default" `
--set controller.replicaCount=3
kubectl get service nginx-ingress-controller -n default -w
设置好之后,请确保在您的Ingress
资源上使用此注释: kubernetes.io/ingress.class: nginx
如果您想了解有关如何进行设置的更多信息,请参阅我本周整理的GitHub自述文件 。 我还在cert-manager
包括了TLS终止,并且也随Helm一起安装了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.