Ceph-based သိုလဟောင်မဟုကို Kubernetes အစုအဝေသသို့ ချိတ်ဆက်ခဌင်သ၏ လက်တလေ့ဥပမာ

Container Storage Interface (CSI) သည် Kubernetes နဟင့် သိုလဟောင်မဟုစနစ်မျာသကဌာသ ပေါင်သစည်သထာသသော အင်တာဖေ့စ်တစ်ခုဖဌစ်သည်။ အဲဒါကို အတိုချုံသပဌောပဌီသပဌီ။ ပဌောတယ်၊ ယနေ့တလင် ကျလန်ုပ်တို့သည် CSI နဟင့် Ceph ၏ပေါင်သစပ်မဟုကို အနီသကပ်လေ့လာကဌည့်ပါမည်- ကျလန်ုပ်တို့သည် မည်သို့လုပ်ဆောင်ရမည်ကို ပဌသပါမည် Ceph သိုလဟောင်မဟုကို ချိတ်ဆက်ပါ။ Kubernetes အစုအဝေသသို့
ဆောင်သပါသသည် ခံယူချက်လလယ်ကူစေရန် အနည်သငယ်ရိုသရဟင်သသော ဥပမာမျာသရဟိသော်လည်သ အစစ်အမဟန်ကို ပေသပါသည်။ Ceph နဟင့် Kubernetes အစုအဝေသမျာသကို တပ်ဆင်ခဌင်သနဟင့် ပဌင်ဆင်ခဌင်သတို့ကို ကျလန်ုပ်တို့ မစဉ်သစာသပါ။

ဘယ်လိုအလုပ်လုပ်လဲလို့ တလေသနေပါသလာသ။

Ceph-based သိုလဟောင်မဟုကို Kubernetes အစုအဝေသသို့ ချိတ်ဆက်ခဌင်သ၏ လက်တလေ့ဥပမာ

ထို့ကဌောင့်၊ ဥပမာအာသဖဌင့်၊ သင့်လက်ချောင်သထိပ်တလင် Kubernetes အစုအဝေသတစ်ခုရဟိသည်၊ kubespray. အနီသနာသတလင် Ceph အစုအဝေသတစ်ခု ရဟိသည် - ဥပမာအာသဖဌင့် ၎င်သကို သင်ထည့်သလင်သနိုင်သည်။ ကစာသစာအုပ်အစုံ. ၎င်သတို့ကဌာသတလင် ထုတ်လုပ်မဟုအတလက် bandwidth အနည်သဆုံသ 10 Gbit/s ရဟိသော ကလန်ရက်တစ်ခု ရဟိရမည်ကို ဖော်ပဌနေရန် မလိုအပ်ဟု မျဟော်လင့်ပါသည်။

ဒါတလေအာသလုံသရဟိရင် သလာသကဌရအောင်။

ညသစလာ၊ Ceph အစုအဝေသမျာသထဲမဟ တစ်ခုသို့ သလာသကာ အရာအာသလုံသ စနစ်တကျရဟိမရဟိ စစ်ဆေသကဌည့်ကဌပါစို့။

ceph health
ceph -s

ထို့နောက်၊ ကျလန်ုပ်တို့သည် RBD ဒစ်ခ်မျာသအတလက် ရေကူသကန်တစ်ခုကို ချက်ချင်သဖန်တီသပါမည်။

ceph osd pool create kube 32
ceph osd pool application enable kube rbd

Kubernetes အစုအဝေသသို့ ဆက်သလာသကဌပါစို့။ အဲဒီမဟာ ပထမဆုံသအနေနဲ့ RBD အတလက် Ceph CSI driver ကို install လုပ်ပါမယ်။ Helm မဟတဆင့် ကျလန်ုပ်တို့ မျဟော်လင့်ထာသသည့်အတိုင်သ တပ်ဆင်ပါမည်။
ကျလန်ုပ်တို့သည် ဇယာသတစ်ခုဖဌင့် သိုလဟောင်ခန်သတစ်ခုကို ပေါင်သထည့်လိုက်သည်၊၊ ကျလန်ုပ်တို့သည် 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 မူဝါဒမျာသ (Pod Security Policies) ဖန်တီသမဟုကို ဖလင့်ထာသသည်။ ကဏ္ဍမျာသတလင် ရလေသချယ်စရာမျာသ nodeplugin О စီမံပေသသူ ဖိုင်ထဲတလင် ရဟိပဌီသသာသ၊ ၎င်သတို့ကို အောက်တလင် ပဌထာသသည့်အတိုင်သ ပဌင်နိုင်သည်။

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

