Kubernetes āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨: Flexvolume āĻĨā§‡āĻ•ā§‡ CSI āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤

Kubernetes āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨: Flexvolume āĻĨā§‡āĻ•ā§‡ CSI āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤

āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻ–āĻ¨ Kubernetes āĻāĻ–āĻ¨āĻ“ v1.0.0 āĻ›āĻŋāĻ˛, āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ›āĻŋāĻ˛āĨ¤ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ (āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€) āĻ§āĻžāĻ°āĻ• āĻĄā§‡āĻŸāĻž āĻ¸āĻžā§āĻšāĻ¯āĻŧ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ›āĻŋāĻ˛āĨ¤ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ•āĻŽ āĻ›āĻŋāĻ˛, āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻĨāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ›āĻŋāĻ˛ GCE PD, Ceph, AWS EBS āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻĻā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĨ¤

āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻāĻ‡ āĻ•āĻžāĻ°āĻŖā§‡āĻ‡ āĻ¤āĻžāĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻžāĻŽ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›ā§‡ - āĻ‡āĻ¨-āĻŸā§āĻ°āĻŋāĨ¤ āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻ…āĻ¨ā§‡āĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻāĻ‡ āĻœāĻžāĻ¤ā§€āĻ¯āĻŧ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¸ā§‡āĻŸ āĻ…āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻŦāĻ˛ā§‡ āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ•āĻžāĻ°āĻŋāĻ—āĻ°āĻ°āĻž āĻĒā§āĻ¯āĻžāĻš āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ Kubernetes āĻ•ā§‹āĻ°ā§‡ āĻ¸āĻšāĻœ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ¤āĻžāĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ Kubernetes āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻĨā§‡, Kubernetes āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ¤āĻž āĻŦā§āĻāĻ¤ā§‡ āĻĒā§‡āĻ°ā§‡āĻ›āĻŋāĻ˛ āĻŽāĻžāĻ› āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻŽāĻžāĻ¨ā§āĻˇ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻŽāĻžāĻ› āĻ§āĻ°āĻžāĻ° āĻ›āĻŋāĻĒ. āĻāĻŦāĻ‚ Kubernetes v1.2.0 āĻāĻ° āĻĒā§āĻ°āĻ•āĻžāĻļā§‡ āĻāĻŸāĻŋ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ ...

āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨: āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻĢāĻŋāĻļāĻŋāĻ‚ āĻ°āĻĄ

āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻ°āĻž āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›ā§‡, āĻ¯āĻž āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻ•ā§āĻˇā§‡āĻ° āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻāĻŦāĻ‚ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¯ā§ŒāĻ•ā§āĻ¤āĻŋāĻ• āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ›āĻŋāĻ˛āĨ¤

āĻ†āĻ¸ā§āĻ¨ āĻĨāĻžāĻŽā§āĻ¨ āĻāĻŦāĻ‚ āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°āĻŸāĻŋ āĻ•ā§€ āĻ¤āĻž āĻ˜āĻ¨āĻŋāĻˇā§āĻ āĻ­āĻžāĻŦā§‡ āĻĻā§‡āĻ–ā§āĻ¨āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ āĻĢāĻžāĻ‡āĻ˛ (āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°ā§€ āĻĢāĻžāĻ‡āĻ˛, āĻĒāĻžāĻ‡āĻĨāĻ¨ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ, āĻŦā§āĻ¯āĻžāĻļ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ, āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ), āĻ¯āĻž āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻ˛ā§‡, āĻ‡āĻ¨āĻĒā§āĻŸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻ¨ā§‡āĻ¯āĻŧ āĻāĻŦāĻ‚ JSON āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻŸā§‡ āĻĒā§‚āĻ°ā§āĻŦ-āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡, āĻĒā§āĻ°āĻĨāĻŽ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻ•āĻŸāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ, āĻāĻŦāĻ‚ āĻ…āĻŦāĻļāĻŋāĻˇā§āĻŸ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻšāĻ˛ āĻāĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĨ¤

