首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置kubernetes前端服务多条路线

如何设置kubernetes前端服务多条路线
EN

Stack Overflow用户
提问于 2018-03-08 15:40:28
回答 1查看 1.6K关注 0票数 0

我正在学习kubernetes及其生态系统,尽管我看到了许多如何使用nginx (作为反向代理)来执行前端任务的例子,但我很难理解如何设置/配置它以服务多条路径。例如,如果我将两个后端(app1和app2)部署到kubernetes,并且希望它们以/app1和/app2的形式出现在我的前端,那么我将假设我需要以下nginx配置:

代码语言:javascript
复制
upstream app1 {
    server app1
}
upstream app2 {
    server app2
}
server {
    listen 443;
    location /app1 {
       proxy_pass https://app1:PORT1;
       # and additional configuration stuff
    }
    location /app2 {
       proxy_pass https://app2:PORT2;
       # and additional configuration stuff
    }
}

通过这个站点配置,我可以构建nginx映像并将其作为服务部署到kubernetes中。但是对于部署,我需要在yaml中指定要匹配的应用程序。而且,如果我想将我的前端与我的两个后端相匹配,我应该如何编写它的部署规范?我从这里开始学习示例1,但仍然不明白如何将它扩展到前面提到的用例。

1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-08 16:12:52

欢迎来到kubernetes生态系统!

让我把问题说回来,以确保我们谈论的是同样的事情:

  1. 集群中有两个应用程序。从Kubernetes的角度来看,这些资源应该包括以下集群资源:
代码语言:javascript
复制
- a Deployment for each
- the Deployment for each comprises and therefore also creates in the cluster a ReplicaSet and some Pods for each app.
- the Pod spec for each app references the app's container image  
- a Service spec which uses labels to refer to the respective Deployment/ReplicaSet/Pod objects for each application. The name of the Service can be used in other Kubernetes objects 

  1. 考虑到这两个应用程序的占用空间,然后您希望在自己的路由/路径下公开每个应用程序,如上面所述,在单个域中,这样外部访问者就可以独立地访问每个应用程序。

如果这一切都是准确的,那么就没有必要部署您自己的nginx容器。您只需使用另一个Kubernetes对象,名为Ingress。

如果您在裸金属或类似的环境上运行自己的Kubernetes集群,那么在具体术语上,什么就相当于一个特殊配置的nginx。

如果您是在gcloud、azure或AWS上运行托管Kubernetes,那么从具体的角度来说,Ingress通常是云提供的负载均衡器。

这些文件应有助于:

https://kubernetes.io/docs/concepts/services-networking/ingress/

更确切地说,Ingress是一个Kubernetes术语,它是集群中监视宏资源的软件,然后使用这些资源中的详细信息来生成新的配置。

nginx大会控制器:

https://github.com/kubernetes/ingress-nginx/blob/master/README.md

将首先在集群中创建nginx荚,然后监视in规范的更改,更新nginx配置以匹配规范中指定的内容,然后在配置更改时重新启动nginx荚。

云侵入控制器的工作方式类似,尽管它使用云API来更新云负载均衡器配置。

因此,首先,您可能想要做的是遵循简单的扇own示例,该示例在单个域中的两条路径下公开两个应用程序--每个应用程序背后都有它们自己的服务(如上面所述):

https://kubernetes.io/docs/concepts/services-networking/ingress/#simple-fanout

希望这能有所帮助。

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

https://stackoverflow.com/questions/49176989

复制
相关文章

相似问题

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