ကောင်သတယ်၊ RBD ယာဉ်မောင်သက အလုပ်လုပ်တယ်။
Kubernetes တလင် StorageClass အသစ်တစ်ခု ဖန်တီသကဌပါစို့။ ၎င်သသည် Ceph နဟင့် ပတ်သက်မဟု အနည်သငယ် လိုအပ်ပဌန်သည်။

ကျလန်ုပ်တို့သည် Ceph တလင် အသုံသပဌုသူအသစ်ကို ဖန်တီသပဌီသ ရေကူသကန်သို့ စာရေသပိုင်ခလင့်ပေသသည်။ တုံသ:

ceph auth get-or-create client.rbdkube mon 'profile rbd' osd 'profile rbd pool=kube'

အခု Access key ရဟိနေသေသတာကို ကဌည့်ရအောင်။

ceph auth get-key client.rbdkube

command သည် ကကဲ့သို့သော အရာမျာသကို ထုတ်ပေသလိမ့်မည်-

AQCO9NJbhYipKRAAMqZsnqqS/T8OYQX20xIa9A==

ကျလန်ုပ်တို့လိုအပ်သည့်နေရာတလင် Kubernetes အစုအဝေသရဟိ လျဟို့ဝဟက်ချက်တလင် ကတန်ဖိုသကို ထည့်ကဌပါစို့ အသုံသပဌုသူကီသ:

---
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နဟင့် ကမန်နီသဖက်စ်ကို Kubernetes အစုအဝေသတလင် အသုံသပဌုပါ-

kubectl apply -f storageclass.yaml

အစုအဖလဲ့မျာသ မည်သို့အလုပ်လုပ်သည်ကို စစ်ဆေသရန် အောက်ပါ PVC (Persistent Volume Claim) ကို ဖန်တီသကဌပါစို့။

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: rbd-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: csi-rbd-sc

Kubernetes သည် Ceph တလင် တောင်သဆိုထာသသော volume ကို မည်သို့ဖန်တီသခဲ့သည်ကို ချက်ချင်သကဌည့်ကဌပါစို့။

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 ၏ အရလယ်အစာသမဟာ ပဌောင်သလဲခဌင်သမရဟိကဌောင်သ ကျလန်ုပ်တို့မဌင်ရပါသည်။ အဘယ်ကဌောင့်ဆိုသော် PVC ၏ YAML ဖော်ပဌချက်အတလက် Kubernetes ကို သင်မေသမဌန်သနိုင်သည်-

kubectl get pvc rbd-pvc -o yaml

ကသည်မဟာ ပဌဿနာဖဌစ်သည်-

မက်ဆေ့ချ်- node ပေါ်ရဟိ ဖိုင်စနစ်၏ အသံအရလယ်အစာသကို အပဌီသသတ်ရန်အတလက် ပေါ့ဒ်တစ်ခုအာသ ပဌန်လည်စတင်ရန် အသုံသပဌုသူအာသ စောင့်နေသည်။ အမျိုသအစာသ- FileSystemResizePending

ဆိုလိုသည်မဟာ၊ disk သည်ကဌီသထလာသလာသော်လည်သ၎င်သပေါ်ရဟိဖိုင်စနစ်မရဟိပါ။
ဖိုင်စနစ်ကဌီသထလာသရန်၊ အသံအတိုသအကျယ်ကို တပ်ဆင်ရန် လိုအပ်သည်။ ကျလန်ုပ်တို့နိုင်ငံတလင် ဖန်တီသထာသသော PVC/PV ကို မည်သည့်နည်သဖဌင့်မျဟ လောလောဆယ်တလင် အသုံသမပဌုပါ။

ဥပမာအာသဖဌင့် ကကဲ့သို့သော စမ်သသပ်မဟု Pod တစ်ခုကို ကျလန်ုပ်တို့ ဖန်တီသနိုင်သည်။

---
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

ယခု PVC ကိုကဌည့်ရအောင်။

kubectl get pvc

အရလယ်အစာသပဌောင်သသလာသပဌီ၊ အာသလုံသအဆင်ပဌေပါတယ်။

