เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต Ceph-เด…เดงเดฟเดทเตเด เดฟเดค เดธเด‚เดญเดฐเดฃเดคเตเดคเต† เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเดพเดฏเต‹เด—เดฟเด• เด‰เดฆเดพเดนเดฐเดฃเด‚

เด•เดฃเตเดŸเต†เดฏเตเดจเตผ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เด‡เดจเตเดฑเตผเดซเต‡เดธเต (เดธเดฟเดŽเดธเตเด) เด•เตเดฌเตผเดจเต†เดฑเตเดฑเตเด•เดณเตเด‚ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเตเด‚ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดเด•เต€เด•เตƒเดค เด‡เดจเตเดฑเตผเดซเต‡เดธเดพเดฃเต. เดžเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ เด…เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดนเตเดฐเดธเตเดตเดฎเดพเดฏเดฟ เดธเด‚เดธเดพเดฐเดฟเดšเตเดšเต เดชเดฑเดžเตเดžเต, เด‡เดจเตเดจเต เดจเดฎเตเดฎเตพ CSI, Ceph เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดธเด‚เดฏเต‹เดœเดจเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดธเต‚เด•เตเดทเตเดฎเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด‚: เดŽเด™เตเด™เดจเต†เดฏเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด•เดพเดฃเดฟเด•เตเด•เตเด‚. Ceph เดธเด‚เดญเดฐเดฃเด‚ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต.
เดงเดพเดฐเดฃเดฏเตเดŸเต† เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเดจเดพเดฏเดฟ เดฒเต‡เด–เดจเด‚ เดฏเดฅเดพเตผเดคเตเดฅเดตเตเด‚ เดšเต†เดฑเตเดคเดพเดฏเดฟ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดฟเดฏเดคเตเดฎเดพเดฏ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เดจเตฝเด•เตเดจเตเดจเต. Ceph, Kubernetes เด•เตเดฒเดธเตเดฑเตเดฑเดฑเตเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ เดžเด™เตเด™เตพ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ.

เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด†เดถเตเดšเดฐเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเตเดฃเตเดŸเต‹?

เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต Ceph-เด…เดงเดฟเดทเตเด เดฟเดค เดธเด‚เดญเดฐเดฃเดคเตเดคเต† เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเดพเดฏเต‹เด—เดฟเด• เด‰เดฆเดพเดนเดฐเดฃเด‚

เด…เดคเดฟเดจเดพเตฝ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเดฟเดฐเตฝเดคเตเดคเตเดฎเตเดชเดฟเตฝ เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เด‰เดฃเตเดŸเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, kubespray. เดธเดฎเต€เดชเดคเตเดคเต เด’เดฐเต เดธเต†เดซเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต - เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดชเตเดฒเต‡เดฌเตเด•เตเด•เตเด•เตพ. เด…เดตเดฏเตเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เด‰เตฝเดชเตเดชเดพเดฆเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เด•เตเดฑเดžเตเดžเดคเต 10 Gbit/s เดฌเดพเตปเดกเตโ€Œเดตเดฟเดกเตโ€Œเดคเตเดคเต เด‰เดณเตเดณ เด’เดฐเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเต เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

เด‡เดคเต†เดฒเตเดฒเดพเด‚ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดจเดฎเตเด•เตเด•เต เดชเต‹เด•เดพเด‚!

เด†เดฆเตเดฏเด‚, เดจเดฎเตเด•เตเด•เต 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 เดชเตเดฐเด•เดŸเดจเด™เตเด™เดณเตเด‚ เด‰เดชเดฐเดฟเดคเดฒเดคเตเดคเดฟเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฃเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏเดฟ, เดธเตเดฒเตผเด‚ เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟเด•เตพเด•เตเด•เต เด…เดต เดตเดณเดฐเต† เดตเต‡เด—เดคเตเดคเดฟเตฝ เดฒเดญเดฟเด•เตเด•เตเด‚.
เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เด•เดพเดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เด†เดดเดคเตเดคเดฟเตฝ เดชเต‹เดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ - เด…เดคเดฟเดจเตเดณเตเดณ เด”เดฆเตเดฏเต‹เด—เดฟเด• เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด‰เดฃเตเดŸเต. เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเต†เดซเต เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เดณเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดˆ เดฒเดฟเด™เตเด•เตเด•เตพ เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚:

เดตเต‹เดณเตเดฏเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตเดฑเต† เดชเตŠเดคเตเดคเดคเตเดคเตเดตเด™เตเด™เตพ
RBD เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป
เด’เดฐเต Ceph เดตเต€เด•เตเดทเดฃเด•เต‹เดฃเดฟเตฝ เดจเดฟเดจเตเดจเต RBD, Kubernetes เดŽเดจเตเดจเดฟเดต เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต
เด’เดฐเต CSI เดตเต€เด•เตเดทเดฃเด•เต‹เดฃเดฟเตฝ เดจเดฟเดจเตเดจเต RBD, Kubernetes เดŽเดจเตเดจเดฟเดต เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต
เดœเดจเดฑเตฝ CephFS เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป
CSI เดตเต€เด•เตเดทเดฃเด•เต‹เดฃเดฟเตฝ เดจเดฟเดจเตเดจเต CephFS, Kubernetes เดŽเดจเตเดจเดฟเดต เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เดธเตเดฒเตผเด‚ เด•เต‹เดดเตเดธเดฟเตฝ เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเต เดฌเต‡เดธเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เตเดฑเดšเตเดšเตเด•เต‚เดŸเดฟ เดฎเตเดจเตเดจเต‹เดŸเตเดŸเต เดชเต‹เดฏเดฟ, เดซเดฏเตฝ เดธเด‚เดญเดฐเดฃเดฎเดพเดฏเดฟ CephFS เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป Kubernetes-เตฝ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเด‚. GET/POST เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเดฟเดฒเต‚เดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดซเดฏเดฒเตเด•เตพ Ceph-เดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเดพเดจเตเด‚ เด…เดต เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฃเดคเตเดคเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดธเตˆเตป เด…เดชเตเดชเต เดšเต†เดฏเตเดฏเตเด• เดธเต†เดซเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดชเตเดคเดฟเดฏ เด•เต‹เดดเตโ€Œเดธเต. เดฌเต€เดฑเตเดฑ เดŸเต†เดธเตเดฑเตเดฑเต เดจเดŸเดจเตเดจเตเด•เตŠเดฃเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด•เต‹เดดเตโ€Œเดธเต เด’เดฐเต เด•เดฟเดดเดฟเดตเดฟเตฝ เดฒเดญเดฟเด•เตเด•เตเด‚ เด•เต‚เดŸเดพเดคเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดคเดฟเดจเตเดฑเต† เด‰เดณเตเดณเดŸเด•เตเด•เดคเตเดคเต† เดธเตเดตเดพเดงเต€เดจเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดฐเดšเดฏเดฟเดคเดพเดตเต: เด…เดฒเด•เตเดธเดพเดฃเตเดŸเตผ เดทเตเดตเดพเดฒเต‹เดตเต, เดชเตเดฐเดพเด•เตเดŸเต€เดธเต เดŽเดžเตเดšเดฟเดจเต€เดฏเตผ เดธเต—เดคเตเดคเตเดฌเตเดฐเดฟเดกเตเดœเต, เดธเตผเดŸเตเดŸเดฟเดซเตˆเดกเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเตผ, เดธเตเดฒเตผเด‚ เด•เต‹เดดเตเดธเตเด•เดณเตเดŸเต† เดฐเดšเดฏเดฟเดคเดพเดตเตเด‚ เดกเต†เดตเดฒเดชเตเดชเดฑเตเด‚.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com