āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°ā§āĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ (CSI) āĻšāĻ˛ Kubernetes āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻāĻ¨āĻŋāĻĢāĻžāĻāĻĄ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻāĻžāĻŦā§ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛ā§āĻāĻŋ
āĻĒā§āĻ°āĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻāĻĒāĻ˛āĻŦā§āĻ§āĻŋ āĻāĻ°ā§, āĻ¯āĻĻāĻŋāĻ āĻāĻĒāĻ˛āĻŦā§āĻ§āĻŋāĻ° āĻ¸āĻšāĻāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻ˛ā§āĻā§āĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĨ¤ āĻāĻŽāĻ°āĻž Ceph āĻāĻŦāĻ Kubernetes āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻĨāĻž āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŋ āĻ¨āĻžāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻāĻžāĻŦāĻā§āĻ¨?
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻāĻĻāĻ°ā§āĻĒāĻŖā§ āĻāĻāĻāĻŋ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ°āĻ¯āĻŧā§āĻā§, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ,
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ āĻ¸āĻŦ āĻāĻā§, āĻāĻ˛ā§āĻ¨!
āĻĒā§āĻ°āĻĨāĻŽā§, āĻāĻ¸ā§āĻ¨ Ceph āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋāĻ¤ā§ āĻ¯āĻžāĻ¨ āĻāĻŦāĻ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻāĻ āĻžāĻ āĻāĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŋ:
ceph health
ceph -s
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ RBD āĻĄāĻŋāĻ¸ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ:
ceph osd pool create kube 32
ceph osd pool application enable kube rbd
āĻāĻŦāĻžāĻ° āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻāĨ¤ āĻ¸ā§āĻāĻžāĻ¨ā§, āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻŽāĻ°āĻž RBD āĻāĻ° āĻāĻ¨ā§āĻ¯ Ceph CSI āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻŦāĨ¤ āĻāĻŽāĻ°āĻž āĻšā§āĻ˛āĻŽā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤āĻāĻžāĻŦā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻŦāĨ¤
āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻŋ, āĻāĻŽāĻ°āĻž ceph-csi-rbd āĻāĻžāĻ°ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ āĻĒāĻžāĻ:
helm repo add ceph-csi https://ceph.github.io/csi-charts
helm inspect values ceph-csi/ceph-csi-rbd > cephrbd.yml
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻā§ cephrbd.yml āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, Ceph āĻ āĻŽāĻ¨āĻŋāĻāĻ°āĻā§āĻ˛āĻŋāĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻāĻāĻĄāĻŋ āĻāĻŦāĻ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻā§āĻ˛āĻŋ āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°ā§āĻ¨:
ceph fsid # ŅĐ°Đē ĐŧŅ ŅСĐŊĐ°ĐĩĐŧ clusterID
ceph mon dump # Đ° ŅĐ°Đē ŅвидиĐŧ IP-Đ°Đ´ŅĐĩŅĐ° ĐŧĐžĐŊиŅĐžŅОв
āĻāĻŽāĻ°āĻž cephrbd.yml āĻĢāĻžāĻāĻ˛ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻŋāĨ¤ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻāĻŽāĻ°āĻž āĻĒāĻŋāĻāĻ¸āĻĒāĻŋ āĻ¨ā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ (āĻĒāĻĄ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¨ā§āĻ¤āĻŋ) āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻŋāĨ¤ āĻŦāĻŋāĻāĻžāĻā§ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¨ā§āĻĄāĻĒā§āĻ˛āĻžāĻāĻāĻ¨ и āĻŦāĻŋāĻ§āĻžāĻ¨āĻāĻžāĻ°ā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻĢāĻžāĻāĻ˛ā§ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¨ā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
csiConfig:
- clusterID: "bcd0d202-fba8-4352-b25d-75c89258d5ab"
monitors:
- "v2:172.18.8.5:3300/0,v1:172.18.8.5:6789/0"
- "v2:172.18.8.6:3300/0,v1:172.18.8.6:6789/0"
- "v2:172.18.8.7:3300/0,v1:172.18.8.7:6789/0"
nodeplugin:
podSecurityPolicy:
enabled: true
provisioner:
podSecurityPolicy:
enabled: true
āĻāĻ°āĻĒāĻ°ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻž āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻĨāĻžāĻā§ āĻ¤āĻž āĻšāĻ˛ Kubernetes āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻžāĻ°ā§āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻžāĨ¤
helm upgrade -i ceph-csi-rbd ceph-csi/ceph-csi-rbd -f cephrbd.yml -n ceph-csi-rbd --create-namespace
āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤, āĻāĻ°āĻŦāĻŋāĻĄāĻŋ āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° āĻāĻžāĻ āĻāĻ°ā§!
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§āĻā§āĻ°ā§āĻāĻā§āĻ˛āĻžāĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤ āĻāĻāĻŋ āĻāĻŦāĻžāĻ° Ceph āĻ¸āĻā§āĻā§ tinkering āĻāĻāĻāĻŋ āĻŦāĻŋāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨.
āĻāĻŽāĻ°āĻž Ceph-āĻ āĻāĻāĻāĻ¨ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻ¤āĻžāĻā§ āĻĒā§āĻ˛ā§ āĻ˛ā§āĻāĻžāĻ° āĻ āĻ§āĻŋāĻāĻžāĻ° āĻĻāĻŋāĻ āĻā§āĻŦā§:
ceph auth get-or-create client.rbdkube mon 'profile rbd' osd 'profile rbd pool=kube'
āĻāĻāĻ¨ āĻĻā§āĻāĻž āĻ¯āĻžāĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻā§ āĻāĻāĻ¨āĻ āĻāĻā§:
ceph auth get-key client.rbdkube
āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻ°āĻāĻŽ āĻāĻŋāĻā§ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻŦā§:
AQCO9NJbhYipKRAAMqZsnqqS/T8OYQX20xIa9A==
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻ¸āĻŋāĻā§āĻ°ā§āĻ-āĻ āĻāĻ āĻŽāĻžāĻ¨āĻāĻŋ āĻ¯ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ - āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻŦāĻŋ:
---
apiVersion: v1
kind: Secret
metadata:
name: csi-rbd-secret
namespace: ceph-csi-rbd
stringData:
# ĐĐŊĐ°ŅĐĩĐŊиŅ ĐēĐģŅŅĐĩĐš ŅООŅвĐĩŅŅŅвŅŅŅ иĐŧĐĩĐŊи ĐŋĐžĐģŅСОваŅĐĩĐģŅ и ĐĩĐŗĐž ĐēĐģŅŅŅ, ĐēĐ°Đē ŅĐēаСаĐŊĐž в
# ĐēĐģĐ°ŅŅĐĩŅĐĩ Ceph. ID ŅСĐĩŅĐ° Đ´ĐžĐģĐļĐĩĐŊ иĐŧĐĩŅŅ Đ´ĐžŅŅŅĐŋ Đē ĐŋŅĐģŅ,
# ŅĐēаСаĐŊĐŊĐžĐŧŅ в storage class
userID: rbdkube
userKey: <user-key>
āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻĒāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ:
kubectl apply -f secret.yaml
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻ°āĻāĻŽ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻāĻā§āĻ˛āĻžāĻ¸ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§āĻ¸ā§āĻ āĻĻāĻ°āĻāĻžāĻ°:
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: csi-rbd-sc
provisioner: rbd.csi.ceph.com
parameters:
clusterID: <cluster-id>
pool: kube
imageFeatures: layering
# ĐŅи ŅĐĩĐēŅĐĩŅŅ Đ´ĐžĐģĐļĐŊŅ ŅОдĐĩŅĐļĐ°ŅŅ Đ´Đ°ĐŊĐŊŅĐĩ Đ´ĐģŅ авŅĐžŅиСаŅии
# в ваŅ ĐŋŅĐģ.
csi.storage.k8s.io/provisioner-secret-name: csi-rbd-secret
csi.storage.k8s.io/provisioner-secret-namespace: ceph-csi-rbd
csi.storage.k8s.io/controller-expand-secret-name: csi-rbd-secret
csi.storage.k8s.io/controller-expand-secret-namespace: ceph-csi-rbd
csi.storage.k8s.io/node-stage-secret-name: csi-rbd-secret
csi.storage.k8s.io/node-stage-secret-namespace: ceph-csi-rbd
csi.storage.k8s.io/fstype: ext4
reclaimPolicy: Delete
allowVolumeExpansion: true
mountOptions:
- discard
āĻĒā§āĻ°āĻŖ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻāĻāĻĄāĻŋ, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻĻāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻļāĻŋāĻā§āĻāĻŋ ceph fsid, āĻāĻŦāĻ Kubernetes āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻāĻ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§āĻ¸ā§āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨:
kubectl apply -f storageclass.yaml
āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻāĻāĻ¸āĻžāĻĨā§ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§, āĻāĻ¸ā§āĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ PVC (āĻĒāĻžāĻ°āĻ¸āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻ āĻāĻ˛āĻŋāĻāĻŽ āĻĻāĻžāĻŦāĻŋ) āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rbd-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: csi-rbd-sc
āĻāĻ¸ā§āĻ¨ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻĻā§āĻā§āĻ¨ āĻāĻŋāĻāĻžāĻŦā§ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ Ceph āĻ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻž āĻāĻ˛āĻŋāĻāĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§:
kubectl get pvc
kubectl get pv
āĻ¸āĻŦāĻāĻŋāĻā§ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§! āĻāĻ Ceph āĻĻāĻŋāĻā§ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻŋ?
āĻāĻŽāĻ°āĻž āĻĒā§āĻ˛ā§ āĻāĻ˛āĻŋāĻāĻŽā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒāĻžāĻ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ˛āĻŋāĻāĻŽ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĻā§āĻāĻŋ:
rbd ls -p kube
rbd -p kube info csi-vol-eb3d257d-8c6c-11ea-bff5-6235e7640653 # ŅŅŅ, ĐēĐžĐŊĐĩŅĐŊĐž ĐļĐĩ, ĐąŅĐ´ĐĩŅ Đ´ŅŅĐŗОК ID ŅĐžĐŧĐ°, ĐēĐžŅĐžŅŅĐš вŅĐ´Đ°ĐģĐ° ĐŋŅĐĩĐ´ŅĐ´ŅŅĐ°Ņ ĐēĐžĐŧĐ°ĐŊĐ´Đ°
āĻāĻāĻ¨ āĻĻā§āĻāĻž āĻ¯āĻžāĻ āĻāĻŋāĻāĻžāĻŦā§ RBD āĻāĻ˛āĻŋāĻāĻŽ āĻ°āĻŋāĻ¸āĻžāĻāĻ āĻāĻ°āĻž āĻāĻžāĻ āĻāĻ°ā§āĨ¤
pvc.yaml āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§āĻ¸ā§āĻā§ āĻāĻ˛āĻŋāĻāĻŽā§āĻ° āĻāĻāĻžāĻ° 2Gi āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨:
kubectl apply -f pvc.yaml
āĻāĻ¸ā§āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻŦāĻžāĻ° āĻāĻ˛āĻŋāĻāĻŽ āĻāĻāĻžāĻ°āĻāĻŋ āĻĻā§āĻā§āĻ¨āĨ¤
rbd -p kube info csi-vol-eb3d257d-8c6c-11ea-bff5-6235e7640653
kubectl get pv
kubectl get pvc
āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ āĻ¯ā§ āĻĒāĻŋāĻāĻŋāĻ¸āĻŋāĻ° āĻāĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧāĻ¨āĻŋāĨ¤ āĻā§āĻ¨ āĻ¤āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ PVC-āĻāĻ° YAML āĻŦāĻŋāĻŦāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ Kubernetes-āĻā§ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
kubectl get pvc rbd-pvc -o yaml
āĻāĻāĻžāĻ¨ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž:
āĻŦāĻžāĻ°ā§āĻ¤āĻž: āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§ (āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ) āĻāĻāĻāĻŋ āĻĒāĻĄ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¨ā§āĻĄā§āĻ° āĻāĻ˛āĻŋāĻāĻŽā§āĻ° āĻ°āĻŋāĻ¸āĻžāĻāĻ āĻļā§āĻˇ āĻāĻ°āĻ¤ā§āĨ¤ āĻĒā§āĻ°āĻāĻžāĻ°: FileSystemResizePending
āĻ
āĻ°ā§āĻĨāĻžā§, āĻĄāĻŋāĻ¸ā§āĻ āĻŦā§āĻĄāĻŧā§āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻ¤āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋāĨ¤
āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ˛āĻŋāĻāĻŽ āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻļā§, āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž PVC/PV āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻā§āĻ¨ā§āĻāĻžāĻŦā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻĒāĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ:
---
apiVersion: v1
kind: Pod
metadata:
name: csi-rbd-demo-pod
spec:
containers:
- name: web-server
image: nginx:1.17.6
volumeMounts:
- name: mypvc
mountPath: /data
volumes:
- name: mypvc
persistentVolumeClaim:
claimName: rbd-pvc
readOnly: false
āĻāĻŦāĻ āĻāĻāĻ¨ āĻĒāĻŋāĻāĻŋāĻ¸āĻŋ āĻ¤āĻžāĻāĻžāĻ¨:
kubectl get pvc
āĻāĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧā§āĻā§, āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻ āĻāĻā§āĨ¤
āĻĒā§āĻ°āĻĨāĻŽ āĻ
āĻāĻļā§, āĻāĻŽāĻ°āĻž RBD āĻŦā§āĻ˛āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§āĻāĻŋ (āĻāĻāĻŋāĻ° āĻ
āĻ°ā§āĻĨ āĻšāĻ˛ Rados āĻŦā§āĻ˛āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸), āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻĻāĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ā§ āĻāĻāĻ āĻ¸āĻžāĻĨā§ āĻāĻ āĻĄāĻŋāĻ¸ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻāĻāĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻžāĨ¤ āĻĄāĻŋāĻ¸ā§āĻ āĻāĻŽā§āĻā§āĻ° āĻā§āĻ¯āĻŧā§ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ CephFS āĻ
āĻ¨ā§āĻ āĻŦā§āĻļāĻŋ āĻāĻĒāĻ¯ā§āĻā§āĻ¤āĨ¤
Ceph āĻāĻŦāĻ Kubernetes āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻŽāĻ°āĻž CephFS-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ CSI āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻ¤ā§āĻ¤āĻž āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻŦāĨ¤
āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¨āĻ¤ā§āĻ¨ āĻšā§āĻ˛āĻŽ āĻāĻžāĻ°ā§āĻ āĻĨā§āĻā§ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĒāĻžāĻ¨:
helm inspect values ceph-csi/ceph-csi-cephfs > cephfs.yml
āĻāĻŦāĻžāĻ° āĻāĻĒāĻ¨āĻžāĻā§ cephfs.yml āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻā§āĻ° āĻŽāĻ¤, Ceph āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻŦā§:
ceph fsid
ceph mon dump
āĻāĻ āĻŽāĻ¤ āĻŽāĻžāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°ā§āĻ¨:
csiConfig:
- clusterID: "bcd0d202-fba8-4352-b25d-75c89258d5ab"
monitors:
- "172.18.8.5:6789"
- "172.18.8.6:6789"
- "172.18.8.7:6789"
nodeplugin:
httpMetrics:
enabled: true
containerPort: 8091
podSecurityPolicy:
enabled: true
provisioner:
replicaCount: 1
podSecurityPolicy:
enabled: true
āĻ
āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻŽāĻ¨āĻŋāĻāĻ°ā§āĻ° āĻ āĻŋāĻāĻžāĻ¨āĻžāĻā§āĻ˛āĻŋ āĻ¸āĻ°āĻ˛ āĻĢāĻ°ā§āĻŽ āĻ āĻŋāĻāĻžāĻ¨āĻž:āĻĒā§āĻ°ā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄā§ cephfs āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻā§āĻ˛āĻŋ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻāĻāĻ¨āĻ v2 āĻŽāĻ¨āĻŋāĻāĻ° āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻāĻžāĻ¨ā§ āĻ¨āĻžāĨ¤
āĻāĻŽāĻ°āĻž httpMetrics āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŋ (āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻŽā§āĻā§āĻ°āĻŋāĻā§āĻ¸ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻžāĻŦā§) āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ nginx-proxy-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻŋāĻ°ā§āĻ§ āĻ¨āĻž āĻāĻ°ā§, āĻ¯āĻž Kubespray āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§.
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻšā§āĻ˛āĻŽ āĻāĻžāĻ°ā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨:
helm upgrade -i ceph-csi-cephfs ceph-csi/ceph-csi-cephfs -f cephfs.yml -n ceph-csi-cephfs --create-namespace
āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ Ceph āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°ā§ āĻ¯āĻžāĻāĨ¤ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯ā§ CephFS āĻĒā§āĻ°ā§āĻāĻŋāĻāĻžāĻ°ā§āĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻ āĻ§āĻŋāĻāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ fs āĻ¸ā§āĻŽāĻŋāĻ¤ āĻ āĻ§āĻŋāĻāĻžāĻ° āĻ¸āĻš:
ceph auth get-or-create client.fs mon 'allow r' mgr 'allow rw' mds 'allow rws' osd 'allow rw pool=cephfs_data, allow rw pool=cephfs_metadata'
āĻāĻŦāĻ āĻāĻ¸ā§āĻ¨ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻ¤āĻžāĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻā§āĻāĻŋ āĻĻā§āĻāĻŋ, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻŋ āĻĒāĻ°ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§:
ceph auth get-key client.fs
āĻāĻ¸ā§āĻ¨ āĻāĻ˛āĻžāĻĻāĻž āĻ¸āĻŋāĻā§āĻ°ā§āĻ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ°ā§āĻāĻā§āĻ˛āĻžāĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋāĨ¤
āĻ¨āĻ¤ā§āĻ¨ āĻāĻŋāĻā§ āĻ¨āĻ¯āĻŧ, āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ RBD āĻāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻāĻāĻŋ āĻĻā§āĻā§āĻāĻŋ:
---
apiVersion: v1
kind: Secret
metadata:
name: csi-cephfs-secret
namespace: ceph-csi-cephfs
stringData:
# ĐĐĩОйŅ
ОдиĐŧĐž Đ´ĐģŅ диĐŊĐ°ĐŧиŅĐĩŅĐēи ŅОСдаваĐĩĐŧŅŅ
ŅĐžĐŧОв
adminID: fs
adminKey: <вŅвОд ĐŋŅĐĩĐ´ŅĐ´ŅŅĐĩĐš ĐēĐžĐŧĐ°ĐŊĐ´Ņ>
āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§āĻ¸ā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž:
kubectl apply -f secret.yaml
āĻāĻŦāĻ āĻāĻāĻ¨ - āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻ¸ā§āĻā§āĻ°ā§āĻāĻā§āĻ˛āĻžāĻ¸:
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: csi-cephfs-sc
provisioner: cephfs.csi.ceph.com
parameters:
clusterID: <cluster-id>
# ĐĐŧŅ ŅĐ°ĐšĐģОвОК ŅиŅŅĐĩĐŧŅ CephFS, в ĐēĐžŅĐžŅОК ĐąŅĐ´ĐĩŅ ŅОСдаĐŊ ŅĐžĐŧ
fsName: cephfs
# (ĐŊĐĩОйŅСаŅĐĩĐģŅĐŊĐž) ĐŅĐģ Ceph, в ĐēĐžŅĐžŅĐžĐŧ ĐąŅĐ´ŅŅ Ņ
ŅĐ°ĐŊиŅŅŅŅ Đ´Đ°ĐŊĐŊŅĐĩ ŅĐžĐŧĐ°
# pool: cephfs_data
# (ĐŊĐĩОйŅСаŅĐĩĐģŅĐŊĐž) РаСдĐĩĐģĐĩĐŊĐŊŅĐĩ СаĐŋŅŅŅĐŧи ĐžĐŋŅии ĐŧĐžĐŊŅиŅОваĐŊиŅ Đ´ĐģŅ Ceph-fuse
# ĐŊĐ°ĐŋŅиĐŧĐĩŅ:
# fuseMountOptions: debug
# (ĐŊĐĩОйŅСаŅĐĩĐģŅĐŊĐž) РаСдĐĩĐģĐĩĐŊĐŊŅĐĩ СаĐŋŅŅŅĐŧи ĐžĐŋŅии ĐŧĐžĐŊŅиŅОваĐŊиŅ CephFS Đ´ĐģŅ ŅĐ´ŅĐ°
# ĐĄĐŧ. man mount.ceph ŅŅОйŅ ŅСĐŊĐ°ŅŅ ŅĐŋиŅĐžĐē ŅŅиŅ
ĐžĐŋŅиК. ĐĐ°ĐŋŅиĐŧĐĩŅ:
# kernelMountOptions: readdir_max_bytes=1048576,norbytes
# ĐĄĐĩĐēŅĐĩŅŅ Đ´ĐžĐģĐļĐŊŅ ŅОдĐĩŅĐļĐ°ŅŅ Đ´ĐžŅŅŅĐŋŅ Đ´ĐģŅ Đ°Đ´ĐŧиĐŊĐ° и/иĐģи ŅСĐĩŅĐ° Ceph.
csi.storage.k8s.io/provisioner-secret-name: csi-cephfs-secret
csi.storage.k8s.io/provisioner-secret-namespace: ceph-csi-cephfs
csi.storage.k8s.io/controller-expand-secret-name: csi-cephfs-secret
csi.storage.k8s.io/controller-expand-secret-namespace: ceph-csi-cephfs
csi.storage.k8s.io/node-stage-secret-name: csi-cephfs-secret
csi.storage.k8s.io/node-stage-secret-namespace: ceph-csi-cephfs
# (ĐŊĐĩОйŅСаŅĐĩĐģŅĐŊĐž) ĐŅаКвĐĩŅ ĐŧĐžĐļĐĩŅ иŅĐŋĐžĐģŅСОваŅŅ ĐģийО ceph-fuse (fuse),
# ĐģийО ceph kernelclient (kernel).
# ĐŅĐģи ĐŊĐĩ ŅĐēаСаĐŊĐž, ĐąŅĐ´ĐĩŅ иŅĐŋĐžĐģŅСОваŅŅŅŅ ĐŧĐžĐŊŅиŅОваĐŊиĐĩ ŅĐžĐŧОв ĐŋĐž ŅĐŧĐžĐģŅĐ°ĐŊиŅ,
# ŅŅĐž ĐžĐŋŅĐĩĐ´ĐĩĐģŅĐĩŅŅŅ ĐŋОиŅĐēĐžĐŧ ceph-fuse и mount.ceph
# mounter: kernel
reclaimPolicy: Delete
allowVolumeExpansion: true
mountOptions:
- debug
āĻāĻ° āĻāĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°āĻž āĻ¯āĻžāĻ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻāĻāĻĄāĻŋ āĻāĻŦāĻ Kubernetes āĻ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯:
kubectl apply -f storageclass.yaml
āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨
āĻā§āĻ āĻāĻ°āĻ¤ā§, āĻāĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻŽāĻ¤ā§, āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻĒāĻŋāĻāĻŋāĻ¸āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ:
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: csi-cephfs-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
storageClassName: csi-cephfs-sc
āĻāĻŦāĻ PVC/PV āĻāĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨:
kubectl get pvc
kubectl get pv
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ CephFS-āĻ āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĻā§āĻāĻ¤ā§ āĻāĻžāĻ¨, āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻā§āĻĨāĻžāĻ āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻ¨ā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§.
āĻāĻ¸ā§āĻ¨ Ceph āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋāĻ¤ā§ āĻ¯āĻžāĻ āĻāĻŦāĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻŋ:
# ĐĸĐžŅĐēĐ° ĐŧĐžĐŊŅиŅОваĐŊиŅ
mkdir -p /mnt/cephfs
# ХОСдаŅĐŧ ŅĐ°ĐšĐģ Ņ ĐēĐģŅŅĐžĐŧ Đ°Đ´ĐŧиĐŊиŅŅŅĐ°ŅĐžŅĐ°
ceph auth get-key client.admin >/etc/ceph/secret.key
# ĐОйавĐģŅĐĩĐŧ СаĐŋиŅŅ в /etc/fstab
# !! ĐСĐŧĐĩĐŊŅĐĩĐŧ ip Đ°Đ´ŅĐĩŅ ĐŊĐ° Đ°Đ´ŅĐĩŅ ĐŊĐ°ŅĐĩĐŗĐž ŅСĐģĐ°
echo "172.18.8.6:6789:/ /mnt/cephfs ceph name=admin,secretfile=/etc/ceph/secret.key,noatime,_netdev 0 2" >> /etc/fstab
mount /mnt/cephfs
āĻ
āĻŦāĻļā§āĻ¯āĻ, āĻāĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ Ceph āĻ¨ā§āĻĄā§ FS āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒā§āĻ°āĻļāĻŋāĻā§āĻˇāĻŖā§āĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻāĻĒāĻ¯ā§āĻā§āĻ¤, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ°
āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻļā§āĻˇā§, CephFS-āĻāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻ˛āĻŋāĻāĻŽ āĻ°āĻŋāĻ¸āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤ āĻāĻ¸ā§āĻ¨ Kubernetes-āĻ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻ āĻāĻŦāĻ PVC-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§āĻ¸ā§āĻ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻŋ - āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻāĻžāĻ° āĻŦāĻžāĻĄāĻŧāĻžāĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, 7Gi-āĻ¤ā§āĨ¤
āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ:
kubectl apply -f pvc.yaml
āĻā§āĻāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻŽāĻžāĻāĻ¨ā§āĻ āĻāĻ°āĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻāĻŋ āĻĻā§āĻā§āĻ¨:
getfattr -n ceph.quota.max_bytes <ĐēĐ°ŅĐ°ĐģĐžĐŗ-Ņ-Đ´Đ°ĐŊĐŊŅĐŧи>
āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻĒā§āĻ¯āĻžāĻā§āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ attr.
āĻā§āĻ āĻāĻ¯āĻŧ āĻĒāĻžāĻā§āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻšāĻžāĻ¤ āĻāĻ°āĻā§
āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻžāĻ¨āĻžāĻ¨ āĻāĻŦāĻ āĻĻā§āĻ°ā§āĻ YAML āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĢā§āĻ¸ā§āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻˇā§āĻ ā§ āĻāĻāĻŋāĻ˛ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦā§, āĻ¸ā§āĻ˛āĻžāĻ°ā§āĻŽ āĻāĻžāĻ¤ā§āĻ°āĻ°āĻž āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ¤ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻā§ āĻĢā§āĻ˛ā§āĨ¤
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻ°āĻž āĻāĻā§āĻāĻ˛ā§āĻ° āĻāĻā§āĻ°ā§ āĻ¯āĻžāĻāĻ¨āĻŋ - āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ Ceph āĻ¸ā§āĻā§āĻ°ā§āĻ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖā§ āĻāĻā§āĻ°āĻšā§ āĻšāĻ¨ āĻ¤āĻŦā§ āĻāĻ āĻ˛āĻŋāĻā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻŦā§:
āĻ¸ā§āĻ˛āĻžāĻ°ā§āĻŽ āĻā§āĻ°ā§āĻ¸ā§
āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°ā§āĻā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻāĻā§āĻ°āĻšā§ āĻšāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸āĻžāĻāĻ¨ āĻāĻĒ āĻāĻ°ā§āĻ¨
āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻ˛ā§āĻāĻ: āĻāĻ˛ā§āĻāĻāĻžāĻ¨ā§āĻĄāĻžāĻ° āĻļā§āĻŦāĻžāĻ˛āĻ, āĻĒā§āĻ°ā§āĻ¯āĻžāĻāĻāĻŋāĻ¸ āĻāĻā§āĻāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°
āĻāĻ¤ā§āĻ¸: www.habr.com