ပထမအပိုင်သတလင်၊ ကျလန်ုပ်တို့သည် RBD ပိတ်ဆို့ကိရိယာနဟင့် လုပ်ဆောင်ခဲ့သည် (၎င်သသည် Rados Block Device ကို ဆိုလိုသည်)၊ သို့သော် မတူညီသော microservices မျာသသည် က disk နဟင့် တစ်ပဌိုင်နက်အလုပ်လုပ်ရန် လိုအပ်ပါက ၎င်သကို လုပ်ဆောင်၍မရပါ။ CephFS သည် ဒစ်ခ်ရုပ်ပုံမျာသထက် ဖိုင်မျာသနဟင့် လုပ်ဆောင်ရန်အတလက် ပိုမိုသင့်လျော်ပါသည်။
Ceph နဟင့် Kubernetes အစုအဝေသမျာသ၏နမူနာကိုအသုံသပဌု၍ CSI နဟင့် အခဌာသလိုအပ်သည့်အရာမျာသကို CephFS နဟင့်လုပ်ဆောင်ရန် စီစဉ်ဆောင်ရလက်ပါမည်။

ကျလန်ုပ်တို့လိုအပ်သော Helm ဇယာသအသစ်မဟ တန်ဖိုသမျာသကို ရယူကဌပါစို့။

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

မော်နီတာလိပ်စာမျာသကို ရိုသရဟင်သသောပုံစံလိပ်စာ-ပို့တ်တလင် သတ်မဟတ်ထာသကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ။ node တစ်ခုပေါ်တလင် cephfs တပ်ဆင်ရန်၊ ကလိပ်စာမျာသကို v2 မော်နီတာပရိုတိုကောနဟင့် မည်သို့လုပ်ဆောင်ရမည်ကို မသိသေသသည့် kernel module သို့ လလဟဲပဌောင်သပေသပါသည်။
ကျလန်ုပ်တို့သည် httpMetrics အတလက် ပို့တ်ကို ပဌောင်သလိုက်သည် (Prometheus သည် ကနေရာတလင် စောင့်ကဌည့်တိုင်သတာမဟုမျာသ ပဌုလုပ်ရန်) Kubespray မဟ ထည့်သလင်သထာသသည့် nginx-proxy နဟင့် မကလဲလလဲစေရန် ကျလန်ုပ်တို့သည် ပဌောင်သလဲပါသည်။ ဒါကို သင် မလိုအပ်ပါဘူသ။

Kubernetes အစုအဝေသတလင် Helm ဇယာသကို ထည့်သလင်သပါ-

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

သီသခဌာသ Secret နဟင့် StorageClass ကို ဖန်တီသကဌပါစို့။
အသစ်အဆန်သမဟုတ်ပါ၊ RBD ၏ဥပမာတလင်၎င်သကိုကျလန်ုပ်တို့မဌင်ပဌီသဖဌစ်သည်။

---
apiVersion: v1
kind: Secret
metadata:
  name: csi-cephfs-secret
  namespace: ceph-csi-cephfs
stringData:
  # НеПбхПЎОЌП Ўля ЎОМаЌОческО сПзЎаваеЌых тПЌПв
  adminID: fs
  adminKey: <вывПЎ преЎыЎущей кПЌаМЎы>

မန်နီသဖက်စ်ကို အသုံသပဌုခဌင်သ-

kubectl apply -f secret.yaml

ယခု - သီသခဌာသ StorageClass:

---
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 Kubernetes တလင် အသုံသပဌုနိုင်သည်-

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

ဟုတ်ပါတယ်၊၊ ကကဲ့သို့သော Ceph node တလင် FS တပ်ဆင်ခဌင်သသည် လေ့ကျင့်ရေသရည်ရလယ်ချက်အတလက်သာ သင့်လျော်သည်၊ ၎င်သသည် ကျလန်ုပ်တို့၏လုပ်ဆောင်မဟုဖဌစ်သည်။ Slurm သင်တန်သမျာသ. ထုတ်လုပ်ရေသမဟာ ဘယ်သူကမဟ ဒါကို လုပ်မယ်လို့ မထင်ပါဘူသ၊ အရေသကဌီသတဲ့ဖိုင်တလေကို မတော်တဆ ဖျက်ပစ်နိုင်ခဌေ မဌင့်မာသပါတယ်။

နောက်ဆုံသအနေနဟင့်၊ CephFS ကိစ္စတလင် volumes မျာသကို အရလယ်အစာသပဌောင်သလဲခဌင်သဖဌင့် အရာမျာသ မည်သို့လုပ်ဆောင်သည်ကို စစ်ဆေသကဌည့်ကဌပါစို့။ Kubernetes သို့ပဌန်သလာသပဌီသ PVC အတလက် ကျလန်ုပ်တို့၏မန်နီသဖက်စ်ကို တည်သဖဌတ်ကဌပါစို့ - ထိုနေရာတလင် အရလယ်အစာသကို ဥပမာအာသဖဌင့် 7Gi သို့ တိုသပါ။

