storageclass动态创建persistentvolume
来源:互联网 发布:Linux 线程 sched_fifo 编辑:程序博客网 时间:2024/05/16 17:40
storageclass动态创建persistentvolume
遇到的问题即原因
- 之前在开发过程中用storageclass结合pvc实现动态的创建pv,storageclass用的是ceph的rbd,创建ceph-rbd的需要创建对应的ceph-admin和ceph-user的cecret,其中用到ceph认证用的keystring,这里重点说下这个secret中keystring在k8s中是做啦base64编码处理了(sercet中的所有的data中的key所对应的值都必须是base64 encode后的串,在用的时候base64 decode),所以如果你直接在secret中吧keystring复制进来的话,会导致在创建pv的时候,ceph验证会失败,从而导致pv创建失败。
- 在通过storageclass去创建ceph-rbd的时候,创建ceph-rbd存储块失败,看日志发现缺少ceph rbd的命令,原因是因为我的kube-controller-manager是以容器的方式部署的,容器中并没有安装ceph rbd命令,最后通过看pv的controller源码,发现在创建ceph-rbd存储块的时候,是通过拼装ceph-rbd的创建存储块的命令来实现:rbd create rbdname -adminid=xxx………这样的格式,所以如果kube-controller-manager如果以容器的方式运行的话,必须得在容器的基础镜像中安装ceph rbd的命令,执行:yum install -y ceph-common即可。
yaml如下
ceph-secret.yaml
apiVersion: v1kind: Secretmetadata: name: ceph-secret namespace: kube-systemdata: key: AQCnIiVZm/CCOxAAWfYdUhJUr1OemUMaWAEVpw== type: kubernetes.io/rbd
ceph-user-secret.yaml
apiVersion: v1kind: Secretmetadata: name: ceph-secret-user namespace: defaultdata: key: AQCnIiVZm/CCOxAAWfYdUhJUr1OemUMaWAEVpw== type: kubernetes.io/rbd
ceph-rbd-storageclass.yaml
apiVersion: storage.k8s.io/v1beta1kind: StorageClassmetadata: name: minipaas annotations: storageclass.beta.kubernetes.io/is-default-class: "true"provisioner: kubernetes.io/rbdparameters: monitors: 192.168.1.1:6789,192.168.1.1:6789,192.168.1.1:6789 adminId: admin adminSecretName: ceph-secret adminSecretNamespace: kube-system pool: test-pool userId: admin userSecretName: ceph-secret-user
pvc-demo.yaml
kind: PersistentVolumeClaimapiVersion: v1metadata: name: demospec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: minipaas
说明
一定要记住secret中的key必须先经过base64 encode之后的ceph的keystring串,ceph-user-secret的namespace一定要和你对应的pvc的namespace一致。
阅读全文
0 0
- storageclass动态创建persistentvolume
- kubernets使用glusterfs作为storageclass并创建pvc和应用
- k8s-ceph-statefulsets-storageclass-nfs 动态卷有状态应用实践
- Kubernetes中PV/PVC/StorageClass
- 动态创建
- js动态创建li-动态创建td
- 动态创建按钮
- Delphi动态创建树
- 动态创建Tree
- 如何动态创建菜单
- 动态创建recordset
- 创建动态链接库
- 动态创建控件
- 动态创建用户界面
- 动态创建程序集
- TChart动态创建(Delphi)
- 动态创建数据窗口
- 创建动态控件
- cenos7----echo未完待续
- 就算萌新也能看得懂的gulp教程(2):利用gulp-concat文件合并,统计一下你写了多少行代码
- python 报错 **AttributeError: module 'string' has no attribute 'letters'** 的解决方法。
- 异或妙解
- rpm和yum
- storageclass动态创建persistentvolume
- 管理项目中jar包版本
- C# Winform应用程序占用内存较大解决方法整理(转)-- SetProcessWorkingSetSize
- 设计模式(二)单例模式
- 递归的递与归
- springMVC
- CodeForces 890B Vald and Cafes
- 易错1(字符)
- ffmpeg系列:使用ffmpeg转换为RGB数据并缩放视频