理解对方暴露服务的对象 Ingress 和 Service

本文深入探讨了Kubernetes中的Service对象,包括ClusterIP和NodePort类型的用法,以及Service如何通过iptables进行流量管理。此外,文章详细介绍了Ingress的功能,如服务分组、基于名称的虚拟托管和TLS终止,强调了Ingress在 Kubernetes集群外部访问服务中的作用。总结指出,Service作为服务暴露的基础,而Ingress提供了更高级别的路由和负载均衡能力。
摘要由CSDN通过智能技术生成

Kubernetes 中的服务(Service)可以理解为对外暴露服务的最小单元对象,这个和 Pod 对象还是有不同的。例如用户通过发布服务对象 Deployment 发布应用,当在容器集群中启动后,ReplicaSet 副本对象会帮我们维持 Pod 实例的副本数。Pod 使用的容器网络默认会选择构建在主机网络上的覆盖网络(Overlay),默认外网是无法直接访问这些 Pod 实例服务的。为了能有效对接容器网络,Kubernetes 创建了另外一层虚拟网络 ClusterIP,即 Service 对象。从实现上来看,它借助 iptables 调用底层 netfilter 实现了虚拟 IP,然后通过相应的规则链把南北向流量准确无误的接入后端 Pod 实例。随着需求的衍生,后来扩展的 Ingress 对象则是借助第三方代理服务如 HAProxy、Nginx 等 7 层引流工具打通外部流量和内部 Service 对象的通路。Ingress 对象的目的就是为了解决容器集群中需要高性能应用网关接入的需求。

Service 的思考

Service 定义的网络基于 iptables 编排 netfilter 规则来支持虚拟 IP。Service 对象被设计为反向代理模式,支持南北向流量的负载均衡,通过 DNAT 把流量转到后端的具体业务的 Pod 中。为了劫持接入流量和 NAT 转换,Kubernetes 创建了两条自定义链规则 PREROUTING 和 OUTPUT。如:

-A 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaodeshi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值