1 升级过程
先升级kcm,只需要给kcm开启CSIMigration=true, CSIMigrationQcloudCbs=true
然后升级kubelet,给kubelet开启CSIMigration=true, CSIMigrationQcloudCbs=true
当所有的kubelet升级完,再给kcm开启CSIMigrationQcloudCbsComplete=true
2 运行机制:
2.1 KCM
CSIMigration:表示控制面支持CSI迁移。
CSIMigrationQcloudCbs: 表示in-tree类型的qcloud-CBS支持迁移。
CSIMigrationQcloudCbsComplete:表示所有节点都已经支持迁移。
KCM中的attachdetach controller启动时,会加载各种存储的插件。
attachdetach controller,在计算DSW时,会将pod中的volume处理成volume.spec。
在此过程中:
根据迁移的选项,如果pod所在节点支持迁移,则生成的volume.spec会自动转换成CSI类型。
检查节点是否支持迁移:
1)检查CSIMigrationQcloudCbsComplete。(所以,KCM不设置CSIMigrationQcloudCbsComplete也可以。)
2)查看节点"storage.alpha.kubernetes.io/migrated-plugins"的注解。
2.2 kubelet
CSIMigration:表示控制面支持CSI迁移。
CSIMigrationQcloudCbs: 表示in-tree类型的qcloud-CBS支持迁移。
kublet中的volumemanager,在计算DSW时,会将pod中的volume处理成volume.spec。
在此过程中,
如果上面两个参数均存在,则生成的volume.spec会自动转换成CSI类型。