阿里云自建k8s存储插件csi安装使用
新钛云服已为您服务1213天
前言
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
文件说明
下载相关文件
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
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
kube-system csi-admin-token-ssflh kubernetes.io/service-account-token 3 2d14h
修改csi-plugin-managed.yaml & csi-provisioner-managed.yaml
两个文件修改位置一致请参考下图
kubectl apply -f csi-provisioner-managed.yaml
查看部署
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"}}'
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 部署测试
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
1.2 查看pod
1.3 查看挂载状态
1.4: 磁盘扩容测试
阿里云插件创建的storageclasses.storage 默认支持动态扩容(只能增加)
disk-pvc ---> pvc 的名称
storage ---> 磁盘扩容后的大小
kubectl patch pvc disk-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
storage ---> 磁盘扩容后的大小
kubectl patch pvc disk-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
查看扩容结果
小结
按照上文部署完成后阿里云的常用存储可以正常使用,样例虽然只给了disk, 但是 nas oss 一样可以正常使用。
需要注意的是阿里云的动态卷有很多种,部分不能正常使用,这个可能与服务器所在的区域有关,资源不足,或者资源本身的使用限制不满足当前集群的部署环境(极速nas 不支持跨可用区)。创建集群时要充分评估集群需求,选择合适的可用区。
了解新钛云服
往期技术干货
点👇分享
戳👇在看
关键词
资源
集群
文件
新钛云服
插件
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。