کوبرنتیز و تحریم: چطوری دورش بزنیم؟

کوبرنتیز یه ابزار بسیار محبوب برای شرکت‌ها محسوب میشه. به همین دلیل هم یه جامعه بسیار پویا پشتش هست و انواع و اقسام ابزارها برای استفاده بهتر ازش داره منتشر میشه. اما خیلیا (از جمله خودم) تو ایران ممکنه به خاطر تحریما برای استفاده ازش به مشکل خورده باشن؛ چون تو کشور هیچ خدمت managed kubernetes ی ارائه نمیشه و نیازه خودمون نصبش کنیم. اونم که تحریمه! برای دور زدن این تحریم من از شکن (shecan.ir) استفاده کردم. تو این مطلب میخوام از تجربه‌ام در نصب کوبرنتیز روی سرورهای خودمون (یا سرورهای on-premise) براتون بگم.

من همیشه در استفاده از شکن مشکل داشتم؛ چون می‌رفتم اون dns server هاشون رو توی فایل resolve.conf در etc می‌نوشتم. اونجا هم نوشته که این فایل overwrite میشه و نکن این کارو. ولی من گوشم بدهکار نبود و انجام می‌دادم! واسه بعضی کارا جوابم می‌داد ولی دیگه کوبرنتیز رو نمی‌تونستم کاری کنم. خیلی هم دنبالش گشتم ولی موفق نشدم. تا اونجا که توی دوره lpic 1 متوجه شدم که میشه interface های شبکه‌ی سیستم رو به شکل مجزا تنظیم کرد تا از dns server خاصی آدرس‌ها رو بپرسن. منم روی اوبونتو ۱۸ دیدم برنامه‌ای که مسئول تنظیمات ابتدایی شبکه است netplan هست (قدیما ‌ifup و ifdown بودن)؛ یعنی وقتی سیستم بوت میشه میتونه تنظیمات دلخواه رو به interface ها بده. منم یه کم تحقیق کردم در مورد netplan و دیدم یه فایل کانفیگ توی etc توی پوشه netplan هست که باید اون رو دستکاری کنم.

حالا چجوری تنظیمش کنیم؟ فایلی که اونجا بود رو به این شکل تغییر دادم:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.163/24
      gateway4: 192.168.1.1
      nameservers:
          addresses:
            - 178.22.122.100
            - 185.51.200.2

همونطور که معلومه اول اسم interface رو نوشتم (این اسم رو میتونید با اجرای دستور ifconfig بدست بیارید) و یه آدرس ثابت به سرور دادم. هم‌چنین آدرس dns server شکن رو دادم. نکته دیگه اینه که مسئول اجرای این فایل networkd هست. شما میتونید از NetworkManager هم استفاده کنید. بعد از ویرایش این فایل باید دستور زیر رو اجرا کنید تا تغییرات اعمال شه:

sudo netplan apply

با تنظیم این فایل بعد از هر بار ریبوت همین کانفیگ برقرار میشه. برای نصب کوبرنتیز هم از سایت اصلی کوبرنتیز و kubeadm استفاده کردم. البته سایت digitalocean هم راهکار خیلی خوبی برای استفاده از ansible برای ایجاد کلاستر کوبرنتیز به کمک kubeadm داره.

امیدوارم این مطلب براتون مفید بوده باشه.