برنامه نویسی

بررسی سلامت Kubernetes برای نظارت بر بار کار قابل اعتماد

اطمینان از عملکرد قابل اعتماد بار در Kubernetes نیاز به نظارت مداوم بر سلامت کانتینر دارد. بدون بررسی های بهداشتی مناسب ، ظروف ناکامی می توانند در دسترس بودن برنامه ها را تخریب کنند یا باعث خرابی شوند. Kubernetes با استفاده از زندگی ، آمادگی و پروب های راه اندازی برای تشخیص خرابی ها و انجام اقدامات اصلاحی ، این موضوع را می پردازد.

این بررسی های بهداشتی به Kubernetes کمک می کند تا ظروف بی پاسخ را مجدداً راه اندازی کنند ، از رسیدن ترافیک به موارد غیر آماده جلوگیری کنند و به برنامه های شروع آهسته اجازه می دهند تا به درستی اولیه شوند. به درستی پیکربندی این پروب ها تضمین می کند که برنامه ها در یک محیط Kubernetes پایدار ، پاسخگو و انعطاف پذیر هستند.

درک بررسی های بهداشتی Kubernetes

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

انواع پروب های Kubernetes

Kubernetes از پروب ها برای بررسی سلامت ظروف و اطمینان از عملکرد صحیح آنها در یک خوشه استفاده می کند. این بررسی های بهداشتی Kubernetes تصمیم می گیرند که آیا یک ظرف را مجدداً راه اندازی کنید ، آن را از سرویس خارج کنید یا صبر کنید تا کاملاً آماده شود. در اینجا تفکیک سه نوع اصلی پروب آورده شده است:

1. پروب زندگی

اگر یک ظرف هنوز در حال اجرا باشد ، یک کاوشگر زنده می کند. در صورت عدم موفقیت یک کاوشگر زندگی ، Kubernetes ظرف را مجدداً راه اندازی می کند. این برای برنامه هایی که ممکن است به دلیل بن بست یا کشورهای پاسخگو گیر بیفتند مفید است. یک روش متداول برای پیکربندی یک کاوشگر زندگی ، استفاده از یک درخواست HTTP است:

livenessProbe:  
 httpGet:  
 path: /healthz  
 port: 8080  
 initialDelaySeconds: 5  
 periodSeconds: 10
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این پیکربندی درخواست HTTP را به /Healthz در پورت 8080 هر 10 ثانیه می دهد و 5 ثانیه پس از شروع کانتینر شروع می شود. اگر نقطه پایانی پاسخ ندهد ، Kubernetes ظرف را مجدداً راه اندازی می کند.

2. کاوشگر آمادگی

یک کاوشگر آمادگی مشخص می کند که آیا یک ظرف آماده دریافت ترافیک است یا خیر. در صورت عدم موفقیت یک کاوشگر آمادگی ، Kubernetes بدون شروع مجدد آن ، ظرف را از سرویس خارج می کند. این مانع از رسیدن ترافیک به یک برنامه Unredy می شود. یک کاوشگر آمادگی مشترک از یک سوکت TCP استفاده می کند:

readinessProbe:  
 tcpSocket:  
 port: 3306  
 initialDelaySeconds: 5  
 periodSeconds: 10
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در این مثال ، Kubernetes بررسی می کند که آیا ظرف در حال پذیرش اتصالات در بندر 3306 است. در صورت عدم موفقیت کاوشگر ، ظرف از نقاط پایانی سرویس خارج می شود.

3. کاوشگر راه اندازی

یک کاوشگر راه اندازی برای برنامه های شروع آهسته استفاده می شود. این تضمین می کند که یک ظرف به طور کامل قبل از شروع Kubernetes پروب های زندگی یا آمادگی را آغاز کرده است. این مانع از راه اندازی مجدد زودرس می شود. یک کاوشگر راه اندازی معمولی ممکن است به این شکل باشد:

startupProbe:  
 exec:  
 command:  
 — cat  
 — /tmp/ready  
 initialDelaySeconds: 10  
 periodSeconds: 5  
 failureThreshold: 30
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در اینجا ، Kubernetes بررسی می کند که آیا پرونده /TMP /آماده وجود دارد. قبل از اینکه شکست بخورد ، این ظرف تا 30 شکست (هر 5 ثانیه) می شود.

بهترین روشها برای پیکربندی بررسی های بهداشتی Kubernetes

اطمینان از سالم ماندن برنامه های Kubernetes ، نیاز به بررسی های بهداشتی به درستی پیکربندی شده است. کاوشگرهای نادرست پیکربندی شده می توانند منجر به راه اندازی مجدد غیر ضروری یا ترافیک به ظروف ناسالم شوند. با دنبال کردن این بهترین شیوه ها ، می توانید قابلیت اطمینان برنامه را بهبود بخشید و خرابی را به حداقل برسانید.

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

  • زمان مناسب را تنظیم کنید: برای جلوگیری از مثبت کاذب ، باید از طرفین های اولیه ، دوره های دوم ، دوره های دوم و شکست استفاده شود.

  • از نقاط پایانی معنی دار استفاده کنید: برای پروب های مبتنی بر HTTP ، به جای مسیرهای عمومی API ، از نقاط پایانی بررسی سلامت استفاده کنید.

  • نظارت و تنظیم: به طور مداوم خرابی های پروب را کنترل کرده و تنظیمات را در صورت لزوم برای بهبود قابلیت اطمینان تنظیم کنید.

  • رسیدگی های خاص برنامه را کنترل کنید: اطمینان حاصل کنید که منطق بررسی سلامت موارد شکست خاص برنامه را پوشش می دهد.

