前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kuberentes集群添加腾讯云CBS为默认存储

Kuberentes集群添加腾讯云CBS为默认存储

原创
作者头像
对你无可奈何
修改2021-03-25 18:01:01
1.6K0
修改2021-03-25 18:01:01
举报
文章被收录于专栏:运维专栏运维专栏

前言

CVM

CDN

https://cloud.tencent.com/act?from=10680

https://cloud.tencent.com/act/season?from=14065

https://cloud.tencent.com/?from=10680

(照旧加几个腾讯云连接)

TKE

CBS

接上文https://blog.csdn.net/saynaihe/article/details/115187298 kubeadm 搭建高可用ha集群,接下来考虑的度量有存储,对外暴露服务。日志收集,监控报警几项。个人习惯就先将存储优先来讨论了。

关于存储storageclass

https://kubernetes.io/zh/docs/concepts/storage/storage-classes所示,常见的有很多类型,如下:

image.png
image.png

由于我的集群建在公有云上面 腾讯云有开源的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块存储了。其他两个也用过,感觉用起来还是不太适合。

代码语言:txt
复制
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。参照一下图片前置要求

image.png
image.png
代码语言:txt
复制
 - --feature-gates=VolumeSnapshotDataSource=true
image.png
image.png
image.png
image.png
image.png
image.png

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

kubelet增加--feature-gates=VolumeSnapshotDataSource=true的支持

image.png
image.png

3.部署CBS CSI插件

1. 使用腾讯云 API Credential 创建 kubernetes secret:

1. 前提:

首先的在腾讯云后台https://console.cloud.tencent.com/cam创建一个用户,访问方式我是只开通了编程访问,至于用户权限则需要开通CBS相关权限。我是直接绑定了CSB两个默认相关的权限,还有财务付款权限,记得一定的支持付款,否则硬盘创建不了......。玩的好的可以自定义创建下权限,否则个人觉得财务权限貌似有点大......

image.png
image.png
image.png
image.png

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

代码语言:txt
复制
echo -n "XXXXXXXXXXX" |base6
 echo -n "XXXXXXXXXX" |base64

将base64写入secret.yaml文件

image.png
image.png
代码语言:txt
复制
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.包括一下没有特别强调目录的,都是在此目录下执行的

image.png
image.png

2. 创建rbac

创建attacher,provisioner,plugin需要的rbac:

代码语言:txt
复制
kubectl apply -f  csi-controller-rbac.yaml
kubectl apply -f  csi-node-rbac.yaml

3.创建controller,node和plugin

创建controller plugin和node plugin

代码语言:txt
复制
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:

image.png
image.png

4. 验证

切换目录

cd /root/kubernetes-csi-tencentcloud-master/deploy/cbs/examples

  1. 参照storageclass参数修改storageclass-basic.yaml
image.png
image.png
代码语言:txt
复制
创建storageclass:
    kubectl apply -f  storageclass-basic.yaml
创建pvc:
    kubectl apply -f  pvc.yaml
创建申请pvc的pod:
    kubectl apply -f  app.yaml
image.png
image.png

嗯 kubectl get storageclass

image.png
image.png

到此为止,搭建其他应用就可以用cbs存储了。具体参数看文档 看文档 看文档 说三遍。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 初始环境
  • 集成腾讯云 CBS CSI
    • 1. clone 仓库
      • 2.参照文档前置要求完成kubernetes集群的配置修改
        • 1. master节点
        • 2. 修改所有节点的kubelet配置
    • 3.部署CBS CSI插件
      • 1. 使用腾讯云 API Credential 创建 kubernetes secret:
        • 1. 前提:
        • 2. 根据文档提示将SecretId SecretKey base64转换生成kubernetes secret
      • 2. 创建rbac
        • 3.创建controller,node和plugin
        • 4. 验证
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档