kubernetes的基本概念6 service 深入探讨

基本概念5中简单的介绍了一下 service,但是感觉还是不是很清晰,下边根据一位台湾网友的博客深化一下:


A Kubernetes Service is an abstraction which defines a logical set of Pods and a policy by which to access them.

service是一个定义了一组逻辑上Pods和如何访问这组Pods的抽象概念


三个问题:

谁会使用 Service ?

什么是逻辑上的一群 Pod?

什麼是访问规则?

==

1.谁会使用 Service ?

集群内部其他的Pod                   访问路径3->2

集群外部的访问者                      访问路径1->2

2.什么是逻辑上的一群 Pod?

如何上图中,颜色不同的Pod

3.什么是访问规则?

就是如何访问的规则,比方說 TCP/UDP、Port 等等相关规则。



Service 定义三个主要的模块儿:

1.服務元資料 (Metadata)

2.被存取的應用之標籤 (Label)

3.存取該服務的方式



接着上边说,其实一个service就像一个路由器,它有两个IP,外部IP和内部IP。

例如:

当外部访问Pod的时候,走的路线是 1->2  iptables NAT 將 destination 替換成Pod IP

当内部访问Pod的时候,走的路线是 3->2 iptables NAT 將 destination 替換成Pod IP


label selector 的作用:

label selector配合service 可以对Pod进行筛选:

Example1:    流量會流向全部帶有svc: http-server標籤的 Pod

Example2:    流量會流向全部帶有svc: http-server且 (AND) 擁有lang: python 的 Pod



Reference:

Kubernetes Service 概念詳解 | Kubernetes

Kubernetes Service 深度剖析 - 存取路徑差異 | Kubernetes

Kubernetes Service 深度剖析 - 標籤對於 Service 的影響 | Kubernetes






全文完

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容