首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在kubernetes集群中使用nginx反向代理组织.net核心应用程序的最佳方式是什么?

在kubernetes集群中使用nginx反向代理组织.net核心应用程序的最佳方式是什么?
EN

Stack Overflow用户
提问于 2018-08-22 03:19:05
回答 1查看 1.2K关注 0票数 1

我想在.NET Kubernetes服务上部署一个带有NGINX反向代理的NGINX核心应用。组织pod和容器的最佳方式是什么?

核心两个单容器pod,一个用于nginx,另一个用于应用程序(. .net

  1. /kestrel),因此每个pod都可以独立于其他

核心进行扩展一个多容器pod,该单个pod包含两个容器(一个用于nginx,一个用于应用程序)

  1. 一个单容器pod,一个同时运行nginx和.net应用程序

的容器

我会选择第一个选项,但我不知道它是否是正确的选择,如果知道每个选项的优缺点就太好了。

如果我选择第一个选项,最好是设置亲和力,将nginx pod放在app pod所在的节点下?或者反亲和性,所以它们部署在不同的节点上?或者根本没有亲和力/反亲和力?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 03:57:48

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

如果你想了解更多关于如何设置的信息,请参阅我这周放在一起的this GitHub readme。我还在cert-manager中包含了TLS终端,也是随Helm一起安装的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51955339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档