01 云原生存储概述(转载)
1.01 云原生存储概述(转载)
2.02 Rook 简介(转载)3.04 Ceph 集群管理(转载)4.05 定制 Rook 集群(转载)5.06 云原生 RBD 块存储(转载)6.03 Rook 基础(转载)7.14 CRDS 资源详解(转载)8.13 快照与克隆特性(转载)9.07 云原生 CephFS 文件存储(转载)10.08 云原生对象存储(转载)11.09 OSD 日常管理(转载)12.10 Dashboard 图像管理(转载)13.11 Prometheus 监控系统(转载)14.12 容器存储扩容(转载)15.16 常⻅故障排查(转载)16.15 Ceph 高级参数配置(转载)目录
云原生存储概述
kubernetes
数据持久化
松耦合的方式,pod与存储分离,三种方式:
volume
:需要知道后端存储的细节,对接难度大PV/PVC
:管理员定义PV
,PersistentVolume
,用户通过PVC使用PersistentVolumeClaim
storageclass
:静态+动态,通过PVC
声明使用的空间,自动创建PV
和后端驱动的对接
【存储卷】
【PV
和PVC
】
【StorageClass
】
kubernetes
存储对接
volume
定义
apiVersion: v1
kind: Pod
metadata:
name: volume-rbd-demo
spec:
containers:
- name: pod-with-rbd
image: nginx:1.7.9
imagePullPolicy: IfNotPresent
ports:
- name: www
containerPort: 80
protocol: TCP
volumeMounts:
- name: rbd-demo
mountPath: /data
volumes:
- name: rbd-demo
rbd:
monitors:
- 10.254.100.101:6789
- 10.254.100.102:6789
- 10.254.100.103:6789
pool: kubernetes
image: rbd.img
fsType: ext4
user: kubernetes
secretRef:
name: ceph-secret
PV
和PVC
apiVersion: v1
kind: PersistentVolume
metadata:
name: rbd-demo
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 10G
rbd:
monitors:
- 10.254.100.101:6789
- 10.254.100.102:6789
- 10.254.100.103:6789
pool: kubernetes
image: demo-1.img
fsType: ext4
user: kubernetes
secretRef:
name: ceph-secret
persistentVolumeReclaimPolicy: Retain
storageClassName: rbd
PVC
调用PV
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-demo
spec:
accessModes:
- ReadWriteOnce
volumeName: rbd-demo
resources:
requests:
storage: 10G
storageClassName: rbd
Pod
中引用PVC
apiVersion: v1
kind: Pod
metadata:
name: pod-demo
spec:
containers:
- name: demo
image: nginx:1.7.9
imagePullPolicy: IfNotPresent
ports:
- name: www
protocol: TCP
containerPort: 80
volumeMounts:
- name: rbd
mountPath: /data
volumes:
- name: rbd
persistentVolumeClaim:
claimName: pvc-demo
StorageClass
StorageClass
存储定义
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: csi-rbd-sc
provisioner: rbd.csi.ceph.com
parameters:
clusterID: 760da58c-0041-4525-a8ac-1118106312de
pool: kubernetes
csi.storage.k8s.io/provisioner-secret-name: csi-rbd-secret
csi.storage.k8s.io/provisioner-secret-namespace: default
csi.storage.k8s.io/node-stage-secret-name: csi-rbd-secret
csi.storage.k8s.io/node-stage-secret-namespace: default
imageFeatures: layering
reclaimPolicy: Delete
mountOptions:
- discard
用户端直接使用静态创建
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: raw-block-pvc
spec:
accessModes:
- ReadWriteOnce
volumeMode: Block
resources:
requests:
storage: 1Gi
storageClassName: csi-rbd-sc
用户端直接使用静态创建
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: nginx # has to match .spec.template.metadata.labels
serviceName: "nginx"
replicas: 3 # by default is 1
template:
metadata:
labels:
app: nginx
spec:
terminationGracePeriodSeconds: 10
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "csi-rbd-sc"
resources:
requests:
storage: 1Gi
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程