مفهوم Pod چیست؟

یک Pod پایه ای ترین قسمت Kubernetes است و همچنین کوچکترین و ساده ترین قسمت از مدل اشیاء کوبرنیتیس Kubernetes object model است ، که می توان آن را ایجاد کرد و توسعه داد. یک Pod نمایانگر پردازش در حال اجرا، در کلاستر می باشد.

یک Pod ، یک مخزن application ( و در برخی موارد چندین مخزن ) ، منابع ذخیره ساز ، یک آدرس IP منحصر به فرد و گزینه هایی که مشخص می کنند مخزن ها چطور اجرا شوند را ، کپسوله می کند. یک Pod یک قسمت از توسعه را معرفی می کند : یک نمونه کوچک از یک برنامه Kubernetes که یا حاوی یک مخزن است و یا شامل چند مخزن وابسته به یکدیگر است و این منابع به اشتراک گذاشته می شود. Pod ها از تمامی مخازن زمان اجرا به خوبی پشتیبانی می کنند و Docker که محبوب ترین مخزن زمان اجرا است نیز از Kubernetes Pods استفاده می کند.

نحوه استفاده از Pod ها در کلاسترینگ Kubernetes 

1. پاد های شامل یک مخزن : one-container-per-Pod محبوب ترین حالت مورد استفاده دز Kubernetes است. در این حالت فرض کنید که یک مخزن بسته بندی شده است و Kubernetes به جای استفاده مستقیم از مخزن از Pod استفاده می کند.

2. پاد های شامل چند مخزن: که برای کار کردن به یکدیگر نیاز دارند : یک پاد می تواند شامل یک برنامه چند مخزن مورد نیاز به صورت محلی باشد که این مخزن ها به شدت به یکدیگر وابسته هستند ، و همه این ها در یک Pod به اشتراک گذاشته شده اند.

این مخزن هایی که به صورت محلی بسته بندی شده اند به صورت یک واحد یکپارچه مانند یک مخزن از فایل های منابع به اشتراک گذاشته شده به صورت عمومی سرویس دهی می کنند ، در حالی که یک مخزن جداگانه این فایل ها را به روز رسانی و مجدد بازخوانی می کند. پاد این مخازن و ذخیره ساز های به اشتراک گذاشته شده را بسته بندی کرده و یک موجودیت جدید با قابلیت مدیریت ارائه می کند.

هر Pod به معنای اجرای یک نمونه برنامه تعیین شده است. اگر می خواهید چندین برنامه را به صورت موازی و همزمان اجرا کنید ، باید برای هرکدام یک پاد را اجرا کنید. در Kubernetes به این کار Replication گفته می شود. Replicates Pod ها معمولا به صورت گروهی و به وسیله مفهومی به نام Controller ایجاد و مدیریت می شوند. برای اطلاعات پاد ها و Controller ها را مطالعه کنید.

چطور پاد ها چندین مخزن را کنترل می کنند

پاد ها برای تبدیل چندین پردازش وابسته به یکدیگر ( مانند مخازن ) و ارائه آنها به صورت یک سرویس یکپارچه طراحی شده است. مخازن موجود در پاد به صورت خودکار و به صورت محلی و زمان بندی شده بر روی یک ماشین مجازی یا کلاستر کار می کنند. این مخزن ها منابع و پیش نیازهایشان را به اشتراک می گذارند و با یکدیگر در ارتباط هستند و به صورت هماهنگ با یکدیگر تا خاتمه کار همکاری دارند.

دقت کنید که این مورد استفاده از چندین مخزن که به صورت محلی بهم متصل هستند و مدیریت می شوند یک حالت نسبتا پیشرفته است. از این حالت باید در موارد خاص که مخزن ها به شدت به یکدیگر وابسته هستند استفاده کنید. برای مثال ممکن است که شما یک مخزن داشته باشید که به عنوان یک وب سرور برای فایل های به اشتراک گذاشته شده در یک منبع ، سرویس دهی می کند و یک مخزن جداگانه دیگری داشته باشید که با استفاده از منابع دیگر و راه دور این فایل ها را تغییر داده و به روز رسانی می کنند ، مانند نمودار زیر :

