【k8s】为什么statefulSet初始化pod需要service name

为什么statefulSet初始化需要service name? Deployment初始化pod是不需要的。首先明确每个service都有一个域名,这是服务发现机制决定的,而statefulSet需要给每个pod一个唯一固定的域名,并且需要在pod创建时就确定,service name理论上应该在其中。这时service还不能通过label selector去筛选它应该管理的pod,因为pod还没创建完毕,所以要填一个service name。而deployment不需要,只管把pod创建好,然后service再去筛选,再去管理。

不过这并不代表,stateful set只能被一个service管理,因为其中的pod的唯一域名只起到一个,唯一,的作用。意思就是你大可以随便写一个random string,然后再创建service通过label selector来管理pod。只是一般为了好理解,写service名称。

目前是这样理解的,不过还没有学关键的路由工作原理,仅供参考。

相关推荐
吴声子夜歌26 分钟前
Docker入门与实战——实战案例(编程开发)(一)
运维·docker·容器
JavaEdge.3 小时前
Docker Compose部署Dify
运维·docker·容器
wzq11_6663 小时前
Kubernetes集群——网络管理
云原生·容器·kubernetes
做一个AK梦3 小时前
云原生服务网格
云原生
java_logo5 小时前
Docker 部署 Portainer CE:轻松搭建容器管理平台
运维·docker·容器·portainer·容器管理·轩辕镜像·portainer-ce
阿里云云原生10 小时前
AI 语音一直“正在连接”?用 RUM 排查 WebSocket 建连问题
云原生
阿里云云原生19 小时前
从页面渲染到智能体:ARMS Node.js 探针解锁 SSR + AI 全链路可观测
云原生
程序员老赵1 天前
Docker 部署 Portainer CE:轻松搭建容器管理平台
docker·容器·开源