39 | 谈谈Service与Ingress
张磊
该思维导图由 AI 生成,仅供参考
你好,我是张磊。今天我和你分享的主题是:谈谈 Service 与 Ingress。
在上一篇文章中,我为你详细讲解了将 Service 暴露给外界的三种方法。其中有一个叫作 LoadBalancer 类型的 Service,它会为你在 Cloud Provider(比如:Google Cloud 或者 OpenStack)里创建一个与该 Service 对应的负载均衡服务。
但是,相信你也应该能感受到,由于每个 Service 都要有一个负载均衡服务,所以这个做法实际上既浪费成本又高。作为用户,我其实更希望看到 Kubernetes 为我内置一个全局的负载均衡器。然后,通过我访问的 URL,把请求转发给不同的后端 Service。
这种全局的、为了代理不同后端 Service 而设置的负载均衡服务,就是 Kubernetes 里的 Ingress 服务。
所以,Ingress 的功能其实很容易理解:所谓 Ingress,就是 Service 的“Service”。
举个例子,假如我现在有这样一个站点:https://cafe.example.com。其中,https://cafe.example.com/coffee,对应的是“咖啡点餐系统”。而,https://cafe.example.com/tea,对应的则是“茶水点餐系统”。这两个系统,分别由名叫 coffee 和 tea 这样两个 Deployment 来提供服务。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
Kubernetes中Ingress的作用和实际应用是本文的重点。文章深入介绍了Ingress的概念,将其解释为Kubernetes对反向代理的一种抽象,并详细介绍了如何使用Ingress对象来描述转发规则。以Nginx Ingress Controller为例,说明了部署和使用Ingress机制的方法,还介绍了Nginx Ingress Controller的工作原理和配置方法。此外,文章还提到了在Bare-metal环境中创建Service的步骤,以及在集群中部署应用Pod和创建Ingress所需的SSL证书和密钥的操作步骤。总的来说,本文全面而深入地阐述了Ingress的设计思想和使用方法,为读者提供了宝贵的技术指导。文章还提到了Ingress的灵活度和自由度,对于使用容器的用户来说是非常有意义的。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入剖析 Kubernetes》,新⼈⾸单¥68
《深入剖析 Kubernetes》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(73)
- 最新
- 精选
- wang jl文章里面这个nginx ingress只是api网关啊,负载均衡体现在哪里?其实还是service做的?
作者回复: 是的
2020-03-03318 - 黄巍「但是,相信你也应该能感受到,由于每个 Service 都要有一个负载均衡服务,所以这个做法实际上既浪费成本又高。」没错,下周的 KubeCon 我会做一个关于共享 4 层 LoadBalancer 的session :)
作者回复: 听起来就很给力
2018-12-05312 - wang jllvs->nginx->lvs->service 这操作骚得可以。 关键是lvs还是nat模式的。
作者回复: 如果你愿意,还可以继续往前面搭
2020-03-036 - Adam感觉再加上一层ingress,又多了一层转发,性能上会不会损失比较大。
作者回复: 多层lb的方案不是挺普遍的?
2018-12-106 - 勤劳的小胖子-libo老师,为什么在创建 Ingress 所需的 SSL 证书(tls.crt)和密钥(tls.key)之后,使用curl命令还需要加上--insecure. "curl --resolve cafe.example.com:$IC_HTTPS_PORT:$IC_IP https://cafe.example.com:$IC_HTTPS_PORT/tea --insecure" 我的理解是:创建的SSL证书和密钥没有通过CA验证,所以要加上--secure. 对吗?
作者回复: 对的,假证书,哈哈
2018-11-2726 - zylvingress-controller 里面如果不配置域名,配置ip,可以吗
作者回复: 公有IP可以
2018-11-2123 - 左氧佛沙星人请问各位大神和老师 可以看到,这个 Service 的唯一工作,就是将所有携带 ingress-nginx 标签的 Pod 的 80 和 433 端口bao lu出去。 为啥需要创建一个svc呢?为啥需要bao lu80和443呢?
作者回复: 因为外部的用户需要通过 http/https 方式访问这个pod
2020-03-111 - HolyK8s目前这几类负载均衡都属于服务端负载均衡,优点很明显,对客户端友好透明,无需额外的感知工作,缺点是在大流量高并发对性能有要求的场景,负载均衡器可能会变为单点瓶颈,不知道自己理解的对不对
作者回复: service的话没有单点的问题啊
2018-11-2831 - 陈小虎这种非系统类控制器本来就主要部署在work-node上吧:)
作者回复: 没有固定约束
2018-11-211 - 虎虎❤️思考题: spec: rules: - host: www.mysite.com http: paths: - backend: serviceName: site-svc servicePort: 80 - host: forums.mysite.com http: paths: - backend: serviceName: forums-svc servicePort: 802018-11-21135
收起评论