
از سری پستهای راهنمای جیبی کوبرنتیز: مفاهیم کلیدی به زبان ساده قسمت دوم را با هم شروع میکنیم.
توی پست قبلی درباره PV و PVC صحبت کردیم.
توی مثال اولی ک زدیم ی نکتهای بود. اگر گفتین چی بود؟
بیاین دوباره با هم مثال مرور کنیم:
مثال ساده
فرض کن یه برنامه داریم که نقاشیهای بچهها رو نگه میداره. این برنامه توی یه خونه (پاد) زندگی میکنه. حالا این برنامه میخواد نقاشیها رو جایی ذخیره کنه که اگه خونهش خراب شد، نقاشیها گم نشن.
اول PV درست میکنیم: مدیر شهر (یعنی ادمین کوبرنتیز) یه کمد توی انبار جادویی درست میکنه. مثلاً میگه: «این کمد ۱۰ گیگابایته و خیلی سریعه.» این میشه PV.
بعد PVC درست میکنیم: برنامه نقاشی میگه: «من یه کمد میخوام که حداقل ۵ گیگابایت جا داشته باشه.» این درخواست میشه PVC. حالا سیستم کوبرنتیز میگرده و میبینه که اون کمد ۱۰ گیگابایتی PV برای این درخواست مناسبه. پس کمد رو به برنامه میده.
نکتهاش اینجا بود که برنامه من فقط ۵گیگ فضا نیاز داشت. ولی کوبرنتیز بهش یه کمد ۱۰گیگی داده. یعنی ۵گیگ اضافه از کیسه خلیفه بخشیده و اینجوری ۵گیگ فضا هدر میره. برای حل این مشکل کوبرنتیز آمده یه حرکتی زده که موضوع این پست هست.
تصور کن توی یه شهر جادویی به اسم کوبرنتیز، یه عالمه خونه کوچولو هست که اسمشون پاد (Pod) هست. توی این خونهها، برنامهها زندگی میکنن و وسایلشون رو توی کمدهای جادویی به اسم PersistentVolume (PV) نگه میدارن. هر وقت برنامهها به کمد نیاز دارن، یه نامه به اسم PersistentVolumeClaim (PVC) میفرستن و میگن: «من یه کمد میخوام!»
حالا بیایم ببینیم این کمدها چطوری درست میشن و به برنامهها داده میشن.
توی روش قدیمی، یه آقا یا خانم دقیق که مدیر شهره، از قبل یه سری کمد آماده میکنه و توی انبار میذاره. مثلاً:
این کمدها منتظرن که برنامهها بیان و درخواست کنن.

فرض کن یه برنامه میاد و میگه: «من یه کمد میخوام که ۷ گیگابایت جا داشته باشه.» مدیر شهر نگاه میکنه و میگه: «خب، کمد ۵ گیگابایتی که برات کوچیکه، پس کمد ۱۰ گیگابایتی رو بهت میدم!» برنامه اون کمد ۱۰ گیگابایتی رو میگیره، ولی فقط ۷ گیگابایتش رو استفاده میکنه و ۳ گیگابایت دیگه خالی میمونه و هدر میره.
مشکل این روش چیه؟
مثل اینه که تو یه بشقاب بزرگ کیک داشته باشی، ولی فقط یه تیکه کوچیک بخوای بخوری و بقیهش رو دور بریزی. یا اینکه مدیر کوبرنتیز باید از قبل حدس بزنه تو به چه اندازه کمد نیاز داری، و اگه اشتباه حدس بزنه، یا کمدت زیادی بزرگه یا زیادی کوچیک!
حالا توی روش جدید، یه چیز جادویی به اسم StorageClass داریم. StorageClass مثل یه دستور پخت کیکه که به کوبرنتیز میگه: «هر وقت برنامهای کمد خواست، براش یه کمد تازه درست کن!» توی این دستور پخت نوشته شده که کمد از چه موادی باشه (مثلاً هارد دیسکش SSD باشه یا HDD یا اصلا روی دیسک لوکال باشه یا روی فضای ابری) و چه شکلی باشه (مثلاً سریع باشه یا ارزون باشه).
وقتی برنامه میاد و میگه: «من یه کمد ۷ گیگابایتی میخوام»، کوبرنتیز به جای اینکه دنبال کمد آماده بگرده، همون موقع یه کمد ۷ گیگابایتی درست میکنه و به برنامه میده. دقیقاً اندازهای که برنامه خواسته، نه بیشتر و نه کمتر!
خوبی این روش چیه؟
مثل اینه که بچه به مامانش میگه: «من یه تیکه کیک کوچولو میخوام»، و مامان همون موقع براش یه تیکه به اندازه دلخواه فرزندش ببره. نه چیزی هدر میره، نه لازم نیست از قبل یه کیک بزرگ آماده باشه!
فرض کن یه برنامه داریم که نقاشیهای تو رو نگه میداره.
توی روش Static Provisioning (تهیه استاتیک):
توی روش Dynamic Provisioning (تهیه دینامیک):

مثل اینه که توی روش قدیمی، یه جعبه بزرگ اسباببازی بهت بدن که فقط نصفش رو بخوای، ولی توی روش جدید، یه جعبه کوچولو فقط به اندازه اسباببازیهای مورد علاقهت بهت بدن!