نصب Nginx روی کوبرنتیز (Kubernetes)
توی این مقاله آموزشی از مجموعه ابرآس به نصب Nginx روی کوبرنتیز خواهیم پرداخت
کوبرنتیز یک ابزار ارکستراسیون (یکپارچه سازی) کانتینر اوپن سورس است که برای پیاده سازی، مقیاسبندی و مدیریت اپلیکیشن های کانتینری استفاده میشود. از طرف دیگر، NGINX یک وب سرویس است که برای پروکسی و تعادل بار استفاده می شود. در این مقاله، ابتدا درباره چیستی کوبرنتیز و ویژگی های آن بحث توضیحاتی ارئه شده است. پس از این، در مقاله قراره از طریق مراحل مختلف برای پیاده سازی NGINX در کوبرنتیز و اتصال آن از طریق مرورگر وب راهنمایی بگیریم.
راهنمای مقاله
Toggleآشنایی با کوبرنتیز
کوبرنتیز از معماری Master/Slave پیروی می کند. سرور اصلی(Master) تمام عملیات کلاستر را مدیریت می کند در حالی که سرور کارگر(Worker Node) کانتینرها را پیاده سازی و اجرا می کند. سرور اصلی از 4 مؤلفه اصلی تشکیل شده است، سرور API که به تعامل و دادن دستورات به کلاستر کوبرنتیز کمک می کند، Scheduler پاد(Pod) را روی یک سرور خاص برای اجرا برنامه ریزی می کند و etc برای ذخیره داده های کلاستر کوبرنتیز و Control Manager برای مدیریت کنترلرهای مختلف. مانند Deployment، Replica setsو بسیاری موارد دیگر.
آشنایی با Nginx
NGINX یک ابزار وب سرویس اوپن سورس است که عمدتاً برای پروکسی معکوس، کش کردن و تعادل بار استفاده می شود. استفاده از NGINX زمان بارگذاری یک وب سایت را کاهش می دهد. NGINX تجربه کلی کاربر را بهبود می بخشد. همچنین می تواند به درخواست های همزمان رسیدگی کند. NGINX عملکرد و مقیاس پذیری بهتری را ارائه می دهد. NGINX را می توان در میکروسرویس استفاده کرد، جایی که می توان از آن به عنوان یک پروکسی معکوس برای محافظت از سرورهای بک اند در برابر قرار گرفتن مستقیم در معرض دنیای خارج استفاده کرد.
Deployment چیست
Deployment در کوبرنتیز نوعی منبع برای فرآیند مدیریت برای عرضه و مقیاسبندی اپلیکیشن است. اجرای نرم، کارآمد و پیوسته برنامه در میان کلاستری از سرورها را تسهیل می کند.
نصب Minikube
قبل از اینکه بتونیم Nginx را روی کوبنتر نصب کنیم نیازه که زیرساخت کوبرنتیز داشته باشیم, توی این مقاله راجب نصب کوبرنتیز با Minikube صحبت کردیم.
پیاده سازی سریع Nginx در کوبرنتیز
برای نصب و پیاده سازی Nginx در کوبرنتیز می توان از دستور زیر کمک گرفت.
kubectl create deployment nginx --image=nginx
بعد از اجرای دستور بالا مقداری صبر می کنیم تا ایمیج مربوط به وب سرور Nginx دریافت شود.
همچنین برای بررسی وضعیت اصطلاحا Deployment می توان از دستور زیر کمک گرفت.
kubectl get deployments
نوشتن Deployment
اگر بخواییم سرویس Nginx رو با کانفیگ های خاص خودمون اجرا کنیم می تونیم با نوشتن Deployment مخصوص شروع کنیم. برای اینکار نیازه که کانفیگ های مدنظرمون رو در فرمت yaml بنویسیم. برای مثال نمونه ای از یک Deployment آورده شده.
apiVersion: apps/v1 kind: Deployment metadata: name: nginx labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80
بعد از اعمال تغییرات مدنظر نیازه که فایل deployment خودمون رو به کوبرنتیز معرفی کنیم که برای اینکار می تونیم از دستور زیر کمک بگیریم.
kubectl apply -f Deployment.yaml
دسترسی به Nginx
برای اینکه بتونیم از بیرون به Nginx داخل کلاستر وصل بشیم نیازه که از Service استفاده کنیم.
apiVersion: v1 kind: Service metadata: name: nginx-service spec: type: NodePort selector: app: nginx ports: - port: 80 targetPort: 80
در نهایت برای اعمال Service می تونیم از دستور زیر کمک بگیریم.
kubectl apply -f Service.yaml
استفاده از Minikube
اگر شما از Minikube برای پیاده سازی کوبرنتیز استفاده کردین, نیازه که از یک دستور دیگه هم کمک بگیرین.
minikube service nginx-service
صحبت پایانی:
ممنون که تا اینجای مقاله همراهمون بودی و به رشد خودت کمک کردی.
میدونستی با اشتراک گذاری این مقاله میتونی از ما حمایت کنی!