前提条件

在Ceph为k8s创建一个pool

ceph osd pool create k8s 128

创建admin用户

ceph auth get-or-create client.admin mon 'allow r' osd 'allow rwx pool=k8s'

将admin用户的key进行base64编码

[root@node21 my-cluster]# ceph auth get-key client.admin | base64
QVFCbCtHTmQwdEN4TmhBQUdXcElhTkI1QXg0M2dDOWlNemM1dlE9PQ==

使用ceph的filesystem

在k8s集群中,创建secret

apiVersion: v1
kind: Secret
metadata:
name: ceph-secret
data:
key: QVFCbCtHTmQwdEN4TmhBQUdXcElhTkI1QXg0M2dDOWlNemM1dlE9PQ==

注:secret是namespace资源,需要在使用的namespace下创建

创建对应的资源

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: demoapp-redis
namespace: isphere-dev
spec:
replicas: 1
serviceName: demoapp-redis
selector:
matchLabels:
app: demoapp-redis
template:
metadata:
labels:
app: demoapp-redis
spec:
containers:
- name: demoapp-redis
image: hub.geovis.io/dockerhub/redis
imagePullPolicy: Always
ports:
- name: demoapp-redis
containerPort: 6379
volumeMounts:
- name: demoapp-redis-path
mountPath: /var/lib/redis
volumes:
- name: demoapp-redis-path
cephfs:
monitors:
- 192.168.4.21:6789
- 192.168.4.22:6789
- 192.168.4.29:6789
user: admin
secretRef:
name: ceph-secret
path: /k8svolume/isphere-dev/demoapp-redis
readOnly: false

k8s下使用ceph的动态扩展,storageclass

创建sceret

[root@t31 ceph_sc]# vi ceph-secret.yaml 

apiVersion: v1
kind: Secret
metadata:
name: ceph-admin-secret
type: "kubernetes.io/rbd" #重点
data:
key: QVFCbCtHTmQwdEN4TmhBQUdXcElhTkI1QXg0M2dDOWlNemM1dlE9PQ==

创建storageclass

[root@t31 ceph_sc]# vim storage-class-ceph.yaml 

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ceph-rbd
provisioner: kubernetes.io/rbd
parameters:
monitors: 192.168.4.21:6789,192.168.4.22:6789,192.168.4.29:6789
adminId: admin
adminSecretName: ceph-admin-secret
adminSecretNamespace: kube-system
pool: k8s
userId: admin
userSecretName: ceph-admin-secret
allowVolumeExpansion: true
reclaimPolicy: Delete

创建pvc

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nginx-test-vol1-claim
spec:
accessModes:
- ReadWriteOnce
storageClassName: ceph-rbd
resources:
requests:
storage: 10Gi

创建资源

apiVersion: v1
kind: Pod
metadata:
name: nginx-test
spec:
containers:
- name: nginx
image: nginx:latest
volumeMounts:
- name: nginx-test-vol1
mountPath: /data/
readOnly: false
volumes:
- name: nginx-test-vol1
persistentVolumeClaim:
claimName: nginx-test-vol1-claim

