Kubernetes服务类型与滚动更新实践指南
1. Kubernetes服务相关问题与解决方案
在Kubernetes环境中,通常会有多个版本的复制控制器(Replication Controller,简称RC)共存,但多个RC不能与控制器/服务耦合共存。当创建新的RC时,Pod不会立即启动,而是需要一定时间(可能是几秒)。代表该RC的服务需要知道Pod中的容器何时准备好,以便将流量路由到该Pod。
解决方案是将服务与控制器解耦,这是一种管理设计模式。服务是类似于Pod的REST对象,提供面向对象的优势,如模块化、抽象和重用。解耦服务和控制器实现了单一职责原则(SRP),可以独立修改或删除服务或控制器,而无需相互影响。可以无限期保留多个复制控制器,以满足DevOps团队的需求。复制控制器仅管理Pod,而服务仅暴露访问Pod的端点。
另一种用于服务的管理模式是就绪探针(Readiness Probe),用于确定Pod的容器是否准备好接收流量。
2. Kubernetes服务类型概述
Kubernetes有三种主要的服务类型,如下表所示:
| 服务类型 | 外部IP | 描述 |
| ---- | ---- | ---- |
| ClusterIP | 否 | 默认类型,仅在集群内部暴露服务 |
| NodePort | 是 | 除了在集群内部暴露服务外,还在集群的每个节点的特定端口上暴露服务,URL为 :NodePort |
| LoadBalancer | 是 | 除了在集群内部和每个节点上暴露服务外,还在外部负载均衡器IP上暴露服务 |
超级会员免费看
订阅专栏 解锁全文
24

被折叠的 条评论
为什么被折叠?



