تنظیم رجیستری میرور بر روی ورکر نودها از ورژن ۱.۲۶ به بعد
در نسخه ۱.۲۶ کوبرنتیز، نحوه تنظیم رجیستریهای میرور تغییر کرده است. در این نسخه، هر ریپازیتوری دارای یک دایرکتوری جداگانه برای تنظیمات خود می باشد و این روش با نسخههای قبلی که تمامی رجیستریها در یک فایل کانفیگ قرار میگرفتند، متفاوت است. بنابراین، روشهای قدیمی برای نسخههای جدید کوبرنتیز کاربردی نخواهند داشت.
توجه: اگر کلاستر شما از نسخههای قدیمی کوبرنتیز استفاده میکند، این روش را اجرا نکنید؛ زیرا ممکن است باعث مشکلاتی در رجیستریهای شما شود. این روش برای کوبرنتیز نسخه ۱.۲۶ و بالاتر طراحی شده است. برای نسخههای پایینتر کوبرنتیز، میتوانید از این مستند به عنوان راهنمای پیادهسازی استفاده کنید.
در صورتی که نودپول را اسکیل کنید، تنظیمات روی نودهای جدید اعمال نخواهد شد. برای اطمینان از این که همه نودهای جدید نیز تنظیمات رجیستری میرور را دریافت کنند، پیشنهاد میشود یک نودپول جدید ایجاد کرده و از پنل مدیریتی تنظیمات را روی آن اعمال کنید.
در بسیاری از سناریوهای مدیریت کلاستر، نیاز به اعمال سریع تغییرات روی Worker Nodeهای کوبرنتیز وجود دارد. یکی از روشهای مؤثر برای این کار، استفاده از یک DaemonSet است که وظیفه اجرای اسکریپتهای Bash روی نودها را بر عهده دارد.
در این روش، یک ConfigMap حاوی اسکریپتهای Bash ایجاد شده و درون DaemonSet مانت میشود تا تنظیمات لازم را روی نودها اعمال کند. با این حال، توجه داشته باشید که این DaemonSet بهصورت پیشفرض روی تمامی نودها اجرا نمیشود،بلکه تنها روی نودهایی فعال خواهد شد که دارای لیبل مشخصی باشند.
ابتدا یک Namespace موقت برای مدیریت ConfigMap و DaemonSet ایجاد کنید:
bashCopyEdit
یک ConfigMap شامل اسکریپت Bash موردنظر را تعریف و اعمال کنید:
مقدار SKE_MIRROR_URL در این تنظیمات به "https://mirror.registry.platform.ske.sotoon.ir" ست شده است. اگر نیاز به رجیستری دیگری دارید، مقدار آن را به آدرس موردنظر تغییر دهید.
همچنین، فقط رجیستریهای زیر بهعنوان میرور تنظیم شدهاند:
- docker.io
- gcr.io
- k8s.gcr.io
- ghcr.io
- quay.io
- k8s.io
- registry.k8s.io
- registry.gitlab.com
- public.ecr.aws
- docker.elastic.co
در صورت نیاز به افزودن یا حذف رجیستریهای دیگر، می توانید این لیست را تغییر دهید.
سپس، یک DaemonSet ایجاد میکنیم که این اسکریپت را از طریق ConfigMap روی نودهای مشخص اجرا کند.
این DaemonSet تنها روی نودهایی اجرا میشود که دارای لیبل مشخصی باشند. برای اجرای آن روی یک نود خاص، لیبل زیر را به نود اضافه کنید:
با انجام این مراحل، DaemonSet تنها روی نودهای دارای این لیبل اجرا شده و تغییرات موردنظر را اعمال خواهد کرد.
پس از اجرای تغییرات و اطمینان از عملکرد صحیح، میتوانید Namespace موقت را حذف کنید تا منابع اضافی از کلاستر پاک شوند:
در این کانفیگ، رجیستریهای زیر به عنوان میرور تنظیم شدهاند:
- create_mirror_cert_d_config "docker.io"
- create_mirror_cert_d_config "gcr.io"
- create_mirror_cert_d_config "k8s.gcr.io"
- create_mirror_cert_d_config "ghcr.io"
- create_mirror_cert_d_config "quay.io"
- create_mirror_cert_d_config "k8s.io"
- create_mirror_cert_d_config "registry.k8s.io"
- create_mirror_cert_d_config "registry.gitlab.com"
- create_mirror_cert_d_config "public.ecr.aws"
- create_mirror_cert_d_config "docker.elastic.co"
در صورتی که نیاز به تنظیم رجیستریهای دیگری دارید، میتوانید مقدار SKE_MIRROR_URL را تغییر داده و موارد مورد نیاز را به لیست بالا اضافه یا کم کنید.