物理ceph集群+K8s的更多相关文章

  1. docker创建ceph集群

    背景 Ceph官方现在提供两类镜像来创建集群,一种是常规的,每一种Ceph组件是单独的一个镜像,如ceph/daemon.ceph/radosgw.ceph/mon.ceph/osd等:另外一种是最新 ...

  2. Ceph集群搭建及Kubernetes上实现动态存储(StorageClass)

    集群准备 ceph集群配置说明   节点名称 IP地址 配置 作用 ceph-moni-0 10.10.3.150 centos7.5 4C,16G,200Disk 管理节点,监视器 monitor ...

  3. Ceph 集群整体迁移方案(转)

    场景介绍:在我们的IDC中,存在着运行了3-6年的Ceph集群的服务器,这些服务器性能和容量等都已经无法满足当前业务的需求,在购入一批高性能机器后,希望将旧机器上的集群整体迁移到新机器上,当然,是保证 ...

  4. ceph集群性能测试结果

    对ceph存储集群(8台万兆服务器)从以下几个方面进行测试的结果 1.读写稳定性 无故障下的ceph集群性能完全满足业务对磁盘性能的需求. 测试数据结果如下表1-1,1-2 2.业务稳定性 ceph集 ...

  5. 使用Ceph集群作为Kubernetes的动态分配持久化存储(转)

    使用Docker快速部署Ceph集群 , 然后使用这个Ceph集群作为Kubernetes的动态分配持久化存储. Kubernetes集群要使用Ceph集群需要在每个Kubernetes节点上安装ce ...

  6. 小型ceph集群的搭建

    了解ceph DFS(distributed file system)分布式存储系统,指文件系统管理的物理存储资源,不一定直接连接在本地节点上,而是通过计算机网络与节点相连,众多类别中,ceph是当下 ...

  7. 二十八. Ceph概述 部署Ceph集群 Ceph块存储

    client   :192.168.4.10 node1 :192.168.4.11 ndoe2 :192.168.4.12 node3 :192.168.4.13   1.实验环境 准备四台KVM虚 ...

  8. CentOS 7 搭建 Ceph 集群(nautilus 版本)

    搭建 Ceph 分布式集群( nautilus 版本 ) 一.服务器环境说明 主机名 角色 IP地址 ceph-admin ceph-deploy 192.168.92.21 ceph-node1 m ...

  9. 手把手教你使用rpm部署ceph集群

    环境准备 1.在运行 Ceph 守护进程的节点上创建一个普通用户,ceph-deploy 会在节点安装软件包,所以你创建的用户需要无密码 sudo 权限.如果使用root可以忽略. 为赋予用户所有权限 ...

随机推荐

  1. oracle避免在索引列上使用IS NULL和IS NOT NULL

    避免在索引中使用任何可以为空的列,ORACLE将无法使用该索引 .对于单列索引,如果列包含空值,索引中将不存在此记录. 对于复合索引,如果每个列都为空,索引中同样不存在此记录. 如果至少有一个列不为空 ...

  2. phpstudy2016安装redis扩展

    第一步:查看phpstudy版本 第二步:查看phpinfo信息,看Architecture所属类型. 第三步:下载redis扩展 去http://windows.php.Net/downloads/ ...

  3. python yield 和 return 对比分析

    相同点:都是返回函数执行的结果 不同点:return 在返回结果后结束函数的运行,而yield 则是让函数变成一个生成器,生成器每次产生一个值(yield语句),函数被冻结,被唤醒后再产生一个值 例子 ...

  4. Java语言中的正则表达式

    正则表达式是什么? 正则表达式是一种强大而灵活的文本处理工具.初学正则表达式时,其语法是一个难点,但它确实是一种简洁.动态的语言.正则表达式提供了一种完全通用的方式,能够解决各种字符串处理相关的问题: ...

  5. async和await的执行顺序问题

    说明 : 要了解执行顺序,所需要的知识是了解浏览器js运行机制,以及微任务和宏任务的先后顺序.如果你明白了宏任务.微任务,请往下看: async function async1 () { consol ...

  6. 关于axios的一些封装

    关于Axios的封装 为何需要在封装 应用场景,项目中涉及100个AJAX请求,其中: 1.其中60个需要在请求头header设置token headers: {token: token}用于权限校验 ...

  7. C语言 屏幕截图 (GDI)

    截取全屏幕 #include <windows.h>   void echo(CHAR *str); int CaptureImage(HWND hWnd, CHAR *dirPath, ...

  8. CodeForces 1096D(线性dp)

    传送门 •题意 给出一个长度为n的字符串s,对于每个$s_{i}$有$a_{i}$的价值 让你删除最小的价值,使得字符串中不存在$hard$这个子序列 •思路 设dp[1]是不存在以$h$为前缀的最小 ...

  9. 2019-6-23-win10-uwp-应用放到桌面

    title author date CreateTime categories win10 uwp 应用放到桌面 lindexi 2019-06-23 11:11:30 +0800 2019-06-2 ...

  10. webpack 命令

    --content-base <file/directory/url/port>:内容的路径. --quiet: 在控制台不输出任何内容 --no-info: 抑制无聊的信息 --colo ...