设为首页 收藏本站
查看: 1180|回复: 0

[经验分享] kubernetes整合ceph rbd

[复制链接]

尚未签到

发表于 2018-9-16 07:08:59 | 显示全部楼层 |阅读模式
  一、有一个ceph cluster,假设已经准备好了,文档网上一大堆
  二、开始集成ceph和kuberntes
  2.1 禁用rbd features
  rbd image有4个 features,layering, exclusive-lock, object-map, fast-diff, deep-flatten
  因为目前内核仅支持layering,修改默认配置
  每个ceph node的/etc/ceph/ceph.conf 添加一行
  rbd_default_features = 1
  这样之后创建的image 只有这一个feature
  验证方式:
ceph --show-config|grep rbd|grep features  
rbd_default_features = 1
  2.2 创建ceph-secret这个k8s secret对象,这个secret对象用于k8s volume插件访问ceph集群:
  获取client.admin的keyring值,并用base64编码:
# ceph auth get-key client.admin  
AQBRIaFYqWT8AhAAUtmJgeNFW/o1ylUzssQQhA==
# echo "AQBRIaFYqWT8AhAAUtmJgeNFW/o1ylUzssQQhA=="|base64  
QVFCUklhRllxV1Q4QWhBQVV0bUpnZU5GVy9vMXlsVXpzc1FRaEE9PQo=
  创建ceph-secret.yaml文件,data下的key字段值即为上面得到的编码值:
apiVersion: v1  
kind: Secret
  
metadata:
  
  name: ceph-secret
  
data:
  
  key: QVFCUklhRllxV1Q4QWhBQVV0bUpnZU5GVy9vMXlsVXpzc1FRaEE9PQo=
  创建ceph-secret:
# kubectl create -f ceph-secret.yamlsecret "ceph-secret" created  
# kubectl get secret
  
NAME     TYPE    DATA      AGE
  
ceph-secret  Opaque   1       2d
  
default-token-5vt3n  kubernetes.io/service-account-token 3 106d
  三、Kubernetes Persistent Volume和Persistent Volume Claim
  概念:PV是集群的资源,PVC请求资源并检查资源是否可用
  注意:以下操作设计到name的参数,一定要一致
  3.1 创建disk image (以jdk保存到ceph举例)
# rbd create jdk-image -s 1G  
# rbd info jdk-image
  
rbd image 'jdk-image':
  
        size 1024 MB in 256 objects
  
        order 22 (4096 kB objects)
  
        block_name_prefix: rbd_data.37642ae8944a
  
        format: 2
  
        features: layering
  
        flags:
  3.2 创建pv(仍然使用之前创建的ceph-secret)
  创建jdk-pv.yaml:
  monitors: 就是ceph的mon,有几个写几个
apiVersion: v1  
kind: PersistentVolume
  
metadata:
  
  name: jdk-pv
  
spec:
  
  capacity:
  
    storage: 2Gi
  
  accessModes:
  
    - ReadWriteOnce
  
  rbd:
  
    monitors:
  
      - 10.10.10.1:6789
  
    pool: rbd
  
    image: jdk-image
  
    user: admin
  
    secretRef:
  
      name: ceph-secret
  
    fsType: xfs
  
    readOnly: false
  
  persistentVolumeReclaimPolicy: Recycle
  执行创建操作:
# kubectl create -f jdk-pv.yamlpersistentvolume "jdk-pv" created  
#kubectl get pv
  
NAME      CAPACITY   ACCESSMODES   RECLAIMPOLICY   STATUS      CLAIM      REASON    AGE
  
ceph-pv   1Gi        RWO           Recycle         Bound       default/ceph-claim   1d
  
jdk-pv    2Gi        RWO           Recycle         Available            1m
  3.3 创建pvc
  创建jdk-pvc.yaml
kind: PersistentVolumeClaim  
apiVersion: v1
  
metadata:
  
  name: jdk-claim
  
spec:
  
  accessModes:
  
    - ReadWriteOnce
  
  resources:
  
    requests:
  
      storage: 1Gi
  执行创建操作:
# kubectl create -f jdk-pvc.yamlpersistentvolumeclaim "jdk-claim" created  
# kubectl get pvc
  
NAME     STATUS    VOLUME    CAPACITY   ACCESSMODES   AGE
  
ceph-claim   Bound     ceph-pv   1Gi    RWO       2d
  
jdk-claim    Bound     jdk-pv    2Gi    RWO       39s
  3.4 创建挂载ceph rbd的pod:
  创建 ceph-busyboxpod.yaml
apiVersion: v1  
kind: Pod
  
metadata:
  
  name: ceph-busybox
  
spec:
  
  containers:
  
  - name: ceph-busybox
  
    image: busybox
  
    command: ["sleep", "600000"]
  
    volumeMounts:
  
    - name: ceph-vol1
  
      mountPath: /usr/share/busybox
  
      readOnly: false
  
  volumes:
  
  - name: ceph-vol1
  
    persistentVolumeClaim:
  
      claimName: jdk-claim
  执行创建操作:
kubectl create -f ceph-busyboxpod.yaml  ceph rbd 持久化 这里描述下:
  1、稳定性在于ceph
  2、只能同一node挂载,不能跨node
  3、读写只能一个pod,其他pod只能读
  官方url描述
  https://kubernetes.io/docs/user-guide/volumes/#rbd
  附官方关于kubernetes的volume的mode
  https://kubernetes.io/docs/user-guide/persistent-volumes/
DSC0000.png




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-584263-1-1.html 上篇帖子: 通过Rancher部署并扩容Kubernetes集群基础篇二 下篇帖子: k8s集群之kubernetes-dashboard和kube-dns组件部署安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表