上云无忧 > 文档中心 > 腾讯云容器服务 TKE 标准集群组件管理 - 通过 CBS-CSI 避免云硬盘跨可用区挂载
容器服务 TKE
腾讯云容器服务 TKE 标准集群组件管理 - 通过 CBS-CSI 避免云硬盘跨可用区挂载

文档简介:
操作场景: 云硬盘不支持跨可用区挂载到节点,在跨可用区的集群环境中,推荐通过 CBS-CSI 拓扑感知特性来避免跨可用区挂载问题。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

操作场景

云硬盘不支持跨可用区挂载到节点,在跨可用区的集群环境中,推荐通过 CBS-CSI 拓扑感知特性来避免跨可用区挂载问题。

实现原理

拓扑感知调度需要多个 Kubernetes 组件配合完成,包括 Scheduler、PV controller、external-provisioner。具体流程如下:
1. PV controller 观察 PVC 对象,检查 Storageclass 的 VolumeBindingMode 是否为 WaitForFirstConsumer,如是,则不会立即处理该 PVC 的创建事件,等待 Scheduler 处理。
2. Scheduler 调度 Pod 后,会将 nodeName 以 annotation 的方式加入到 PVC 对象上 volume.kubernetes.io/selected-node: 10.0.0.72
3. PV controller 获取到 PVC 对象的更新事件后,将开始处理 annotation(volume.kubernetes.io/selected-node),根据 nodeName 获取 Node 对象,传入到 external-provisioner 中。
4. external-provisioner 根据传过来的 Node 对象的 label 获取可用区(failure-domain.beta.kubernetes.io/zone)后在对应可用区创建 PV,达到和 Pod 相同可用区的效果,避免云硬盘和 Node 在不同可用区而无法挂载问题。

前提条件

已安装1.14或以上版本的 TKE 集群
已将 CBS-CSI 或 In-Tree 组件更新为最新版本。

操作步骤

使用以下 YAML,在 Storageclass 中设置 volumeBindingMode 为 WaitForFirstConsumer。示例如下:
		
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: cbs-topo
parameters:
type: cbs
provisioner: com.tencent.cloud.csi.cbs
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
说明
CBS-CSI 和 In-Tree 组件均支持该操作。
相似文档
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部