透过真实场景分析K8S的EndpointController的源码
场景重现最近遇到一个问题,在K8S的几台机器上中创建了Glusterfs的集群,通过官方的教程一步步的来利用Glusterfs创建Volume以及PV,不过只是创建了每个Volume的Endpoint,并没有相对应的创建Service实例(官方说创建Service会使Endpoint持久化,当时并没有理会),然后在一次集群重启的时候发现Endpoint实例并没有启动起来,很疑惑,像其他的K8S对象,例如POD,Deployment,Service都启动起来了,但是Endpoint并没有,带着这个问题看了下官方的Issue,并没有什么有效的解答,大家可以参考一下Issue: Endpoints are not persistented 探究源码1.1 源码版本 基于k8s release-1.131.2 源码目录结构由于我们重点看Endpoint部分,因此我们只看Endpoint相关的源码Endpoint1.3 Endpoint的初始化文件位置: endpoints_controller.go // NewEndpointController returns a new *Endpoin...
