چندی پیش ، من شروع به ساختن یک خوشه Kubernetes در شبکه محلی خود کردم ، جایی که من OpenStack یا OpenShift ندارم که بتواند IP متعادل کننده بار را برای من فراهم کند.
بیشتر سیستم عامل های ابری دارای یک بالانس بار در حال حاضر مکتوب هستند که می تواند IP را ارائه دهد. هنگام ایجاد سرویس با نوع LoadBalancer.
در سناریوی من ، من سرویس برنامه خود را از طریق نوع NodePort ارائه می دهم ، که پورت را در تمام گره های کار فراهم می کند و ترافیک را به زیر صحیح هدایت می کند.
توجه. شما باید NODE IP: EXPOSE PORT را به صورت متعادل کننده از پیش بار خود وارد کنید. اگر اتوماسیون دارید که می تواند کار را برای شما انجام دهد ، عالی است!
برای باز کردن خود را در خارج از خوشه Kubernetes ، شما نیاز به ایجاد یک فایل yaml ، و سپس آن را به گره اصلی مستقر کنید.
روش های دیگری برای تهیه سرویس غلاف از طریق خط فرمان وجود دارد.
من در انتهای این بخش به این کار خواهم رسید.
ابتدا یک غلاف را ایجاد می کنم و سپس به سرویس ها می روم.
اگر می دانید چگونه غلاف های برچسب زده شده ایجاد کنید ، می توانید از این طریق پرش کنید بخش.
kubectl run nginx-demo --image = nginx --port = 80 --labels = "name = nginx-demo"
اجرای kubectl غلاف ها ، را برای بدست آوردن وضعیت ایجاد شده توسط غلاف.
$ kubectl غلاف دریافت کنید
نام مستقل وضعیت احیاء سن
nginx-demo-74df6b89b6-lkjvq 1/1 Run 0 1m
پس از ایجاد و در شرایط کار ، کار خود را شروع کرده و با ارائه خدمات NodePort شروع خواهیم کرد.
خدمات NodePort ایجاد کنید
NodePort خدمات پورت فراهم می کند.
شما می توانید به صورت پویا یک درگاه ایجاد کنید یا در حالی که درگاه موجود است یک پورت استاتیک اختصاص دهید.
برای ایجاد NodePort یک فایل yaml ایجاد کنید.
vi nginx-demo-nodeport-svc .yaml
محتوای نشان داده شده در زیر را در پرونده فوق قرار دهید.
apiVersion: v1
نوع: خدمات
ابرداده:
نام: nginx-demo
برچسب ها:
نام: nginx-demo-nodeport-svc
مشخصات:
نوع: NodePort
پورت ها:
- بندر: 80
nodePort: 30180
نام: http
- بندر: 443
nodePort: 31443
نام: https
انتخاب کننده:
name: nginx-demo
بگذارید سرویس NodePort را ایجاد کنیم.
kubectl ایجاد -f nginx-demo-nodeport-svc.yaml
اجرای kubectl دریافت خدمات برای نمایش خدمات
$ kubectl خدمات دریافت کنید
نام TYPE CLASTER-IP EXTERNAL-IP PORT (S) سن
kubernetes ClusterIP 10.96.0.1 443 / TCP 4d
nginx-demo NodePort 10.98.148.146 80: 30180 / TCP، 443: 31443 / TCP 1m
بعد از ایجاد سرویس ، باید nginx-demo را با درگاه هایی تعریف کنید که در فایل yaml تعریف شده اند
اکنون ، بیایید آدرس IP میزبان را که محل زیر آن است ، بدست آوریم.
سپس می توانیم curl را اجرا کنیم یا آن را در یک مرورگر مشاهده کنیم.
خروجی:
$ kubectl غلاف ها را گسترده کرد.
NAME READY STATUS RESTARTS AGE IP NODE
nginx-demo-74df6b89b6-lkjvq 1/1 Run 0 44m 10.244.1.15 k8s-working-node1
DNS
$ nslookup k8s-working-node1 را بررسی کنید
آدرس: 192.168.0.151
انجام آزمایش
با استفاده از Curl:
$ curl 192.168.0.151 opinion0180
به nginx خوش آمدید!
به nginx خوش آمدید!
اگر این صفحه را مشاهده کردید ، سرور وب nginx با موفقیت نصب و
کار کردن پیکربندی بیشتر مورد نیاز است.
برای اسناد و پشتیبانی آنلاین ، لطفاً به آن مراجعه کنید
nginx.org .
پشتیبانی تجاری در دسترس است
nginx.com .
با تشکر از شما برای استفاده از nginx.
مرور از طریق مرورگر:

با استفاده از خط فرمان برای ایجاد سرویس NodePort
kubectl اعزام استقرار nginx-demo --port = 80 --type = NodePort
خروجی:
kubectl دریافت خدمات
نام TYPE CLASTER-IP EXTERNAL-IP PORT (S) سن
kubernetes ClusterIP 10.96.0.1 443 / TCP 4d
nginx-demo NodePort 10.100.95.81 80: 32546 / TCP 4s
توجه. وقتی برای NodePort از طریق خط فرمان استقرار ایجاد می کنید ، نمی توانید یک درگاه را به صورت دستی اختصاص دهید. خوشه بطور خودکار یکی را به صورت پویا اختصاص می دهد. اگر باید یک پورت را به صورت دستی اختصاص دهید و از الگوی yaml استفاده کنید و استقرار ایجاد کنید.