āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ Ceph-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœāĻ•ā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ

āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ (CSI) āĻšāĻ˛ Kubernetes āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ‰āĻ¨āĻŋāĻĢāĻžāĻ‡āĻĄ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸āĨ¤ āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛ā§‡āĻ›āĻŋ āĻŦāĻ˛āĻž, āĻāĻŦāĻ‚ āĻ†āĻœ āĻ†āĻŽāĻ°āĻž CSI āĻāĻŦāĻ‚ Ceph āĻāĻ° āĻ¸āĻ‚āĻŽāĻŋāĻļā§āĻ°āĻŖāĻŸāĻŋ āĻ˜āĻ¨āĻŋāĻˇā§āĻ āĻ­āĻžāĻŦā§‡ āĻĻā§‡āĻ–āĻŦ: āĻ†āĻŽāĻ°āĻž āĻĻā§‡āĻ–āĻžāĻŦ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Ceph āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĨ¤
āĻĒā§āĻ°āĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§āĻŋ āĻ•āĻ°ā§‡, āĻ¯āĻĻāĻŋāĻ“ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§āĻŋāĻ° āĻ¸āĻšāĻœāĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻ˛ā§€āĻ•ā§ƒāĻ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĨ¤ āĻ†āĻŽāĻ°āĻž Ceph āĻāĻŦāĻ‚ Kubernetes āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ•āĻĨāĻž āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻŋ āĻ¨āĻžāĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ­āĻžāĻŦāĻ›ā§‡āĻ¨?

āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ Ceph-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœāĻ•ā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ

āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¨āĻ–āĻĻāĻ°ā§āĻĒāĻŖā§‡ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ•ā§āĻŦā§‡āĻ¸ā§āĻĒā§āĻ°ā§‡. āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻāĻ•āĻŸāĻŋ Ceph āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ•āĻžāĻœ āĻ•āĻ°āĻ›ā§‡ - āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻĒā§āĻ˛ā§‡āĻŦā§āĻ•ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ. āĻ†āĻŽāĻŋ āĻ†āĻļāĻž āĻ•āĻ°āĻŋ āĻ¯ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ‰āĻ¤ā§āĻĒāĻžāĻĻāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻŽāĻĒāĻ•ā§āĻˇā§‡ 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 āĻ āĻŽāĻ¨āĻŋāĻŸāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ†āĻ‡āĻĄāĻŋ āĻāĻŦāĻ‚ āĻ†āĻ‡āĻĒāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ—ā§āĻ˛āĻŋ āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°ā§āĻ¨:

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 āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖā§‡ āĻ†āĻ—ā§āĻ°āĻšā§€ āĻšāĻ¨ āĻ¤āĻŦā§‡ āĻāĻ‡ āĻ˛āĻŋāĻ™ā§āĻ•āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻŦā§‡:

āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸā§‡āĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¨ā§€āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡
āĻ†āĻ°āĻŦāĻŋāĻĄāĻŋ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨
Ceph āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ•ā§‹āĻŖ āĻĨā§‡āĻ•ā§‡ RBD āĻāĻŦāĻ‚ Kubernetes āĻāĻ•ā§€āĻ­ā§‚āĻ¤ āĻ•āĻ°āĻž
CSI āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ•ā§‹āĻŖ āĻĨā§‡āĻ•ā§‡ RBD āĻāĻŦāĻ‚ Kubernetes āĻāĻ•ā§€āĻ­ā§‚āĻ¤ āĻ•āĻ°āĻž
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ CephFS āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨
CSI āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ•ā§‹āĻŖ āĻĨā§‡āĻ•ā§‡ CephFS āĻāĻŦāĻ‚ Kubernetes āĻāĻ•ā§€āĻ­ā§‚āĻ¤ āĻ•āĻ°āĻž

āĻ¸ā§āĻ˛āĻžāĻ°ā§āĻŽ āĻ•ā§‹āĻ°ā§āĻ¸ā§‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻŦā§‡āĻ¸ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸā§ āĻāĻ—āĻŋāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯āĻž āĻĢāĻžāĻ‡āĻ˛ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ CephFS āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦā§‡āĨ¤ GET/POST āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ Ceph āĻĨā§‡āĻ•ā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻŦā§‡āĻ¨ā§ˇ

āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻŦā§‡āĻļāĻŋ āĻ†āĻ—ā§āĻ°āĻšā§€ āĻšāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¸āĻžāĻ‡āĻ¨ āĻ†āĻĒ āĻ•āĻ°ā§āĻ¨ Ceph āĻ‰āĻĒāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ•ā§‹āĻ°ā§āĻ¸. āĻŦāĻŋāĻŸāĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻšāĻ˛āĻžāĻ•āĻžāĻ˛ā§€āĻ¨, āĻ•ā§‹āĻ°ā§āĻ¸āĻŸāĻŋ āĻ›āĻžāĻĄāĻŧā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻ•ā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻ˛ā§‡āĻ–āĻ•: āĻ†āĻ˛ā§‡āĻ•āĻœāĻžāĻ¨ā§āĻĄāĻžāĻ° āĻļā§āĻŦāĻžāĻ˛āĻ­, āĻĒā§āĻ°ā§āĻ¯āĻžāĻ•āĻŸāĻŋāĻ¸ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻ‰āĻĨāĻŦā§āĻ°āĻŋāĻœ, āĻ¸āĻžāĻ°ā§āĻŸāĻŋāĻĢāĻžāĻ‡āĻĄ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ…ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻŸā§āĻ°ā§‡āĻŸāĻ°, āĻ¸ā§āĻ˛āĻžāĻ°ā§āĻŽ āĻ•ā§‹āĻ°ā§āĻ¸ā§‡āĻ° āĻ˛ā§‡āĻ–āĻ• āĻāĻŦāĻ‚ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com