ceph-csi 源码分析(7)-rbd driver-IdentityServer 分析
kubernetes ceph-csi 分析 - 目录导航:
https://xie.infoq.cn/article/4b1d3e32f124307a49cd9c1e3
当 ceph-csi 组件启动时指定的 driver type 为 rbd 时,会启动 rbd driver 相关的服务。然后再根据controllerserver
、nodeserver
的参数配置,决定启动ControllerServer
与IdentityServer
,或NodeServer
与IdentityServer
。
基于 tag v3.0.0
https://github.com/ceph/ceph-csi/releases/tag/v3.0.0
rbd driver 分析将分为 4 个部分,分别是服务入口分析、controllerserver 分析、nodeserver 分析与 IdentityServer 分析。
这节进行 IdentityServer 分析,IdentityServer 主要包括了 GetPluginInfo(获取 driver 信息)、Probe(探测接口)、GetPluginCapabilities(获取 driver 能力)三个方法,将一一进行分析。
IdentityServer 分析
(1)GetPluginInfo
简介
GetPluginInfo 主要用于获取该 ceph-csi driver 的信息,如 driver 名称、版本等。
GetPluginInfo returns plugin information.
GetPluginInfo
(2)Probe
简介
Probe 是一个探测接口,用于探测该 driver 是否启动/存活。
Probe returns empty response.
Probe 方法由 liveness driver 调用,liveness driver 定时调用该方法,探测 csi driver 的存活,然后统计到 prometheus metrics 中。(liveness driver 的相关代码相对简单,不再单独展开分析)
liveness driver 调用 Probe 的有关代码位于internal/liveness/liveness.go-getLiveness()
。
Probe
被 sidecar 容器 liveness 调用,探测 csi 组件健康存活情况。
(3)GetPluginCapabilities
简介
GetPluginCapabilities 用于获取 driver 的能力。
GetPluginCapabilities returns available capabilities of the rbd driver.
GetPluginCapabilities
总结
这节分析了GetPluginInfo
、Probe
、GetPluginCapabilities
方法,作用分别如下:
GetPluginInfo:用于获取该 ceph-csi driver 的信息,如 driver 名称、版本等。
Probe:一个探测接口,用于探测该 driver 是否启动。
GetPluginCapabilities:用于获取 driver 的能力。
版权声明: 本文为 InfoQ 作者【良凯尔】的原创文章。
原文链接:【http://xie.infoq.cn/article/5d1355881ebbd870a8151007c】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论