بررسی سلامت و مقیاسدهی خودکار
با تعریف بررسی سلامت، دادههات نمونههای معیوب کانتینر را تشخیص میدهد، آنها را مجدد راهاندازی میکند و تا زمان آمادهشدن، ترافیکی به آنها نمیفرستد. مقیاسدهی خودکار نیز تعداد نمونهها را متناسب با بار واقعی کم یا زیاد میکند.
این تنظیمات در صفحهی جزییات کانتینر، زبانهی «سلامت و مقیاس» و بخش «سلامت و مقیاسدهی خودکار» قرار دارند. برای ویرایش، روی دکمهی «تنظیم» کلیک کنید.
انواع بررسی سلامت
دو نوع بررسی سلامت برای هر کانتینر قابل تعریف است:
- بررسی زندهبودن (Liveness): نمونهای که این بررسی را رد کند، مجدد راهاندازی میشود. این بررسی برای تشخیص اپلیکیشنی که قفل شده یا دیگر پاسخ نمیدهد مناسب است.
- بررسی آمادگی (Readiness): تا زمانی که این بررسی موفق نشود، ترافیکی به نمونه فرستاده نمیشود. این بررسی برای اپلیکیشنهایی که پس از شروع به زمان آمادهسازی نیاز دارند مناسب است.
هر دو بررسی بهشکل پیشفرض «غیرفعال» هستند.
تعریف دستور بررسی
بررسی سلامت بهشکل یک دستور درون کانتینر اجرا میشود. اگر دستور با کد خروج صفر پایان یابد، بررسی موفق است و در غیر این صورت ناموفق در نظر گرفته میشود. در فیلد «دستور بررسی»، هر آرگومان را در یک فیلد جداگانه وارد کنید و برای افزودن آرگومان از دکمهی «افزودن آرگومان» استفاده کنید.
توجه داشته باشید که در حال حاضر فقط بررسی بهشکل اجرای دستور پشتیبانی میشود. برای بررسی یک اندپوینت HTTP یا یک پورت TCP، از ابزاری که درون ایمیج شما وجود دارد، مانند wget، curl یا nc، در دستور بررسی استفاده کنید.
در ادامه چند نمونهی رایج آمده است.
بررسی یک اندپوینت HTTP درون کانتینر:
wget -q -O /dev/null http://127.0.0.1:8080/healthz
بررسی آمادگی PostgreSQL:
pg_isready -U postgres
بررسی Redis:
redis-cli ping
بررسی بازبودن یک پورت با nc:
nc -z 127.0.0.1 3000
دستور بررسی باید با ابزارهای موجود در ایمیج اجرا شود. ایمیجهای کمحجم، مانند نسخههای alpine یا distroless، ممکن است curl یا حتی پوسته نداشته باشند؛ پیش از فعالکردن بررسی، دستور را از طریق ترمینال کانتینر آزمایش کنید.
زمانبندی بررسیها
برای هر بررسی میتوانید پارامترهای زمانی زیر را تعیین کنید:
| پارامتر | محدودهی مجاز | توضیح |
|---|---|---|
| تاخیر اولیه | ۰ تا ۶۰۰ ثانیه | مدت انتظار پس از شروع نمونه، پیش از اولین بررسی |
| فاصلهی بررسی | ۱ تا ۳۰۰ ثانیه | فاصلهی زمانی بین دو بررسی پیاپی |
| مهلت پاسخ | ۱ تا ۶۰ ثانیه | حداکثر زمان اجرای دستور بررسی |
| آستانهی خطا | ۱ تا ۱۰ بار | تعداد شکستهای پیاپی پیش از ناموفق دانستن نمونه |
دستور بررسی حداکثر میتواند ۱۶ آرگومان داشته باشد.
مقیاسدهی خودکار
با فعالکردن «مقیاسدهی خودکار»، تعداد نمونههای کانتینر بر اساس مصرف منابع تغییر میکند. فیلدهای این بخش عبارتاند از:
- حداقل نمونه: کمترین تعداد نمونه، بین ۱ تا ۲۰.
- حداکثر نمونه: بیشترین تعداد نمونه، حداکثر ۲۰.
- هدف پردازنده (٪): درصد مصرف پردازندهای که دادههات تلاش میکند میانگین نمونهها را در آن نگه دارد. مقدار پیشفرض ۸۰ درصد است.
- هدف حافظه (٪): درصد مصرف حافظه، بهعنوان معیار جایگزین یا تکمیلی.
درصد مصرف نسبت به منابع درخواستشدهی هر نمونه («درخواست CPU» و «درخواست حافظه») سنجیده میشود. برای مثال اگر هدف پردازنده ۸۰ درصد باشد و میانگین مصرف نمونهها از ۸۰ درصد درخواست CPU فراتر رود، نمونهی جدیدی اضافه خواهد شد.
توجه داشته باشید که تا وقتی مقیاسدهی خودکار فعال است، مقیاسدهی دستی و کاهش تعداد نمونهها به صفر در دسترس نیست. هزینهی کانتینر بر اساس تعداد واقعی نمونهها در هر ساعت محاسبه میشود.
پس از ذخیرهی تنظیمات، خلاصهای مانند «۲ تا ۶ نمونه با هدف ۸۰٪ پردازنده» در صفحهی کانتینر نمایش داده میشود.