پاد چند مخزنی

برخی پاد ها مخازن راه انداز init Containers مانند مخازن برنامه های کاربردی دارند. این مخازن راه انداز قبل اجرا شدن مخازن مربوط به برنامه های کاربردی، اجرا شده و کامل می شوند. پاد ها از دو نوع منابع به اشتراک گذاری شده Shared Resource برای مخزن های تشکیل دهنده خود استفاده می کنند : شبکه و ذخیره ساز.

شبکه

هر Pod یک آدرس IP منحصر فرد را به خود اختصاص می دهد. هر مخزن در هر پاد محیط شبکه خود را که شامل آدرس IP و پورت شبکه است را به اشتراک می گذارد. مخزن های داخل Pod با یکدیگر از طریق localhost در ارتباط هستند. هر زمان که مخزن های داخل یک پاد بخواهند با یک موجودیت خارج از پاد ارتباط برقرار کنند باید از منابع به اشتراک گذاشته شده استفاده کنند.

ذخیره ساز

یک Pod می تواند مجموعه از ذخیره سازهای به اشتراک گذاشته را داشته باشد. همه مخزن های داخل پاد می توانند به ذخیره سازهای به اشتراک گذاشته شده دسترسی داشته باشند و همچنین می توانند اجازه دسترسی به داده های به اشتراک گذاشته شده را نیز داشته باشند. همچنین می توان دسترسی دائم و خودکار به ذخیره سازهای مشترک داد تا اگر مخزنی نیاز به راه اندازی مجدد داشت این دسترسی از بین نرود.

کار کردن با Pod ها

Pod ها برای اهداف و مصارف نسبتا کوتاه مدت طراحی شده اند و به همین دلیل به ندرت پیش می آید که Pod های تکی در Kubernetes ایجاد کنید. هنگامی که یک Pod ایجاد می شود ( چه مستقیما توسط خودتان یا غیر مستقیم توسط Controller ) برنامه ریزی می شود تا در یک گره یا Node در کلاستر اجرا شود و در همان Node تا زمان اتمام پردازش ، حذف شدن Pod ، خارج کردن Pod از گره به علت کمبود منابع و یا بروز خطا در گره ، باقی می ماند.

نکته : راه اندازی مجدد یک مخزن داخل Pod نباید با راه اندازی مجدد خود پاد اشتباه گرفته شود. یک پاد خودش اجرا نمی شود ولی یک زیرساختی را فراهم می کند که مخزن ها تا زمانی که حذف نشده اند در آن اجرا می شوند.

Pod ها حالت خود درمانی یا خود ترمیمی ندارند و اگر وقتی زمان بندی شده اند که در یک گره کار کنند ، دچار مشکل شوند ، پاد ها حذف می شوند. به همین ترتیب اگر گره ای دچار مشکل کمبود منابع شود و یا برای رفع مشکل در حالت تعمیرات قرار گیرد ، Pod ها حذف خواهند شد. Kubernetes از کی مفهموم سطح بالایی به نام Controller استفاده می کند که تا حدودی کارهایی که Pod ها باید انجام دهند را مدیریت می کنند. این حالت استفاده Kubernetes از Controller ها برای مدیریت Pod ها بسیار رایج است.

Pod ها و Controller ها

یک Controller می تواند چندین پاد را ایجاد و مدیریت کند ، مدیریت Replication ها و برنامه ریزی ها و حالت خود تعمیری در کلاستر. برای مثال اگر یک گره دچار خطا شود ، به صورت خودکار یک گره یکسان دیگر را جایگزین می کند.

قالب های Pod

قالب های پاد ها مشخصات فنی آن ها هستند و شامل عناصر دیگر مانند Replication Controllers, Jobs, و DaemonSets می شوند. Controller ها با استفاده از قالب ها پاد ها رو ایجاد می کنند. در زیر یک مثال روشن از یک پاد آورده شده که شامل یک مخزن است که یک پیغام را چاپ می کند :

apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp spec: containers: - name: myapp-container image: busybox command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']

قالب پاد ها علاوه بر مشخص کردن وضعیت فعلی از همه حالت ها ، مانند یک قالب کیک عمل می کنند. قالب کیک یک کیک را شکل می دهد و هیچ رابطه ای با آن کیک ندارد. تغییرات بعدی قالب حتی انتقال به یک قالب جدید، روی پاد هایی که تا الان ایجاد شده اند تاثیر مستقیمی ندارند. به بیان ساده تر پاد ها توسط یک replication controller ها که متعاقبا به روز رسانی خواهند شد ، ایجاد می شوند و مشخص کردن وضعیت فعلی همه مخزن های متعلق به Pod ها یک عملکرد منطقی است.

  • با خدمات ابری پارس آشنا شوید

    اولین ارائه‌دهنده خدمات رایانش ابری در ایران هستیم

    ابر سرور

    ابر سرور

    با ابرسرورها می‌توانید سرور با سیستم‌عامل دلخواه خود را در چند دقیقه انتخاب و نصب نموده و آزادانه منابع سخت‌افزاری که در نظر دارید را، در زمان دلخواه به سرور خود بیافزایید و تنها برای منابع مورد نیاز سرور، هزینه پرداخت نمایید.

    هایبرید سرور

    هایبرید سرور

    هایبرید سرورها نسل جدید و پیشرفته سرورهای اختصاصی هستند که با پنل قدرتمند ابری ارائه می‌شوند. در هایبرید سرورها علاوه بر ارائه سخت‌افزار مستقل، امکانات سخت‌افزاری ویژه‌ای نیز در نظر گرفته شده است.

    ماکرو سرور

    ماکرو سرور

    ماکرو سرور محصولی ویژه است که برای دریافت بالاترین کیفیت سخت‌افزاری طراحی شده است. در شرایطی که نیازمند سخت‌افزاری قدرتمند برای سرور خود هستید، ماکرو سرورها منابع سخت‌افزاری مورد نیاز را برای شما فراهم می‌کنند.

    هاست ابری

    هاست ابری

    در هاست ابری برخلاف یک هاست اشتراکی، سایت‌های پر بازدید نیز بسادگی می‌توانند از خدمات میزبانی استفاده کنند، بدون آنکه درگیر دغدغه‌های مدیریت سرور شوند. همواره تنها برای آن میزان از منابع سخت‌افزاری که نیاز دارید هزینه می‌پردازید و دیگر نیازی به پرداخت هزینه‌های غیر موجه، در ابتدای فعالیت وب سایت خود، نخواهید داشت.

    هاست دانلود

    هاست دانلود

    سیاری از مدیران سایت‌های دانلود و یا سایت‌هایی که با ترافیک بالایی برای به اشتراک‌گذاری فایل‌های خود روبرو هستند، عمدتا با مشکلاتی مانند هزینه‌های گزاف زیرساختی و یا مصرف بالای منابع سخت‌افزاری روبرو می‌شوند. از همین رو پارس‌پک با معرفی فضای هاست دانلود برای این دسته از کاربران، محصول مناسبی را پیش‌بینی نموده است.

    مطالعه این مطالب نیز پیشنهاد می‌شود

    مقالات و نظرات اعضای تیم ما درباره تکنولوژی، روزهای کاری و چیزای دیگر…

    تفاوت هاست لینوکس و ویندوز

    یکی از چالش‌های مهم مدیران وب‌سایت‌ها، در هنگام خرید هاست و راه‌اندازی وب‌سایت، انتخاب نوع سیستم‌ عامل هاست است. ارائه‌دهندگان خدمات میزبانی وب و هاست...

  • کلیه حقوق برای شرکت دانش بنیان پارس پک محفوظ می باشد.

    Copyright © 2019 Pars Parva System Ltd. ParsPack Cloud Computing Technology ® , All Rights Reserved.