Kubernetes āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨: Flexvolume āĻĨā§‡āĻ•ā§‡ CSI āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤
OpenShift-āĻ CIFS āĻļā§‡āĻ¯āĻŧāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻšāĻŋāĻ¤ā§āĻ°āĨ¤ āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° - āĻ āĻŋāĻ• āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°ā§‡

āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻ¸ā§‡āĻŸ āĻāĻ‡ āĻŽāĻ¤ āĻĻā§‡āĻ–āĻžāĻšā§āĻ›ā§‡:

flexvolume_driver mount # ĐžŅ‚вĐĩŅ‡Đ°ĐĩŅ‚ Са ĐŋŅ€Đ¸ŅĐžĐĩдиĐŊĐĩĐŊиĐĩ Ņ‚ĐžĐŧĐ° Đē pod'Ņƒ
# ФОŅ€ĐŧĐ°Ņ‚ вОСвŅ€Đ°Ņ‰Đ°ĐĩĐŧĐžĐŗĐž ŅĐžĐžĐąŅ‰ĐĩĐŊиŅ:
{
  "status": "Success"/"Failure"/"Not supported",
  "message": "По ĐēĐ°ĐēОК ĐŋŅ€Đ¸Ņ‡Đ¸ĐŊĐĩ ĐąŅ‹Đģ вОСвŅ€Đ°Ņ‰ĐĩĐŊ иĐŧĐĩĐŊĐŊĐž Ņ‚Đ°ĐēОК ŅŅ‚Đ°Ņ‚ŅƒŅ",
}

flexvolume_driver unmount # ĐžŅ‚вĐĩŅ‡Đ°ĐĩŅ‚ Са ĐžŅ‚ŅĐžĐĩдиĐŊĐĩĐŊиĐĩ Ņ‚ĐžĐŧĐ° ĐžŅ‚ pod'Đ°
# ФОŅ€ĐŧĐ°Ņ‚ вОСвŅ€Đ°Ņ‰Đ°ĐĩĐŧĐžĐŗĐž ŅĐžĐžĐąŅ‰ĐĩĐŊиŅ:
{
  "status": "Success"/"Failure"/"Not supported",
  "message": "По ĐēĐ°ĐēОК ĐŋŅ€Đ¸Ņ‡Đ¸ĐŊĐĩ ĐąŅ‹Đģ вОСвŅ€Đ°Ņ‰ĐĩĐŊ иĐŧĐĩĐŊĐŊĐž Ņ‚Đ°ĐēОК ŅŅ‚Đ°Ņ‚ŅƒŅ",
}

flexvolume_driver init # ĐžŅ‚вĐĩŅ‡Đ°ĐĩŅ‚ Са иĐŊиŅ†Đ¸Đ°ĐģиСаŅ†Đ¸ŅŽ ĐŋĐģĐ°ĐŗиĐŊĐ°
# ФОŅ€ĐŧĐ°Ņ‚ вОСвŅ€Đ°Ņ‰Đ°ĐĩĐŧĐžĐŗĐž ŅĐžĐžĐąŅ‰ĐĩĐŊиŅ:
{
  "status": "Success"/"Failure"/"Not supported",
  "message": "По ĐēĐ°ĐēОК ĐŋŅ€Đ¸Ņ‡Đ¸ĐŊĐĩ ĐąŅ‹Đģ вОСвŅ€Đ°Ņ‰ĐĩĐŊ иĐŧĐĩĐŊĐŊĐž Ņ‚Đ°ĐēОК ŅŅ‚Đ°Ņ‚ŅƒŅ",
  // ОĐŋŅ€ĐĩĐ´ĐĩĐģŅĐĩŅ‚, иŅĐŋĐžĐģŅŒĐˇŅƒĐĩŅ‚ Đģи Đ´Ņ€Đ°ĐšĐ˛ĐĩŅ€ ĐŧĐĩŅ‚ОдŅ‹ attach/deatach
  "capabilities":{"attach": True/False}
}

āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° attach и detach āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°āĻ•ā§‡ āĻ•āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡ āĻ•ā§āĻŦā§‡āĻ˛ā§‡āĻŸ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻāĻŽāĻ¨ āĻĻā§ƒāĻļā§āĻ¯āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻŦā§‡āĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻŦāĻŋāĻļā§‡āĻˇ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ†āĻ›ā§‡ expandvolume и expandfs, āĻ¯āĻž āĻ—āĻ¤āĻŋāĻļā§€āĻ˛āĻ­āĻžāĻŦā§‡ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻ°āĻŋāĻ¸āĻžāĻ‡āĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§€āĨ¤

āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡ expandvolume, āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ°āĻŋāĻ¯āĻŧā§‡āĻ˛ āĻŸāĻžāĻ‡āĻŽā§‡ āĻ­āĻ˛āĻŋāĻ‰āĻŽā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž, āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŸāĻžāĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ°ā§āĻ• āĻ¸ā§‡āĻĢ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°ā§‡āĨ¤

āĻāĻŦāĻ‚ āĻāĻ–āĻžāĻ¨ā§‡ NFS āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ Flexvolume āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

usage() {
    err "Invalid usage. Usage: "
    err "t$0 init"
    err "t$0 mount <mount dir> <json params>"
    err "t$0 unmount <mount dir>"
    exit 1
}

err() {
    echo -ne $* 1>&2
}

log() {
    echo -ne $* >&1
}

ismounted() {
    MOUNT=`findmnt -n ${MNTPATH} 2>/dev/null | cut -d' ' -f1`
    if [ "${MOUNT}" == "${MNTPATH}" ]; then
        echo "1"
    else
        echo "0"
    fi
}

domount() {
    MNTPATH=$1

    NFS_SERVER=$(echo $2 | jq -r '.server')
    SHARE=$(echo $2 | jq -r '.share')

    if [ $(ismounted) -eq 1 ] ; then
        log '{"status": "Success"}'
        exit 0
    fi

    mkdir -p ${MNTPATH} &> /dev/null

    mount -t nfs ${NFS_SERVER}:/${SHARE} ${MNTPATH} &> /dev/null
    if [ $? -ne 0 ]; then
        err "{ "status": "Failure", "message": "Failed to mount ${NFS_SERVER}:${SHARE} at ${MNTPATH}"}"
        exit 1
    fi
    log '{"status": "Success"}'
    exit 0
}

unmount() {
    MNTPATH=$1
    if [ $(ismounted) -eq 0 ] ; then
        log '{"status": "Success"}'
        exit 0
    fi

    umount ${MNTPATH} &> /dev/null
    if [ $? -ne 0 ]; then
        err "{ "status": "Failed", "message": "Failed to unmount volume at ${MNTPATH}"}"
        exit 1
    fi

    log '{"status": "Success"}'
    exit 0
}

op=$1

if [ "$op" = "init" ]; then
    log '{"status": "Success", "capabilities": {"attach": false}}'
    exit 0
fi

if [ $# -lt 2 ]; then
    usage
fi

shift

case "$op" in
    mount)
        domount $*
        ;;
    unmount)
        unmount $*
        ;;
    *)
        log '{"status": "Not supported"}'
        exit 0
esac

exit 1

āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻĒā§āĻ°āĻ•ā§ƒāĻ¤ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ āĻĢāĻžāĻ‡āĻ˛ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ Kubernetes āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨. āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŦāĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻĒāĻĨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ¨ā§‹āĻĄā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻāĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛:

/usr/libexec/kubernetes/kubelet-plugins/volume/exec/иĐŧŅ_ĐŋĐžŅŅ‚авŅ‰Đ¸ĐēĐ°_Ņ…Ņ€Đ°ĐŊиĐģиŅ‰Đ°~иĐŧŅ_Đ´Ņ€Đ°ĐšĐ˛ĐĩŅ€Đ°/

... āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻĄāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŦāĻŋāĻ‰āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ (āĻ“āĻĒā§‡āĻ¨āĻļāĻŋāĻĢāĻŸ, āĻ°āĻžāĻžā§āĻšāĻžāĻ°...) āĻĒāĻĨ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž: āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻŽāĻžāĻ› āĻ§āĻ°āĻžāĻ° āĻ°āĻĄ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ•ā§āĻˇā§‡āĻĒ āĻ•āĻ°āĻŦā§‡āĻ¨?

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

āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ›āĻŋāĻ˛ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ†āĻĻāĻŋāĻŽāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ - DaemonSet. āĻ¯āĻ–āĻ¨ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨ā§‹āĻĄ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ āĻāĻŸāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĄā§‡āĻŽāĻ¨āĻ¸ā§‡āĻŸ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻĄ āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡, āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻĨ āĻŦāĻ°āĻžāĻŦāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ¸āĻĢāĻ˛āĻ­āĻžāĻŦā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡, āĻĒāĻĄ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĄāĻŋāĻ¸ā§āĻ•ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻ•āĻ°ā§‡āĨ¤

āĻāĻ–āĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ°āĻžāĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ‡ āĻœāĻžāĻ¤ā§€āĻ¯āĻŧ āĻĄā§‡āĻŽāĻ¨āĻ¸ā§‡āĻŸā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: flex-set
spec:
  template:
    metadata:
      name: flex-deploy
      labels:
        app: flex-deploy
    spec:
      containers:
        - image: <deployment_image>
          name: flex-deploy
          securityContext:
              privileged: true
          volumeMounts:
            - mountPath: /flexmnt
              name: flexvolume-mount
      volumes:
        - name: flexvolume-mount
          hostPath:
            path: <host_driver_directory>

... āĻāĻŦāĻ‚ āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻ˛ā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻžāĻļ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ:

#!/bin/sh

set -o errexit
set -o pipefail

VENDOR=k8s.io
DRIVER=nfs

driver_dir=$VENDOR${VENDOR:+"~"}${DRIVER}
if [ ! -d "/flexmnt/$driver_dir" ]; then
  mkdir "/flexmnt/$driver_dir"
fi

cp "/$DRIVER" "/flexmnt/$driver_dir/.$DRIVER"
mv -f "/flexmnt/$driver_dir/.$DRIVER" "/flexmnt/$driver_dir/$DRIVER"

while : ; do
  sleep 3600
done

āĻāĻŸāĻž āĻ¯ā§‡ āĻ•āĻĒāĻŋ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻž āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻ• āĻ¨āĻ¯āĻŧ. āĻĒā§āĻ°āĻ­āĻŋāĻļāĻ¨āĻŋāĻ‚ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ†āĻ—ā§‡āĻ‡ āĻ•ā§āĻŦā§‡āĻ˛ā§‡āĻŸ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻŦā§‡, āĻ¯āĻžāĻ° āĻĢāĻ˛ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ•ā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻŦā§‡āĻļāĻŋāĨ¤ āĻ¸āĻ āĻŋāĻ• āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻšāĻ˛ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¨āĻžāĻŽā§‡ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻĢāĻžāĻ‡āĻ˛ āĻ•āĻĒāĻŋ āĻ•āĻ°āĻž, āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻ•āĻŸāĻŋ āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻ• āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨āĨ¤

Kubernetes āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨: Flexvolume āĻĨā§‡āĻ•ā§‡ CSI āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤
āĻ°ā§āĻ• āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°ā§‡ Ceph āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽ: āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽā§‡ āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°āĻŸāĻŋ āĻ°ā§āĻ• āĻāĻœā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤

āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ¨ā§‹āĻĄā§‡ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¸āĻĢāĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ‡āĻ¨ā§āĻ¸āĻŸāĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, Ceph-āĻāĻ° āĻœāĻ¨ā§āĻ¯ ceph-āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ)āĨ¤ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡, āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨āĻŸāĻŋ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻœāĻŸāĻŋāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋāĨ¤

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

āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻ¨āĻŋāĻœā§‡āĻ‡ āĻāĻ•āĻŸāĻŋ RPC āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡. āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ IPC āĻ¸āĻ•ā§‡āĻŸ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻ‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻ†āĻŽāĻ°āĻž āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŋ āĻ¯ā§‡ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ•āĻĒāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄā§‡āĻŽāĻ¨āĻ¸ā§‡āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ­āĻžāĻ˛ āĻšāĻŦā§‡, āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ•ā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ°ā§āĻ• āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡, āĻāĻ‡ āĻĒāĻĄāĻŸāĻŋ āĻŽāĻžāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ RPC āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ­āĻ˛āĻŋāĻ‰āĻŽā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ IPC āĻ¸āĻ•ā§‡āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĨ¤ ceph-āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻŸāĻŋ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻĒāĻĄ āĻĒāĻžāĻ¤ā§āĻ°ā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻ†āĻ›ā§‡āĨ¤ āĻ†āĻ‡āĻĒāĻŋāĻ¸āĻŋ āĻ¸āĻ•ā§‡āĻŸ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ•ā§āĻŦā§‡āĻ˛ā§‡āĻŸ āĻ āĻŋāĻ• āĻāĻ•āĻ‡ āĻ¨ā§‹āĻĄā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĒāĻĄā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°āĻŦā§‡āĨ¤ āĻŦā§āĻĻā§āĻ§āĻŋāĻŽāĻžāĻ¨ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ¸āĻšāĻœ! ..

āĻŦāĻŋāĻĻāĻžāĻ¯āĻŧ, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸ā§āĻ¨ā§‡āĻšāĻŽāĻ¯āĻŧ... āĻ‡āĻ¨-āĻŸā§āĻ°āĻŋ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨!

Kubernetes āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ†āĻŦāĻŋāĻˇā§āĻ•āĻžāĻ° āĻ•āĻ°ā§‡āĻ›ā§‡āĻ¨ āĻ¯ā§‡ āĻŽā§‚āĻ˛ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻŦāĻŋāĻļāĨ¤ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨, āĻāĻ•āĻŸāĻŋ āĻŦāĻž āĻ…āĻ¨ā§āĻ¯āĻ­āĻžāĻŦā§‡, āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ Kubernetes āĻ°āĻŋāĻ˛āĻŋāĻœ āĻšāĻ•ā§āĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤

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

āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻšāĻžāĻ¸ā§āĻ¯āĻ•āĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻŦā§‡āĻļāĻŋ, āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŋ āĻŽāĻ¨ā§‡ āĻ•āĻ°ā§‡āĻ¨ āĻ¨āĻž? āĻāĻŸāĻŋ āĻ¸āĻŽāĻ—ā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻšāĻ¯āĻŧā§‡ āĻ‰āĻ ā§‡āĻ›ā§‡ āĻ¯ā§‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°āĻ›ā§‡ āĻ¨āĻžāĨ¤ āĻ‡āĻšā§āĻ›āĻžāĻ•ā§ƒāĻ¤ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡, Kubernetes āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ˜ā§‹āĻˇāĻŖāĻž āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ†āĻ° āĻ•āĻžāĻ°ā§āĻ¨ā§‡āĻ˛ā§‡ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻž āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻœāĻžāĻ¨āĻŋ, āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛...

Kubernetes, CSI-āĻ¤ā§‡ āĻ­āĻ˛āĻŋāĻ‰āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦāĻļā§‡āĻˇ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨āĻŸāĻŋāĻ•ā§‡ āĻ…āĻŦāĻŋāĻ°āĻžāĻŽ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻ¸āĻš āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻāĻ•āĻŦāĻžāĻ° āĻāĻŦāĻ‚ āĻ¸āĻŦā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻžāĻ° āĻ†āĻšā§āĻŦāĻžāĻ¨ āĻœāĻžāĻ¨āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻāĻ° āĻ†āĻ˛āĻĢāĻž āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ, āĻ¯āĻž āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĻ°ā§‚āĻĒā§‡ āĻ†āĻ‰āĻŸ-āĻ…āĻĢ-āĻŸā§āĻ°āĻŋ āĻ¸āĻŋāĻāĻ¸āĻ†āĻ‡ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤, āĻĒā§āĻ°āĻ•āĻžāĻļā§‡ āĻ˜ā§‹āĻˇāĻŖāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ 1.9.

āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸, āĻŦāĻž CSI 3000 āĻ¸ā§āĻĒāĻŋāĻ¨āĻŋāĻ‚ āĻ°āĻĄ!

āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ†āĻŽāĻŋ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¯ā§‡ CSI āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ¨āĻ¯āĻŧ, āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻŽāĻžāĻ¨ āĻĄā§‡āĻŸāĻž āĻ—ā§āĻĻāĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž. āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ…āĻ°ā§āĻ•ā§‡āĻ¸ā§āĻŸā§āĻ°ā§‡āĻļāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¯ā§‡āĻŽāĻ¨ Kubernetes āĻāĻŦāĻ‚ Mesos āĻāĻ‡ āĻŽāĻžāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¤āĻž "āĻļāĻŋāĻ–āĻ¤ā§‡" āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻāĻŦāĻ‚ āĻāĻ–āĻ¨ āĻ†āĻŽāĻŋ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻļāĻŋāĻ–ā§‡āĻ›āĻŋāĨ¤

Kubernetes-āĻ CSI āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻāĻ° āĻ—āĻ āĻ¨ āĻ•āĻŋ? CSI āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻŦāĻŋāĻļā§‡āĻˇ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ (āĻ¸āĻŋāĻāĻ¸āĻ†āĻ‡ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°) āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻ•ā§āĻˇā§‡āĻ° āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ˛āĻŋāĻ–āĻŋāĻ¤āĨ¤ Kubernetes-āĻ āĻāĻ•āĻœāĻ¨ CSI āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°ā§‡āĻ° āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻĻā§āĻŸāĻŋ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ (āĻĒāĻĄ) āĻĨāĻžāĻ•āĻž āĻ‰āĻšāĻŋāĻ¤:

  • āĻ¨āĻŋāĻ¯āĻŧāĻžāĻŽāĻ• - āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ gRPC āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĻāĻŋāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ StatefulSet.
  • āĻ¨ā§‹āĻĄ — āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ° āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻŽāĻžāĻ‰āĻ¨ā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§€āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ gRPC āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡āĻ“ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ†āĻĻāĻŋāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ DaemonSet.

Kubernetes āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨: Flexvolume āĻĨā§‡āĻ•ā§‡ CSI āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤
āĻ•āĻŋāĻ­āĻžāĻŦā§‡ CSI āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡

āĻ†āĻĒāĻ¨āĻŋ CSI-āĻāĻ° āĻ•āĻžāĻœā§‡āĻ° āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ•āĻŋāĻ›ā§ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻœāĻžāĻ¨āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻĨā§‡āĻ•ā§‡C.S.I āĻŦā§‹āĻāĻžāĨ¤Âģ, āĻ¯āĻžāĻ° āĻ…āĻ¨ā§āĻŦāĻžāĻĻ āĻ†āĻŽāĻ°āĻž āĻāĻ• āĻŦāĻ›āĻ° āĻ†āĻ—ā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤

āĻ¯ā§‡āĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¸ā§āĻŦāĻŋāĻ§āĻž

  • āĻāĻ•āĻŸāĻŋ āĻ¨ā§‹āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻ•āĻ°āĻžāĻ° āĻŽāĻ¤ā§‹ āĻŽā§ŒāĻ˛āĻŋāĻ• āĻœāĻŋāĻ¨āĻŋāĻ¸āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯, Kubernetes āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡āĨ¤ āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯ā§‡āĻŽāĻ¨āĻŸāĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ†āĻ° āĻ¨āĻŋāĻœā§‡āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ¸āĻš JSON āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤
  • āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ "āĻ¸ā§āĻ˛āĻŋāĻĒ" āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡, āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻ¨ āĻ•ā§āĻ˛āĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻĒāĻĄ āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°āĻŋāĨ¤ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻĨā§‡āĻ•ā§‡ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋāĻ‡ āĻ†āĻļāĻž āĻ•āĻ°āĻŋ: āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻ•ā§āĻŦāĻžāĻ°āĻ¨ā§‡āĻŸāĻ¸ āĻ†āĻĻāĻŋāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻĒāĻžāĻ¤ā§āĻ°ā§‡ āĻ˜āĻŸā§‡āĨ¤
  • āĻœāĻŸāĻŋāĻ˛ āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ†āĻ° āĻāĻ•āĻŸāĻŋ RPC āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻāĻŦāĻ‚ RPC āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ Kubernetes āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤
  • āĻœāĻŋāĻ†āĻ°āĻĒāĻŋāĻ¸āĻŋ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ…āĻ¨ā§‡āĻ• āĻŦā§‡āĻļāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ•, āĻ¨āĻŽāĻ¨ā§€āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¯ā§‹āĻ—ā§āĻ¯āĨ¤ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻŽāĻŋāĻ¤ gRPC āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡ CSI-āĻ¤ā§‡ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻŽā§‡āĻŸā§āĻ°āĻŋāĻ•ā§āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻŦā§āĻāĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨: āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŸāĻžāĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ vsphere-csi āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯āĨ¤
  • āĻ†āĻ‡āĻĒāĻŋāĻ¸āĻŋ āĻ¸āĻ•ā§‡āĻŸā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ¤ā§‡ āĻ•ā§āĻŦā§‡āĻ˛ā§‡āĻŸ āĻ¸āĻ āĻŋāĻ• āĻĒāĻĄā§‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋ āĻĒāĻžāĻ āĻŋāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻ¨āĻž āĻšāĻ¯āĻŧāĨ¤

