نود و پنلش
یک نود از خودش ارادهای ندارد. چیزی را سرو میکند که پنلش میفرستد، تا وقتی پنل به آن دسترسی دارد. این صفحه نود را در طول عمرش دنبال میکند: نصب و مورد اعتماد شدن، همگام ماندن، خاموش شدن، قطع شدن، رد کردن یک پیکربندی، و انتقال به سروری دیگر.
نصب و اعتماد
نصب یک نود دو گواهی و یک پین میسازد:
- گواهی کلاینت پنل به نود میرود، یا با یک توکن نصب یکبارمصرف یک بار دریافت میشود، یا با نصب خودکار پنل از راه SSH بارگذاری میشود. از آن به بعد نود فقط همان گواهی را روی پورت کنترلش میپذیرد.
- گواهی سرور خود نود روی نود ساخته میشود و هیچوقت از آن بیرون نمیرود.
- پین. پنل در اولین اتصال اثر انگشت گواهی نود را ثبت میکند، و از آن به بعد فقط همان گواهی را در آن آدرس میپذیرد. این اعتماد در اولین استفاده است.
هر طرف در هر اتصال هویتش را ثابت میکند، پس هیچ چیز دیگری در اینترنت از handshake TLS روی پورت کنترل رد نمیشود. بهروزرسانی نود در جا گواهیاش را نگه میدارد، پس پین همچنان جور است. نصب دوباره از صفر گواهی تازهای میسازد که پنل آن را رد میکند، تا وقتی نود حذف و دوباره اضافه شود، یا منتقل شود (پایینتر). مرحلهها در افزودن نود آمدهاند.
نشستها
پنل یک نشست روی نود باز میکند و شناسهی آن را در هر درخواست میفرستد. نشستها روی نود در حافظه نگه داشته میشوند، پس نودی که ریاستارت شده آنها را فراموش کرده است. پنل متوجه میشود، نشست تازهای باز میکند و درخواست را یک بار تکرار میکند؛ لازم نیست کاری بکنید.
API کنترل یک نود در هر لحظه فقط به یک پنل جواب میدهد. ابزاری که نشست خودش را روی نود باز کند آن را از پنل میگیرد، و پنل در درخواست بعدیاش دوباره وصل میشود.
ضربان
پنل هر ۱۵ ثانیه حال همهی نودها را میپرسد، هر کدام جداگانه، تا یک نود دستنیافتنی هیچوقت بقیه را معطل نکند. پاسخ اینها را دارد:
- آیا هسته در حال اجراست و چیزی را که به آن داده شده راه انداخته است؛
- تعداد اتصالهای باز، در کل و برای هر اینباند؛
- هسته چند بار ریاستارت شده، و آخرین خطای راهاندازیاش؛
- آیتمهایی که کنار گذاشته، بهصورت هشدار؛
- آمار اتصالهایی که اوتباندهای block رد کردهاند.
وقتی نودی جواب میدهد که هیچ چیزی اجرا نمیکند، ضربان کل پیکربندیاش را دوباره میفرستد. همین است که نودی که ریاستارت شده، یا مدتی پنلش را از دست داده، در عرض چند ثانیه به سرویس برمیگردد.
خاموش
میتوانید یک نود را در صفحهی نودها خاموش کنید، و محدودیت ترافیک دورهایاش هم میتواند خودش آن را خاموش کند. در هر دو حالت پنل:
- برای آخرین بار شمارندههایش را جمع میکند؛
- فوراً یک پیکربندی خالی برایش میفرستد تا سرو کردن را متوقف کند؛
- نشستش را رها میکند و دیگر با آن تماس نمیگیرد.
نود خاموش همگام نمیشود، ضربانی نمیگیرد و وصلشده علامت نمیخورد، هر چه هم در پنل تغییر کند، تا وقتی دوباره روشن شود. آنوقت پیکربندی کاملش را میگیرد. پنلی که راه میافتد، هر نود خاموش را یک بار خالی میکند.
جدا از پنلش
نود فقط تا وقتی سرو میکند که پنلش به آن دسترسی دارد. وقتی پنل از کار افتاده یا شبکهی بینشان قطع است:
- تا حدود سه دقیقه نود به سرو کردن ادامه میدهد. ریاستارت یا ارتقای پنل، یا یک مشکل کوتاه شبکه، اتصال هیچکس را قطع نمیکند.
- بعد از سه دقیقه بیخبری از پنل، نود هستهاش را متوقف میکند و هیچ چیزی سرو نمیکند.
- وقتی پنل دوباره به آن برسد، اولین ضربان آن را خالی مییابد و کل پیکربندیاش را میفرستد.
این مهلت با ساعت یکنواخت (monotonic) نود اندازه گرفته میشود، پس تغییر ساعت دیواری آن هیچ چیزی را تغییر نمیدهد. ترافیکی که نود بعد از آخرین جمعآوری پنل، در زمان قطع بودن، حمل کرده از دست میرود: نود شمارندهها را بعد از توقف نگه نمیدارد.
حذف یک نود در پنل، اگر پنل به آن دسترسی داشته باشد، فوراً متوقفش میکند. اگر نداشته باشد، نود سه دقیقه بعد از آخرین باری که از پنل خبر گرفته خودش متوقف میشود.
پیکربندیای که هسته رد میکند
نود پیش از رها کردن پیکربندی در حال اجرا، پیکربندی تازه را بررسی میکند:
- آیتمی که ساختنش شکست بخورد (اینباندی که پورتش گرفته شده، گواهی نادرست) کنار گذاشته میشود و نود بقیه را سرو میکند. آیتم کنارگذاشته یک هشدار است.
- پیکربندی کاملی که هسته نمیتواند راه بیندازد برگردانده میشود: نود به سرو کردن چیزی که قبلاً اجرا میکرد ادامه میدهد و گزارش میدهد که پیکربندی تازه را راه نینداخته است.
پنل نودی را که برگشته سالم حساب نمیکند. نود را در حالت خطا با دلیلش نشان میدهد، و ضربان همچنان پیکربندی را میفرستد، اول با ۳۰ ثانیه فاصله و تا ۱۰ دقیقه بین هر تلاش، تا وقتی راه بیفتد یا چیزی را که رد میکند درست کنید.
خطاها و هشدارها
یک نود در پنل میتواند دو نوع پیام متفاوت داشته باشد:
| خطا | هشدارها | |
|---|---|---|
| معنا | نود کار نمیکند: در دسترس نیست، پیکربندیاش را رد میکند، یا اجرا نمیشود | نود کار میکند، ولی بعضی آیتمها از چیزی که اجرا میکند جا افتادهاند |
| نمونهها | اتصال رد شد، ناهمخوانی پین گواهی، پیکربندیای که راه نیفتاد | اینباندی که هنگام راهاندازی کنار گذاشته شد، تغییری که یک آیتم نتوانست بپذیرد، کاربرهایی که به خاطر نداشتن اطلاعات ورود کنار گذاشته شدند |
| پاک میشود | با ضربان سالم بعدی | وقتی همگامسازی بعدی آیتمها را اعمال کند |
هشدارها در حافظهی پنل نگه داشته میشوند. بعد از ریاستارت پنل، با همگامسازی بعدی که پیدایشان کند برمیگردند.
انتقال نود به سروری دیگر
سه چیز به ماشینی که نود رویش اجرا میشود بسته است: پین گواهیاش، کلید میزبان SSH که پنل ثبت کرده، و آنچه پنل دربارهی طرز نصب نود میداند. ویرایش فقط آدرس هر سه را به ماشین تازه میبرد، جایی که پین هر اتصالی را رد میکند.
انتقال به سرور دیگر در منوی نود هر سه را پاک میکند. سپس روی سرور تازه طوری نصب میکنید که انگار نود تازهای است، و اولین اتصال گواهی تازه را پین میکند. کاربرها، اینباندها و هر چیز دیگری دربارهی نود همانطور که هست میماند، چون در پنل زندگی میکنند.
صفحههای مرتبط
- تغییر بدون ریاستارت: یک تغییر چطور به نود در حال اجرا میرسد.
- مدل امنیتی: TLS دوطرفه و پین کردن در مدل امنیتی گستردهتر.
- نودها: فهرست نودها، وضعیتشان و منویشان.
- عیبیابی: نودی که آفلاین نشان داده میشود.
