เชเชจเซเชเซเชจเชฐ เชธเซเชเซเชฐเซเช เชเชจเซเชเชฐเชซเซเชธ (CSI) เช เชเซเชฌเชฐเชจเซเชเซเชธ เช
เชจเซ เชธเซเชเซเชฐเซเช เชธเชฟเชธเซเชเชฎเซเชธ เชตเชเซเชเซเชจเซเช เชเชเซเชเซเชค เชเชจเซเชเชฐเชซเซเชธ เชเซ. เช
เชฎเซ เชชเชนเซเชฒเชพเชฅเซ เช เชคเซเชจเชพ เชตเชฟเชถเซ เชเซเชเชเชฎเชพเช เชตเชพเชค เชเชฐเซ เชเซ
เช
เชจเซเชญเซเชคเชฟเชจเซ เชธเชฐเชณเชคเชพ เชฎเชพเชเซ เชฒเซเช เชตเชพเชธเซเชคเชตเชฟเช, เชเซเชเซ เชฅเซเชกเชพ เชธเชฐเชณ เชเชฆเชพเชนเชฐเชฃเซ เชชเซเชฐเชพ เชชเชพเชกเซ เชเซ. เช
เชฎเซ 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 เชฎเชพเช เชฎเซเชจเชฟเชเชฐเชจเชพ เชเซเชฒเชธเซเชเชฐ ID เช เชจเซ IP เชธเชฐเชจเชพเชฎเชพเช เชถเซเชงเซ:
ceph fsid # ัะฐะบ ะผั ัะทะฝะฐะตะผ clusterID
ceph mon dump # ะฐ ัะฐะบ ัะฒะธะดะธะผ IP-ะฐะดัะตัะฐ ะผะพะฝะธัะพัะพะฒ
เช เชฎเซ cephrbd.yml เชซเชพเชเชฒเชฎเชพเช เชฎเซเชณเชตเซเชฒ เชฎเซเชฒเซเชฏเซ เชฆเชพเชเชฒ เชเชฐเซเช เชเซเช. เชคเซ เช เชธเชฎเชฏเซ, เช เชฎเซ PSP เชจเซเชคเชฟเช (เชชเซเชก เชธเซเชฐเชเซเชทเชพ เชจเซเชคเชฟเช) เชจเซ เชฐเชเชจเชพเชจเซ เชธเชเซเชทเชฎ เชเชฐเซเช เชเซเช. เชตเชฟเชญเชพเชเซเชฎเชพเช เชตเชฟเชเชฒเซเชชเซ เชจเซเชกเชชเซเชฒเชเชฟเชจ ะธ เชเซเชเชตเชพเช เชเชฐเชจเชพเชฐ เชซเชพเชเชฒเชฎเชพเช เชชเชนเซเชฒเซเชฅเซ เช เชเซ, เชคเซเช เชจเซเชเซ เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ เชธเซเชงเชพเชฐเซ เชถเชเชพเชฏ เชเซ:
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
เชเชเชณ, เชเชชเชฃเชพ เชฎเชพเชเซ เชเซ เชฌเชพเชเซ เชฐเชนเซ เชเซ เชคเซ เชเซเชฌเชฐเชจเซเชเซเชธ เชเซเชฒเชธเซเชเชฐเชฎเชพเช เชเชพเชฐเซเชเชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชเซ.
helm upgrade -i ceph-csi-rbd ceph-csi/ceph-csi-rbd -f cephrbd.yml -n ceph-csi-rbd --create-namespace
เชธเชฐเชธ, RBD เชกเซเชฐเชพเชเชตเชฐ เชเชพเชฎ เชเชฐเซ เชเซ!
เชเชพเชฒเซ Kubernetes เชฎเชพเช เชเช เชจเชตเซ StorageClass เชฌเชจเชพเชตเซเช. เชเชจเซ เชซเชฐเซเชฅเซ Ceph เชธเชพเชฅเซ เชฅเซเชกเซ เชเชฟเชเชเชฐเชฟเชเชเชจเซ เชเชฐเซเชฐ เชเซ.
เช เชฎเซ 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
เชเชพเชฒเซ เชคเชฐเชค เช เชเซเชเช เชเซ เชเซเชฌเชฐเชจเซเชเซเชธเซ เชธเซเชซเชฎเชพเช เชตเชฟเชจเชเชคเซ เชเชฐเซเชฒ เชตเซเชฒเซเชฏเซเชฎ เชเซเชตเซ เชฐเซเชคเซ เชฌเชจเชพเชตเซเชฏเซเช:
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 เชฎเซเชจเชฟเชเชฐ เชชเซเชฐเซเชเซเชเซเชฒ เชธเชพเชฅเซ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเชตเซเช เชคเซ เชเชพเชฃเชคเซเช เชจเชฅเซ.
เช
เชฎเซ httpเชฎเซเชเซเชฐเชฟเชเซเชธ เชฎเชพเชเซ เชชเซเชฐเซเช เชฌเชฆเชฒเซเช เชเซเช (เชชเซเชฐเซเชฎเชฟเชฅเชฟเชฏเชธ เชฎเซเชเซเชฐเชฟเชเซเชธเชจเซเช เชจเชฟเชฐเซเชเซเชทเชฃ เชเชฐเชตเชพ เชฎเชพเชเซ เชคเซเชฏเชพเช เชเชถเซ) เชเซเชฅเซ เชคเซ 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
เชเชพเชฒเซ เช
เชฒเช เชธเชฟเชเซเชฐเซเช เช
เชจเซ เชธเซเชเซเชฐเซเช เชเซเชฒเชพเชธ เชฌเชจเชพเชตเซเช.
เชเชเช เชจเชตเซเช เชจเชฅเซ, เช
เชฎเซ เชเชฐเชฌเซเชกเซเชจเชพ เชเชฆเชพเชนเชฐเชฃเชฎเชพเช เช เชเซเช เชเซเชเซเชฏเชพ เชเซเช:
---
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
เชเชพเชฒเซ เชคเซเชจเซ เช เชนเซเช เชญเชฐเซเช เชเซเชฒเชธเซเชเชฐเชเชเชกเซ เช เชจเซ เชเซเชฌเชฐเชจเซเชเซเชธเชฎเชพเช เชฒเชพเชเซ:
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