Kubernetes API Server与调度器深度解析
1. API Server内部机制
1.1 CRD控制循环
自定义资源定义(CRDs)是可添加到正在运行的API服务器的动态API对象。创建CRD会创建新的HTTP路径,负责添加这些路径的控制器位于API服务器内部。不过,随着委托API服务器的引入,该控制器大多已从API服务器中抽象出来,默认仍在进程内运行,也可在进程外运行。
CRD控制循环的操作如下:
for crd in AllCustomResourceDefinitions:
if !RegisteredPath(crd):
registerPath
for path in AllRegisteredPaths:
if !CustomResourceExists(path):
markPathInvalid(path)
delete custom resource data
delete path
自定义资源路径的创建相对简单,但删除自定义资源较为复杂。因为删除自定义资源意味着删除与该类型资源关联的所有数据,以避免旧数据在CRD重新添加时复活。在移除HTTP服务路径之前,先将路径标记为无效,防止创建新资源,然后删除与CRD关联的所有数据,最后移除路径。
1.2 调试API服务器
1.2.1 基本日志
默认情况下,API服务器会记录发送给它的每个请求,包括客户端IP地址、请求路径和服务器返回的代码。若发生
超级会员免费看
订阅专栏 解锁全文
893

被折叠的 条评论
为什么被折叠?



