ining تعریف Kubernetes Pod به عنوان سرویس NodePort – تیم امنیت اطلاعات

چندی پیش ، من شروع به ساختن یک خوشه 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 استفاده کنید و استقرار ایجاد کنید.