āĻāĻ‡ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻŸāĻŋ āĻ•āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•āĻŋāĻ›ā§ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻ¯āĻŧ? CSI āĻāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ—ā§āĻ˛ā§‹ āĻšāĻ˛ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨, āĻ¯āĻž āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻžāĻ¯āĻŧ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĻ¨āĻŋāĨ¤

āĻ¤āĻĨā§āĻ¯āĻ“

āĻĄā§‡āĻŸāĻž āĻ—ā§āĻĻāĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ…ā§āĻ¯āĻžāĻ•ā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻ¸ā§āĻŸāĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨āĻ—ā§āĻ˛āĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŽāĻžāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ CSI āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ–ā§āĻŦ āĻ‰āĻˇā§āĻŖāĻ­āĻžāĻŦā§‡ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻ¤āĻĻā§āĻĒāĻ°āĻŋ, āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻāĻŦāĻ‚ āĻŦāĻšā§āĻŽā§āĻ–ā§€āĻ¤āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡, CSI āĻĄā§āĻ°āĻžāĻ‡āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻāĻŽāĻ¨āĻ•āĻŋ Ceph āĻŦāĻž AWS EBS-āĻāĻ° āĻŽāĻ¤ā§‹ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨āĻ—ā§āĻ˛āĻŋ Kubernetes-āĻāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤

2019 āĻāĻ° āĻļā§āĻ°ā§āĻ¤ā§‡, āĻ‡āĻ¨-āĻŸā§āĻ°āĻŋ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ…āĻĒā§āĻ°āĻšāĻ˛āĻŋāĻ¤ āĻ˜ā§‹āĻˇāĻŖāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡. āĻ†āĻŽāĻ°āĻž āĻĢā§āĻ˛ā§‡āĻ•ā§āĻ¸āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨āĻ•ā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°āĻž āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°āĻ›āĻŋ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻ¤ā§āĻ¨ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āĻ°āĻŦ āĻ¨āĻžāĨ¤

āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ ceph-csi, vsphere-csi āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ āĻāĻŦāĻ‚ āĻāĻ‡ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ¯āĻŧ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤! āĻāĻ–āĻ¨āĻ“ āĻ…āĻŦāĻ§āĻŋ, CSI āĻāĻŸāĻŋāĻ•ā§‡ āĻ…āĻ°ā§āĻĒāĻŋāĻ¤ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ§āĻžāĻ•ā§āĻ•āĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻŽā§‹āĻ•āĻžāĻŦā§‡āĻ˛āĻž āĻ•āĻ°āĻ›ā§‡, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŦ āĻāĻŦāĻ‚ āĻĻā§‡āĻ–āĻŦāĨ¤

āĻ­ā§āĻ˛ā§‡ āĻ¯āĻžāĻŦā§‡āĻ¨ āĻ¨āĻž āĻ¯ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§āĻ‡ āĻĒā§āĻ°āĻžāĻ¨ā§‹āĻ•ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻĒā§āĻ¨āĻ°ā§āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž!

āĻĻā§āĻ°āĻˇā§āĻŸāĻŦā§āĻ¯

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦā§āĻ˛āĻ—ā§‡āĻ“ āĻĒāĻĄāĻŧā§āĻ¨:

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

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