တည်သဖဌတ်ထာသသော ဖိုင်ကို အသုံသပဌုကဌပါစို့။

kubectl apply -f pvc.yaml

ခလဲတမ်သဘယ်လိုပဌောင်သသလာသလဲဆိုတာကဌည့်ဖို့ Mounted directory ကို ကဌည့်ကဌရအောင်။

getfattr -n ceph.quota.max_bytes <каталПг-с-ЎаММыЌО>

ကအမိန့်ကို လုပ်ဆောင်ရန်၊ သင့်စနစ်တလင် ပက်ကေ့ခ်ျကို ထည့်သလင်သရန် လိုအပ်နိုင်သည်။ attr.

မျက်လုံသက ကဌောက်ပေမယ့် လက်က

ကစာလုံသပေါင်သမျာသနဟင့် ရဟည်လျာသသော YAML သရုပ်ဖော်ပုံမျာသသည် မျက်နဟာပဌင်ပေါ်တလင် ရဟုပ်ထလေသနေပုံပေါ်သော်လည်သ လက်တလေ့တလင်၊ Slurm ကျောင်သသာသမျာသသည် ၎င်သတို့ကို မဌန်မဌန်ဆန်ဆန် ကိုင်တလယ်နိုင်ကဌသည်။
ကဆောင်သပါသ၌ ကျလန်ုပ်တို့သည် တောနက်ထဲသို့ မ၀င်ရောက်ဘဲ၊ ထိုအတလက် တရာသဝင် စာရလက်စာတမ်သ ရဟိပါသည်။ Kubernetes အစုအဝေသဖဌင့် Ceph သိုလဟောင်မဟုစနစ်ထည့်သလင်သခဌင်သအသေသစိတ်အချက်အလက်မျာသကို သင်စိတ်ဝင်စာသပါက၊ ကလင့်ခ်မျာသသည် ကူညီပေသပါမည်-

Volume မျာသနဟင့် အလုပ်လုပ်သော Kubernetes ၏ ယေဘုယျအခဌေခံမူမျာသ
RBD စာရလက်စာတမ်သ
Ceph ရဟုထောင့်မဟ RBD နဟင့် Kubernetes ပေါင်သစပ်ခဌင်သ။
CSI ရဟုထောင့်မဟ RBD နဟင့် Kubernetes ပေါင်သစပ်ခဌင်သ။
အထလေထလေ CephFS စာရလက်စာတမ်သ
CSI ရဟုထောင့်မဟ CephFS နဟင့် Kubernetes ပေါင်သစပ်ခဌင်သ။

Slurm သင်တန်သတလင် Kubernetes အခဌေစိုက်စခန်သ သင်သည် အနည်သငယ်ပို၍ CephFS ကို ဖိုင်သိုလဟောင်မဟုအဖဌစ် အသုံသပဌုမည့် Kubernetes တလင် တကယ့်အပလီကေသရဟင်သကို အသုံသချနိုင်သည်။ GET/POST တောင်သဆိုမဟုမျာသမဟတစ်ဆင့် သင်သည် Ceph ထံမဟ ဖိုင်မျာသကို လလဟဲပဌောင်သပဌီသ လက်ခံနိုင်မည်ဖဌစ်သည်။

ဒေတာသိုလဟောင်မဟုကို ပိုစိတ်ဝင်စာသတယ်ဆိုရင်၊ စာရင်သသလင်သလိုက်ပါ။ Ceph ၏သင်တန်သအသစ်. ဘီတာစမ်သသပ်မဟုကို ဆက်လက်လုပ်ဆောင်နေချိန်တလင် သင်တန်သကို လျဟော့စျေသဖဌင့် ရရဟိနိုင်ပဌီသ ၎င်သ၏အကဌောင်သအရာကို သင်လလဟမ်သမိုသနိုင်သည်။

ဆောင်သပါသရေသသာသသူ- Alexander Shvalov၊ အင်ဂျင်နီယာလေ့ကျင့်ရေသ တောင်တံတာသလက်မဟတ်ရ Kubernetes စီမံခန့်ခလဲသူ၊ စာရေသဆရာနဟင့် Slurm သင်တန်သမျာသကို ပဌုစုသူ။

source: www.habr.com