马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
什么是Kubernetes Service?
Kubernetes Service 是一种抽象,可以明白为负载平衡的端口转发服务,用于将网络流量路由到一组 Pod。它的重要作用包罗:
- 服务发现:在 Kubernetes 中,Pod 的 IP 所在是动态分配的,大概会随着 Pod 的创建和烧毁而厘革。Service 提供了一个稳固的访问点,使客户端可以通过固定的 IP 所在或 DNS 名称访问服务。
- 负载平衡:Service 可以将流量分发到多个后端 Pod,确保服务的高可用性和性能。
- 网络署理:通过 kube-proxy 实现流量的转发和路由,支持多种署理模式(如 iptables 和 IPVS)。
Kubernetes Service 与 API Gateway 有什么区别和接洽
Kubernetes Service 与 API Gateway 有相似之处,但它们的焦点功能和利用场景有所差别。
- 相似点:
- 它们都用于流量管理。
- 都可以作为客户端访问后端服务的入口点。
- 差别点:
- Kubernetes Service:更偏重于在 Kubernetes 集群内的网络流量路由和负载平衡,办理服务发现标题。它是一个集群内的概念,重要负责将流量分发到后端的 Pod,并确保服务之间的通讯。
- API Gateway:通常用于微服务架构,具备更多高级功能,好比身份验证、安全控制、哀求/相应转换、限流等。API Gateway 实用于更复杂的流量管理场景,尤其是在对外袒露 API 或必要同一入口时。
简单来说,Kubernetes Service 是一种根本网络功能组件,而 API Gateway 是一种高条理的应用组件。
Kubernetes Service 范例及实用场景
- ClusterIP(默认范例):
- 形貌:仅在集群内部访问。
- 实用场景:用于服务间通讯(如微服务架构)或集群内的内部应用。
- NodePort:
- 形貌:在每个节点的特定端口上公开服务。
- 实用场景:恰当当地开发或调试,大概简单的集群外部访问。
- LoadBalancer:
- 形貌:通过云提供商设置一个外部负载平衡器。
- 实用场景:生产情况中,用于外部客户端的访问。
- ExternalName:
- 形貌:将服务映射到外部 DNS 名称,而不是路由流量到 Pod。
- 实用场景:必要访问外部服务(如数据库或 API)。
Service之YAML 模板
LoadBalancer
- apiVersion: v1
- kind: Service
- metadata:
- name: lmd-api-service-lb
- labels:
- app: lmd-api
- type: back-end
- spec:
- selector:
- app: lmd-api
- type: back-end
- ports:
- - protocol: TCP
- port: 12666
- targetPort: 12666
- type: LoadBalancer
复制代码 ClusterIP
- apiVersion: v1
- kind: Service
- metadata:
- name: lmd-api-service
- labels:
- app: lmd-api
- type: back-end
- spec:
- selector:
- app: lmd-api
- type: back-end
- ports:
- - protocol: TCP
- port: 12666
- targetPort: 12666
- type: ClusterIP
复制代码 Service练习
Udemy Labs - Certified Kubernetes Administrator with Practice Tests Course | KodeKloud

|