เดเดฃเตเดเตเดฏเตเดจเตผ เดธเตเดฑเตเดฑเตเดฑเตเดเต เดเดจเตเดฑเตผเดซเตเดธเต (เดธเดฟเดเดธเตเด) เดเตเดฌเตผเดจเตเดฑเตเดฑเตเดเดณเตเด เดธเตเดฑเตเดฑเตเดฑเตเดเต เดธเดฟเดธเตเดฑเตเดฑเดเตเดเดณเตเด เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดเดเตเดเตเดค เดเดจเตเดฑเตผเดซเตเดธเดพเดฃเต. เดเดเตเดเตพ เดเดคเดฟเดจเดเด เด
เดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดนเตเดฐเดธเตเดตเดฎเดพเดฏเดฟ เดธเดเดธเดพเดฐเดฟเดเตเดเต
เดงเดพเดฐเดฃเดฏเตเดเต เดเดณเตเดชเตเดชเดคเตเดคเดฟเดจเดพเดฏเดฟ เดฒเตเดเดจเด เดฏเดฅเดพเตผเดคเตเดฅเดตเตเด เดเตเดฑเตเดคเดพเดฏเดฟ เดฒเดณเดฟเดคเดฎเดพเดเตเดเดฟเดฏเดคเตเดฎเดพเดฏ เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ เดจเตฝเดเตเดจเตเดจเต. 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-เดฒเต เดฎเตเดฃเดฟเดฑเตเดฑเดฑเตเดเดณเตเดเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเดกเดฟเดฏเตเด IP เดตเดฟเดฒเดพเดธเดเตเดเดณเตเด เดเดฃเตเดเตเดคเตเดคเตเด:
ceph fsid # ัะฐะบ ะผั ัะทะฝะฐะตะผ clusterID
ceph mon dump # ะฐ ัะฐะบ ัะฒะธะดะธะผ IP-ะฐะดัะตัะฐ ะผะพะฝะธัะพัะพะฒ
เดฒเดญเดฟเดเตเด เดฎเตเดฒเตเดฏเดเตเดเตพ เดเดเตเดเตพ cephrbd.yml เดซเดฏเดฒเดฟเดฒเตเดเตเดเต เดจเตฝเดเตเดจเตเดจเต. เด เดคเต เดธเดฎเดฏเด, เดเดเตเดเตพ PSP เดชเตเดณเดฟเดธเดฟเดเตพ (Pod Security Policies) เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเตเดจเตเดจเต. เดตเดฟเดญเดพเดเดเตเดเดณเดฟเดฒเต เดเดชเตเดทเดจเตเดเตพ เดจเตเดกเตเดชเตเดฒเดเดฟเตป ะธ เดชเตเดฐเตเดตเดฟเดทเดจเตผ เดเดคเดฟเดจเดเด เดซเดฏเดฒเดฟเตฝ, เดเตเดตเดเต เดเดพเดฃเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเตเดชเตเดฒเต เด เดต เดถเดฐเดฟเดฏเดพเดเตเดเดพเด:
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 เดกเตเดฐเตเดตเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต!
เดจเดฎเตเดเตเดเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเตฝ เดเดฐเต เดชเตเดคเดฟเดฏ เดธเตเดฑเตเดฑเตเดฑเตเดเต เดเตเดฒเดพเดธเต เดธเตเดทเตเดเดฟเดเตเดเดพเด. เดเดคเดฟเดจเต เดตเตเดฃเตเดเตเด เดธเตเดซเตเดฎเดพเดฏเดฟ เด
เตฝเดชเตเดชเด เดเดฟเดเตเดเดฑเดฟเดเดเต เดเดตเดถเตเดฏเดฎเดพเดฃเต.
เดเดเตเดเตพ เดธเตเดซเดฟเตฝ เดเดฐเต เดชเตเดคเดฟเดฏ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดชเตเดณเดฟเตฝ เดเดดเตเดคเดพเดจเตเดณเตเดณ เด เดตเดเดพเดถเด เดจเตฝเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต เดเตเดฌเต:
ceph auth get-or-create client.rbdkube mon 'profile rbd' osd 'profile rbd pool=kube'
เดเดเตโเดธเดธเต เดเต เดเดชเตเดชเตเดดเตเด เดเดฃเตเดเตเดจเตเดจเต เดจเตเดเตเดเดพเด:
ceph auth get-key client.rbdkube
เดเดฎเดพเตปเดกเต เดเดคเตเดชเตเดฒเต เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดเดเตเดเตเดชเตเดเตเดเต เดเตเดฏเตเดฏเตเด:
AQCO9NJbhYipKRAAMqZsnqqS/T8OYQX20xIa9A==
เดจเดฎเตเดเตเดเต เด เดฎเตเดฒเตเดฏเด เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต เดธเตเดเตเดฐเดเตเดเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเดพเด - เดจเดฎเตเดเตเดเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณเดฟเดเดคเตเดคเต userKey:
---
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
เด เดเตเดคเตเดคเดคเดพเดฏเดฟ, เดเดเตเดเตพเดเตเดเต เดเดคเตเดชเตเดฒเตเดณเตเดณ เดเดฐเต StorageClass เดฎเดพเดจเดฟเดซเตเดธเตเดฑเตเดฑเต เดเดตเดถเตเดฏเดฎเดพเดฃเต:
---
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
เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต clusterID, เดเดเตเดเตพ เดเดคเดฟเดจเดเด เดเตเด เดชเด เดฟเดเตเดเดคเต ceph fsid, เดเตเดเดพเดคเต เด เดฎเดพเดจเดฟเดซเตเดธเตเดฑเตเดฑเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเต เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเด:
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-เตฝ Kubernetes เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเด เดตเตเดณเดฟเดฏเด เดธเตเดทเตเดเดฟเดเตเดเดคเต เดเดเตเดเดจเตเดฏเตเดจเตเดจเต เดจเดฎเตเดเตเดเต เดเดเตป เดจเตเดเตเดเดพเด:
kubectl get pvc
kubectl get pv
เดเดฒเตเดฒเดพเด เดฎเดฟเดเดเตเดเดคเดพเดฃเตเดจเตเดจเต เดคเตเดจเตเดจเตเดจเตเดจเต! Cef เดตเดถเดคเตเดคเต เดเดคเต เดเดเตเดเดจเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต?
เดชเตเดณเดฟเดฒเต เดตเตเดณเตเดฏเดเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเดเตเดเตพเดเตเดเต เดฒเดญเดฟเดเตเดเตเดเดฏเตเด เดเดเตเดเดณเตเดเต เดตเตเดณเดฟเดฏเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดตเดฟเดตเดฐเดเตเดเตพ เดเดพเดฃเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต:
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 เดตเดฟเดตเดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดฟเดจเตเดเต เดเตเดฆเดฟเดเตเดเดพเด:
kubectl get pvc rbd-pvc -o yaml
เดชเตเดฐเดถเตเดจเด เดเดคเดพ:
เดธเดจเตเดฆเตเดถเด: เดจเตเดกเดฟเดฒเต เดตเตเดณเดฟเดฏเดคเตเดคเดฟเดจเตเดฑเต เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเด เดตเดฒเตเดชเตเดชเด เดฎเดพเดฑเตเดฑเดพเตป เดเดชเดฏเตเดเตเดคเดพเดตเต เดเดฐเต เดชเตเดกเต (เดตเตเดฃเตเดเตเด) เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดคเดฐเด: FileSystemResizePending
เด
เดคเดพเดฏเดคเต, เดกเดฟเดธเตเดเต เดตเดณเตผเดจเตเดจเต, เดชเดเตเดทเต เด
เดคเดฟเดฒเต เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเด เดเดฒเตเดฒ.
เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเด เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ เดตเตเดณเดฟเดฏเด เดฎเตเดฃเตเดเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต. เดจเดฎเตเดฎเตเดเต เดฐเดพเดเตเดฏเดคเตเดคเต, เดธเตเดทเตเดเดฟเดเตเด เดชเดฟเดตเดฟเดธเดฟ / เดชเดฟเดตเดฟ เดจเดฟเดฒเดตเดฟเตฝ เดเดฐเต เดคเดฐเดคเตเดคเดฟเดฒเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ.
เดจเดฎเตเดเตเดเต เดเดฐเต เดเตเดธเตเดฑเตเดฑเต เดชเตเดกเต เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เดเดคเตเดชเตเดฒเต:
---
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 เดฌเตเดฒเตเดเตเดเต เดเดชเดเดฐเดฃเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเต (เดเดคเต เดฑเดพเดกเตเดธเต เดฌเตเดฒเตเดเตเดเต เดเดชเดเดฐเดฃเดคเตเดคเต เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต), เดเดจเตเดจเดพเตฝ เดตเตเดฏเดคเตเดฏเดธเตเดค เดฎเตเดเตเดฐเตเดธเตผเดตเตเดธเตเดเตพ เด เดกเดฟเดธเตเดเดฟเตฝ เดเดฐเตเดธเดฎเดฏเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดฃเดฎเตเดเตเดเดฟเตฝ เดเดคเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ. เดกเดฟเดธเตเดเต เดเดฎเตเดเตเดเดณเตเดเตเดเดพเตพ เดซเดฏเดฒเตเดเดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป 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
เดฎเตเดฃเดฟเดฑเตเดฑเตผ เดตเดฟเดฒเดพเดธเดเตเดเตพ เดฒเดณเดฟเดคเดฎเดพเดฏ เดซเตเด เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเตฝ เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต เดเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด:port. เดเดฐเต เดจเตเดกเดฟเตฝ cephfs เดฎเตเดฃเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ, เด เดตเดฟเดฒเดพเดธเดเตเดเตพ เดเตเตผเดฃเตฝ เดฎเตเดกเตเดฏเตเดณเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต, เด
เดคเต v2 เดฎเตเดฃเดฟเดฑเตเดฑเตผ เดชเตเดฐเตเดเตเดเตเดเตเดเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดฃเดฎเตเดจเตเดจเต เดเดคเตเดตเดฐเต เด
เดฑเดฟเดฏเดฟเดฒเตเดฒ.
เดเดเตเดเตพ httpเดฎเตเดเตเดฐเดฟเดเตโเดธเดฟเดจเดพเดฏเดฟ เดชเตเตผเดเตเดเต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต (เดฎเตเดเตเดฐเดฟเดเตโเดธเต เดจเดฟเดฐเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดชเตเดฐเตเดฎเดฟเดคเตเดฏเตเดธเต เด
เดตเดฟเดเต เดชเตเดเตเด) เด
เดคเตเดตเดดเดฟ เดเดคเต Kubespray เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดค nginx-proxy-เดฏเตเดฎเดพเดฏเดฟ เดตเตเดฐเตเดฆเตเดงเตเดฏเด เดเดฃเตเดเดพเดเตเดเดฟเดฒเตเดฒ. เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเต เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดฏเดฟเดฐเดฟเดเตเดเดพเด.
เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดนเตเตฝเด เดเดพเตผเดเตเดเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด:
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
เด เดคเต เดเดตเดฟเดเต เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเดพเด clusterID เดเตเดฌเตผเดจเตเดฑเตเดฑเตเดเดณเดฟเตฝ เดฌเดพเดงเดเดตเตเด:
kubectl apply -f storageclass.yaml
เดชเดฐเดฟเดถเตเดพเดงเดจ
เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดฎเตเดฎเตเดชเดคเตเดคเต เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดฒเตเดจเตเดจเดชเตเดฒเต, เดจเดฎเตเดเตเดเต เดเดฐเต PVC เดธเตเดทเตเดเดฟเดเตเดเดพเด:
---
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
เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเดคเตเดชเตเดฒเตเดณเตเดณ เดเดฐเต เดธเตเดซเต เดจเตเดกเดฟเตฝ FS เดฎเตเดฃเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดชเดฐเดฟเดถเตเดฒเดจ เดเดตเดถเตเดฏเดเตเดเตพเดเตเดเต เดฎเดพเดคเตเดฐเดฎเต เด
เดจเตเดฏเตเดเตเดฏเดฎเดพเดเต, เด
เดคเดพเดฃเต เดเดเตเดเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเต
เด เดตเดธเดพเดจเดฎเดพเดฏเดฟ, CephFS-เดจเตเดฑเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดตเตเดณเดฟเดฏเด เดตเดฒเตเดชเตเดชเด เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดฒเตเดเต เดเดพเดฐเตเดฏเดเตเดเตพ เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด. เดจเดฎเตเดเตเดเต Kubernetes-เดฒเตเดเตเดเต เดฎเดเดเตเดเดพเด, PVC-เดฏเตโเดเตเดเดพเดฏเดฟ เดเดเตเดเดณเตเดเต เดฎเดพเดจเดฟเดซเตเดธเตเดฑเตเดฑเต เดเดกเดฟเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเด - เด เดตเดฟเดเต เดตเดฒเตเดชเตเดชเด เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 7Gi-เดฒเตเดเตเดเต.
เดเดกเดฟเดฑเตเดฑเต เดเตเดฏเตเดค เดซเดฏเตฝ เดชเตเดฐเดฏเตเดเดฟเดเตเดเดพเด:
kubectl apply -f pvc.yaml
เดเตเดตเดพเดเตเด เดเดเตเดเดจเต เดฎเดพเดฑเดฟเดฏเตเดจเตเดจเต เดเดพเดฃเดพเตป เดฎเตเดฃเตเดเต เดเตเดฏเตเดค เดกเดฏเดฑเดเตเดเดฑเดฟ เดจเตเดเตเดเดพเด:
getfattr -n ceph.quota.max_bytes <ะบะฐัะฐะปะพะณ-ั-ะดะฐะฝะฝัะผะธ>
เด เดเดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเดณเตเดเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดชเดพเดเตเดเตเดเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดฃเตเดเดคเดพเดฏเดฟ เดตเดจเตเดจเตเดเตเดเดพเด atr.
เดเดฃเตเดฃเตเดเตพ เดญเดฏเดชเตเดชเตเดเตเดจเตเดจเต, เดชเดเตเดทเต เดเตเดเตพ เดญเดฏเดชเตเดชเตเดเตเดจเตเดจเต
เด เดเดฒเตเดฒเดพ เดฎเดจเตเดคเตเดฐเดเตเดเดณเตเด เดจเตเดฃเตเด YAML เดชเตเดฐเดเดเดจเดเตเดเดณเตเด เดเดชเดฐเดฟเดคเดฒเดคเตเดคเดฟเตฝ เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฃเตเดจเตเดจเต เดคเตเดจเตเดจเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ เดชเตเดฐเดพเดฏเตเดเดฟเดเดฎเดพเดฏเดฟ, เดธเตเดฒเตผเด เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟเดเตพเดเตเดเต เด
เดต เดตเดณเดฐเต เดตเตเดเดคเตเดคเดฟเตฝ เดฒเดญเดฟเดเตเดเตเด.
เด เดฒเตเดเดจเดคเตเดคเดฟเตฝ เดเดเตเดเตพ เดเดพเดเตเดเดฟเดฒเตเดเตเดเต เดเดดเดคเตเดคเดฟเตฝ เดชเตเดฏเดฟเดเตเดเดฟเดฒเตเดฒ - เด
เดคเดฟเดจเตเดณเตเดณ เดเดฆเตเดฏเตเดเดฟเด เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเตป เดเดฃเตเดเต. เดเดฐเต เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดซเต เดธเตเดฑเตเดฑเตเดฑเตเดเต เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดตเดฟเดถเดฆเดพเดเดถเดเตเดเดณเดฟเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดฒเดฟเดเตเดเตเดเตพ เดธเดนเดพเดฏเดฟเดเตเดเตเด:
เดธเตเดฒเตผเด เดเตเดดเตเดธเดฟเตฝ
เดจเดฟเดเตเดเตพเดเตเดเต เดกเดพเดฑเตเดฑ เดธเดเดญเดฐเดฃเดคเตเดคเดฟเตฝ เดเตเดเตเดคเตฝ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดธเตเตป เด
เดชเตเดชเต เดเตเดฏเตเดฏเตเด
เดฒเตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เดฐเดเดฏเดฟเดคเดพเดตเต: เด
เดฒเดเตเดธเดพเดฃเตเดเตผ เดทเตเดตเดพเดฒเตเดตเต, เดชเตเดฐเดพเดเตเดเตเดธเต เดเดเตเดเดฟเดจเตเดฏเตผ
เด เดตเดฒเดเดฌเด: www.habr.com