09|网络篇:通过Service访问Pod
王雪飞
你好,我是雪飞。
前面我们学习了通过 Deployment 部署无状态应用 Pod,其中有些 Pod 中的应用是提供 Web 访问服务,所以需要通过网络访问到这些 Pod。
在部署 Pod 的时候,K8s 集群给它们分配了自己的 IP 地址,Pod 可以直接通过集群内部 IP 地址相互访问。但是我们还需要解决两个问题:
第一个是服务发现,K8s 中 Pod 的 IP 地址是动态分配的,每次 Pod 重启后都会重新分配一个内部 IP,因此无法使用固定的 IP 来访问 Pod。
第二个是负载均衡,Deployment 管理的 Pod 是多副本的,并且可以扩缩容,因此需要一个统一的访问入口将访问请求自动分配给这些 Pod 副本。为了解决这两个问题,Service 资源对象应运而生。
认识 Service
Service 是 K8s 中负责网络服务发现和负载均衡的资源对象,它定义了通过网络访问 Pod 的方式。当我们访问 Service 时,它自动将访问请求转发到相应的 Pod 上,然后由 Pod 上的应用处理访问请求。
Service 主要处理“服务发现”和“负载均衡”这两个重要问题。服务发现是指当 Pod 发生变化时(如故障重启、扩容缩容等),Service 仍能自动找到变化后的 Pod。负载均衡是指 Service 可以代理多个 Pod 的网络访问,通过一定机制把访问 Service 的请求自动分配到这些代理的 Pod 中。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. Service 是 K8s 中负责提供服务发现和负载均衡功能的资源对象,解决了服务发现和负载均衡的问题。 2. Service 有四种类型:ClusterIP、NodePort、LoadBalancer、ExternalName,分别用于不同的访问需求。 3. 不同类型的 Service 可以实现集群内部和集群外部的访问需求,如 ClusterIP 和 NodePort 用于集群内部访问,LoadBalancer 用于集群外部访问,ExternalName 用于引入集群外部的应用。 4. NodePort 类型允许在集群外部访问 Service,将 Service 的端口映射到每个节点的对应端口上,通过节点 IP 和端口来访问 Service。 5. LoadBalancer 类型需要使用第三方负载均衡器来生成一个 “External-IP”,然后通过 “External-IP” 来访问 Service,也允许通过节点 IP 和映射的节点端口来访问 Service。 6. ExternalName 类型的 Service 用于引入集群外部的应用,通过 ExternalName 属性指定外部应用的 URL 地址或者 IP 地址,然后就可以在集群内部访问此 Service 来访问外部的应用。 7. Service 可以配置多端口以代理 Pod 的不同端口,例如配置 HTTP 和 HTTPS 端口。 8. 通过 Service 的 DNS 域名访问可以实现集群内部的访问。 9. 了解了 Service 的不同类型和访问方式后,可以进一步学习 Ingress 资源对象,通过 Ingress 可以方便地配置 HTTPS 访问。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《零基础拿下云原生 CKA 认证》,新⼈⾸单¥59
《零基础拿下云原生 CKA 认证》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论