k8s中pod与service区别

发布于 2022-10-12  429 次阅读


啥是Pod?

Pod是k8s中的最小部署单元,但不是一个程序/进程,应该说是运行环境(包括容器、存储、网络ip:port、容器配置等)。其中可以运行1个或者多个容器,在每个pod内部的container共享所有资源,包括共享pod的ip:port和磁盘。
pod是临时性的,用完即或者损坏就会丢弃的,当pod遇到进程结束、node故障,或者资源短缺时,pod会被变成损坏。基于此,用户很少直接创建一个独立的pods,而会通过k8s中的controller来对pod进行管理。
controller通过pod templates来创建pod,pod template是一个静态模板,创建出来之后的pod就跟模板没有关系了,模板的修改是不会影响现有的pod的。

啥是 Service

由于pod是临时性的,pod的ip:port会动态变化的。所以这种动态变化在k8s集群中就会有一个问题:如果一组后端pod作为服务Api的提供方,供一组前端的pod消费调用,那服务调用方怎么自动感知服务提供方。这就有了k8s中的另外一个核心概念,service是通过apiServer创建出来的实例。

pod 与 service 关系

Service定义了pods的逻辑集合和访问这个集合的策略。

Pods集合是通过定义Service时提供的Label选择器完成的。。。