linux怎么查看本机内存大小
347
2022-09-10
K8S学习笔记之k8s使用ceph实现动态持久化存储
0x00 概述
本文章介绍如何使用ceph为k8s提供动态申请pv的功能。ceph提供底层存储功能,cephfs方式支持k8s的pv的3种访问模式ReadWriteOnce,ReadOnlyMany ,ReadWriteMany ,RBD支持ReadWriteOnce,ReadOnlyMany两种模式
0x01 部署K8S和Ceph
部署k8s
centos7使用kubeadm安装k8s-1.11版本
部署ceph
centos7安装ceph分布式存储集群
0x02 在k8s集群中配置使用ceph
2.1 使用Ceph RBD
2.1.1 使用kubeadm安装集群的额外配置
# 如果使用kubeadm部署的集群需要这些额外的步骤# 由于使用动态存储时 controller-manager 需要使用 rbd 命令创建 image# 所以 controller-manager 需要使用 rbd 命令# 由于官方controller-manager镜像里没有rbd命令# 如果没使用如下方式会报错无法成功创建pvc# 相关 issue >external-storage-rbd-provisioner.yaml< 2.1.2 配置 storageclass # 在k8s集群中所有节点安装 ceph-common# 需要使用kubelet使用rdb命令map附加rbd创建的imageyum install -y ceph-common# 创建 osd pool 在ceph的mon或者admin节点ceph osd pool create kube 4096ceph osd pool ls# 创建k8s访问ceph的用户 在ceph的mon或者admin节点ceph auth get-or-create client.kube mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=kube' -o ceph.client.kube.keyring# 查看key 在ceph的mon或者admin节点ceph auth get-key client.adminceph auth get-key client.kube# 创建 admin secret# CEPH_ADMIN_SECRET 替换为 client.admin 获取到的keyexport CEPH_ADMIN_SECRET='AQBBAnRbSiSOFxAAEZXNMzYV6hsceccYLhzdWw=='kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" \--from-literal=key=$CEPH_ADMIN_SECRET \--namespace=kube-system# 在 default 命名空间创建pvc用于访问ceph的 secret# CEPH_KUBE_SECRET 替换为 client.kube 获取到的keyexport CEPH_KUBE_SECRET='AQBZK3VbTN/QOBAAIYi6CRLQcVevW5HM8lunOg=='kubectl create secret generic ceph-user-secret --type="kubernetes.io/rbd" \--from-literal=key=$CEPH_KUBE_SECRET \--namespace=default# 查看 secretkubectl get secret ceph-user-secret -o yamlkubectl get secret ceph-secret -n kube-system -o yaml# 配置 StorageClass# 如果使用kubeadm创建的集群 provisioner 使用如下方式# provisioner: ceph.com/rbdcat >storageclass-ceph-rdb.yaml< 2.1.3 测试使用 # 创建pvc测试cat >ceph-rdb-pvc-test.yaml< 0x03 使用 CephFS # linux内核需要4.10+,否则会出现无法正常使用的问题,详细issue信息 github.com/kubernetes-… centos7升级内核 3.1 在ceph集群创建CephFS # 如下操作在ceph的mon或者admin节点# CephFS需要使用两个Pool来分别存储数据和元数据ceph osd pool create fs_data 128ceph osd pool create fs_metadata 128ceph osd lspools# 创建一个CephFSceph fs new cephfs fs_metadata fs_data# 查看ceph fs ls 3.2 部署cephfs-provisioner # 官方没有cephfs动态卷支持# 使用社区提供的cephfs-provisionercat >external-storage-cephfs-provisioner.yaml< 3.3 配置 storageclass # 查看key 在ceph的mon或者admin节点ceph auth get-key client.admin# 创建 admin secret# CEPH_ADMIN_SECRET 替换为 client.admin 获取到的key# 如果在测试 ceph rbd 方式已经添加 可以略过此步骤export CEPH_ADMIN_SECRET='AQBBAnRbSiSOFxAAEZXNMzYV6hsceccYLhzdWw=='kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" \--from-literal=key=$CEPH_ADMIN_SECRET \--namespace=kube-system# 查看 secretkubectl get secret ceph-secret -n kube-system -o yaml# 配置 StorageClasscat >storageclass-cephfs.yaml< 3.4 测试使用 # 创建pvc测试cat >cephfs-pvc-test.yaml< 参考1 参考2
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~