موضوعات مشترک و اشکال زدایی در مورد بررسی های بهداشتی Kubernetes

هنگامی که یک بررسی سلامت انجام نشود ، می تواند در دسترس بودن برنامه را مختل کرده و باعث شروع مجدد غیر ضروری شود. درک نوع خرابی و تجزیه و تحلیل سیاهههای مربوط می تواند به تشخیص سریع علت ریشه کمک کند. در زیر موضوعات متداول بررسی سلامت و نحوه اشکال زدایی آنها به طور مؤثر است.

kubectl describe pod <pod-name>

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

برای مشاهده سیاهههای مربوط به یک ظرف ناکام ، استفاده کنید:

kubectl logs <pod-name> -c <container-name>

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

عیب یابی خرابی های بررسی سلامت

  • کاوشگر زندگی ناکام است: برنامه ممکن است در یک بن بست یا حالت بی پاسخ باشد. سیاهههای مربوط به برنامه را بررسی کنید و فواصل کاوشگر زنده بودن را بررسی کنید.

  • کاوشگر آمادگی ناکام است: برنامه ممکن است برای ارائه ترافیک آماده نباشد. تأخیرهای اولیه و وابستگی های پس زمینه را تأیید کنید.

  • کاوشگر راه اندازی ناکام است: برنامه ممکن است به زمان بیشتری برای شروع نیاز داشته باشد. FailureThreshold را افزایش داده و بر این اساس تنظیمات اولیه را تنظیم کنید.

  • مشکلات شبکه و بندر: اطمینان حاصل کنید که درگاه های صحیح در معرض و قابل دسترسی در داخل خوشه هستند.

  • نقاط پایانی بررسی سلامت نادرست: از URL های اختصاصی بررسی سلامت استفاده کنید که وضعیت کاربردی دقیق را ارائه می دهند.

استراتژی های پیشرفته بررسی سلامت Kubernetes

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

دست زدن به تعطیل برازنده

هنگام خاموش کردن ظروف ، Kubernetes قبل از متوقف کردن ظرف ، سیگنال سیگتری را ارسال می کند. اطمینان حاصل کنید که کاوشگرهای آمادگی در هنگام خاموش شدن ، خرابی بازگشت برای جلوگیری از درخواست درخواست در هنگام خاتمه کانتینر.

preStop:  
 exec:  
 command: \[“/bin/sh”, “-c”, “sleep 5”\]
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این قلاب PRESTOP به Kubernetes اجازه می دهد تا 5 ثانیه قبل از متوقف کردن کامل ظرف صبر کنند و از خاموش شدن صاف اطمینان حاصل کنند.

نظارت و هشدار خارجی

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

موارد استفاده در دنیای واقعی از بررسی های بهداشتی Kubernetes

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

1. برنامه های مبتنی بر میکروسرویس

برای خدمات ریزگردها ، کاوشگرهای آمادگی از ارسال ترافیک به مواردی که هنوز در حال شروع کار هستند ، جلوگیری می کند. این از خطاهای غیر ضروری هنگام مقیاس خدمات جلوگیری می کند. آنها به حفظ مسیریابی درخواست صاف با اطمینان از تنها POD هایی با وابستگی های کاملاً اولیه (به عنوان مثال ، اتصالات پایگاه داده ، خدمات خارجی) کمک می کنند.

ترتیب برنامه های مطبوع

پایگاه داده ها و کارگزاران پیام ممکن است برای اولیه سازی زمان داشته باشند. پروب های راه اندازی با اجازه دادن به زمان کافی برای راه اندازی ، قبل از اینکه Kubernetes چک های زنده بودن را اعمال کند ، از عدم موفقیت زودرس جلوگیری می کنند. این تضمین می کند که بارهای کاری مطبوع به دلیل زمان اولیه سازی طولانی ، از شروع مجدد غیر ضروری جلوگیری می کنند ، که برای حفظ قوام داده ها و جلوگیری از تصادفات بسیار مهم است.

3 استقرار CI/CD

بررسی های بهداشتی اطمینان حاصل می کند که نسخه های تازه مستقر قبل از دریافت ترافیک کاملاً آماده هستند و از خرابی در به روزرسانی های نورد جلوگیری می کنند. آنها با تأیید اینکه خدمات با موفقیت وظایف راه اندازی ، پیکربندی های خاص محیط و اولیه سازی وابستگی را انجام داده اند ، به تأیید آمادگی برنامه کمک می کنند.

پایان

بررسی های بهداشتی Kubernetes برای حفظ بار کاری قابل اعتماد ضروری است. با پیکربندی زنده ، آمادگی و پروب های راه اندازی به درستی ، می توانید اطمینان حاصل کنید که برنامه ها پاسخگو و انعطاف پذیر هستند. نظارت منظم ، تنظیم دقیق و عیب یابی به بهینه سازی ثبات بار کار در یک محیط Kubernetes کمک می کند. اجرای بهترین شیوه ها ، نظارت بر خرابی ها و استفاده از استراتژی های دنیای واقعی ، در دسترس بودن برنامه ها را بهبود می بخشد و از وقفه های غیر ضروری جلوگیری می کند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا