关于kubernetes:Kuberentes集群添加腾讯云CBS为默认存储

32次阅读

共计 2549 个字符,预计需要花费 7 分钟才能阅读完成。

前言

接上文 https://blog.csdn.net/saynaihe/article/details/115187298 kubeadm 搭建高可用 ha 集群,接下来思考的度量有存储,对外裸露服务。日志收集,监控报警几项。集体习惯就先将存储优先来探讨了。
对于存储 storageclass
如 https://kubernetes.io/zh/docs/concepts/storage/storage-classes 所示,常见的有很多类型, 如下:

因为我的集群建在私有云下面 腾讯云有开源的 cbs 的 csi 组件。在 kubernetes1.16-1.18 环境应用 docker 做 runtime 的环境中应用过腾讯云的开源组件。这就又拿来用了。不便集成。

初始环境

加入:https://editor.csdn.net/md/?articleId=115187298

主机名 ip 零碎 内核
sh-master-01 10.3.2.5  centos8 4.18.0-240.15.1.el8_3.x86_64
sh-master-02 10.3.2.13 centos8 4.18.0-240.15.1.el8_3.x86_64
sh-master-03 10.3.2.16 centos8 4.18.0-240.15.1.el8_3.x86_64
sh-work-01 10.3.2.2 centos8 4.18.0-240.15.1.el8_3.x86_64
sh-work-02 10.3.2.2 centos8 4.18.0-240.15.1.el8_3.x86_64
sh-work-03 10.3.2.4 centos8 4.18.0-240.15.1.el8_3.x86_64

集成腾讯云 CBS CSI

1. clone 仓库

注:kubernetes-csi-tencentcloud 中包含 CBS CSI,CFS CSI 与 COSFS CSI。这里我就只用 CBS 块存储了。其余两个也用过,感觉用起来还是不太适宜。

git clone https://github.com/TencentCloud/kubernetes-csi-tencentcloud.git

各种名词能够参照:https://github.com/TencentCloud/kubernetes-csi-tencentcloud/blob/master/docs/README_CBS_zhCN.md。

2. 参照文档前置要求实现 kubernetes 集群的配置批改

1. master 节点

参照 https://github.com/TencentCloud/kubernetes-csi-tencentcloud/blob/master/docs/README_CBS_zhCN.md。参照一下图片前置要求
对三台 master 节点批改 kube-apiserver.yaml kube-controller-manager.yaml kube-scheduler.yaml。减少如下配置(查看对应版本对应需要)

 - --feature-gates=VolumeSnapshotDataSource=true



2. 批改所有节点的 kubelet 配置

kubelet 减少 –feature-gates=VolumeSnapshotDataSource=true 的反对

3. 部署 CBS CSI 插件

1. 应用腾讯云 API Credential 创立 kubernetes secret:

1. 前提:

首先的在腾讯云后盾 https://console.cloud.tencent.com/cam 创立一个用户,拜访形式我是只开明了编程拜访,至于用户权限则须要开明 CBS 相干权限。我是间接绑定了 CSB 两个默认相干的权限,还有财务付款权限,记得肯定的反对付款,否则硬盘创立不了 ……。玩的好的能够自定义创立下权限,否则集体感觉财务权限貌似有点大 ……

2. 依据文档提醒将 SecretId SecretKey base64 转换生成 kubernetes secret

echo -n "XXXXXXXXXXX" |base6
 echo -n "XXXXXXXXXX" |base64

将 base64 写入 secret.yaml 文件

cd /root/kubernetes-csi-tencentcloud-master/deploy/cbs/kubernetes
kubectl apply -f secret.yaml

注:我的项目是在 root 目录 git clone 的,故 cd /root/kubernetes-csi-tencentcloud-master/deploy/cbs/kubernetes. 包含一下没有特别强调目录的,都是在此目录下执行的

2. 创立 rbac

创立 attacher,provisioner,plugin 须要的 rbac:

kubectl apply -f  csi-controller-rbac.yaml
kubectl apply -f  csi-node-rbac.yaml

3. 创立 controller,node 和 plugin

创立 controller plugin 和 node plugin

kubectl apply -f  csi-controller.yaml
kubectl apply -f  csi-node.yaml
### snapshot-crd 我没有应用,字面意思应该是快照的....
kubectl apply -f  snapshot-crd.yaml 

kubectl get pods -n kube-system 能够看到 cbs-csi 相干组件创立 ing:

4. 验证

切换目录
cd /root/kubernetes-csi-tencentcloud-master/deploy/cbs/examples

  1. 参照 storageclass 参数批改 storageclass-basic.yaml

创立 storageclass:
    kubectl apply -f  storageclass-basic.yaml
创立 pvc:
    kubectl apply -f  pvc.yaml
创立申请 pvc 的 pod:
    kubectl apply -f  app.yaml


嗯 kubectl get storageclass

到此为止,搭建其余利用就能够用 cbs 存储了。具体参数看文档 看文档 看文档 说三遍。

正文完
 0