阿里云自建k8s存储插件csi安装使用

阿里云自建k8s存储插件csi安装使用_第1张图片

新钛云服已为您服务1213

阿里云自建k8s存储插件csi安装使用_第2张图片



前言

k8s在阿里云上使用,推荐还是使用阿里云的ack。无论是从稳定性,以及后期的维护来说,ack 都是最优的方案,自建k8s 阿里云不提供任何帮助,一旦集群出现问题(主要是网络问题)很难进行排查。

如果出于特殊原因,希望在阿里云上进行自建k8s当然也可以。自建k8s需要集成阿里云两个重要的插件cloud-controller-manager(负载均衡插件),csi(存储插件)。两个插件在k8s 1.20 测试可用。下面我们将进行csi 存储插安装。



插件下载

  • git地址  https://github.com/kubernetes-sigs/alibaba-cloud-csi-driver.git

git clone https://github.com/kubernetes-sigs/alibaba-cloud-csi-driver.git
  • 文件说明

阿里云自建k8s存储插件csi安装使用_第3张图片

  • 下载相关文件

wget https://github.com/kubernetes-sigs/alibaba-cloud-csi-driver/blob/v1.1.1/deploy/ack/csi-plugin-managed.yaml
wget https://github.com/kubernetes-sigs/alibaba-cloud-csi-driver/blob/v1.1.1/deploy/ack/csi-provisioner-managed.yaml
wget https://github.com/kubernetes-sigs/alibaba-cloud-csi-driver/blob/v1.1.1/deploy/rbac.yaml
 



CSI 插件部署

部署rbac.yml

kubectl apply -f rbac.yaml

查看生成的 secrets 的csi token 名字

[root@sh-dev-test-staging-k8s-master-01 ack]# kubectl get secrets -A |grep csi
kube-system       csi-admin-token-ssflh                            kubernetes.io/service-account-token   3      2d14h
 

修改csi-plugin-managed.yaml & csi-provisioner-managed.yaml

两个文件修改位置一致请参考下图

阿里云自建k8s存储插件csi安装使用_第4张图片

kubectl apply -f csi-plugin-managed.yaml
kubectl apply -f csi-provisioner-managed.yaml
 

查看部署

[root@sh-dev-test-staging-k8s-master-01 ack]# kubectl get pods -A |grep csi
kube-system     csi-plugin-drns4                                            4/4     Running   0          2d3h
kube-system     csi-plugin-kt9sc                                            4/4     Running   0          2d3h
kube-system     csi-plugin-kwb4c                                            4/4     Running   0          160m
kube-system     csi-plugin-q82b5                                            4/4     Running   0          3h1m
kube-system     csi-plugin-qsnxb                                            4/4     Running   0          2d3h
kube-system     csi-plugin-rvvmp                                            4/4     Running   4          165m
kube-system     csi-provisioner-75f5db78b8-87szg                            7/7     Running   0          2d3h
kube-system     csi-provisioner-75f5db78b8-zr84d                            7/7     Running   0          2d3h
 

nodes 打 providerID

providerID  对应的值为以下两行的输出
META_EP=http://100.100.100.200/latest/meta-data
echo `curl -s $META_EP/region-id`.`curl -s $META_EP/instance-id`

开发测试环境部署样例
kubectl patch node sh-dev-test-staging-k8s-master-01 -p '{"spec":{"providerID": "cn-shanghai.i-uf6ckzrhi1oe3qhcbc15"}}'
kubectl patch node sh-dev-test-staging-k8s-master-02 -p '{"spec":{"providerID": "cn-shanghai.i-uf6fqvqcs9yq2d3h4km2"}}'
kubectl patch node sh-dev-test-staging-k8s-master-03 -p '{"spec":{"providerID": "cn-shanghai.i-uf6hwjh31jv7f91lp25j"}}'
kubectl patch node sh-dev-test-staging-k8s-node-01 -p '{"spec":{"providerID": "cn-shanghai.i-uf6ft06ppzodg1caaj6i"}}'
kubectl patch node sh-dev-test-staging-k8s-node-02 -p '{"spec":{"providerID": "cn-shanghai.i-uf681hjb2ku43a54k4zn"}}'
kubectl patch node sh-dev-test-staging-k8s-node-03 -p '{"spec":{"providerID": "cn-shanghai.i-uf6fl571hr62dswgzc3x"}}'



部署测试

1: disk 部署测试

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: disk-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 25Gi
  storageClassName: alicloud-disk-essd
  #storageClassName: alicloud-disk-ssd
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment-disk
  labels:
    app: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:alpine
        ports:
        - containerPort: 80
        volumeMounts:
          - name: disk-pvctest
            mountPath: "/data"
      volumes:
        - name: disk-pvctest
          persistentVolumeClaim:
            claimName: disk-pvc
 
kubectl apply -f deploy.yaml


1.1 查看pv,pvc

kubectl get pv, pvc

阿里云自建k8s存储插件csi安装使用_第5张图片


1.2 查看pod


1.3 查看挂载状态

阿里云自建k8s存储插件csi安装使用_第6张图片


1.4: 磁盘扩容测试

阿里云插件创建的storageclasses.storage 默认支持动态扩容(只能增加)

disk-pvc ---> pvc 的名称
storage ---> 磁盘扩容后的大小

kubectl patch pvc disk-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
 

查看扩容结果



小结

按照上文部署完成后阿里云的常用存储可以正常使用,样例虽然只给了disk, 但是 nas oss 一样可以正常使用。

需要注意的是阿里云的动态卷有很多种,部分不能正常使用,这个可能与服务器所在的区域有关,资源不足,或者资源本身的使用限制不满足当前集群的部署环境(极速nas 不支持跨可用区)。创建集群时要充分评估集群需求,选择合适的可用区。

了解新钛云服

重磅!新钛云服与木浪云正式达成战略联盟,两个盛斗士联合能擦出怎样的火花?

今晚8点半!新钛云服创始人携手重量级大咖,与您相约【A直播】

捷报!新钛云服斩获WRE「最佳云服务解决方案创新奖」

新钛云服荣膺第四届FMCG零售消费品行业CIO年会「年度数字化服务最值得信赖品牌奖」

新钛云服三周岁,公司月营收超600万元,定下百年新钛的发展目标

当IPFS遇见云服务|新钛云服与冰河分布式实验室达成战略协议

新钛云服正式获批工信部ISP/IDC(含互联网资源协作)牌照

深耕专业,矗立鳌头,新钛云服获千万Pre-A轮融资

新钛云服,打造最专业的Cloud MSP+,做企业业务和云之间的桥梁

新钛云服一周年,完成两轮融资,服务五十多家客户

上海某仓储物流电子商务公司混合云解决方案

往期技术干货

Kubernetes扩容到7,500节点的历程

低代码开发,全民开发,淘汰职业程序员!

国内主流公有云VPC使用对比及总结

万字长文:云架构设计原则|附PDF下载

刚刚,OpenStack 第 19 个版本来了,附28项特性详细解读!

Ceph OSD故障排除|万字经验总结

七个用于Docker和Kubernetes防护的安全工具

运维人的终身成长,从清单管理开始|万字长文!

OpenStack与ZStack深度对比:架构、部署、计算存储与网络、运维监控等

什么是云原生?

IT混合云战略:是什么、为什么,如何构建?

阿里云自建k8s存储插件csi安装使用_第7张图片

点????分享

阿里云自建k8s存储插件csi安装使用_第8张图片

戳????在看

你可能感兴趣的:(docker,kubernetes,分布式存储,分布式,阿里云)