در کلاستر توانایی expose کردن سرویسها به وسیلهی آیپی (سرویس از نوع LoadBalancer) و دامنه (ingress) وجود دارد.
اکسپوز کردن سرویس با آیپی
دسترسی به سرویس از طریق یک آیپی اختصاصی از بیرون کلاستر، در کوبرنتیز اختصاصی همروش امکانپذیر است. برای استفاده از این امکان میتوانید به سادگی نوع svcهای کوبرنتیز خود را با نوع LoadBalancer تنظیم کنید.
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
selector:
app: my-app
پس از اعمال این svc، یک آیپی اختصاصی به سرویس شما اختصاص داده شده و میتوانید از آن استفاده کنید.
استفاده از آیپی اشتراکی
با استفاده از آیپی اشتراکی، میتوانید چند سرویس را با استفاده از امکان nodePort به بیرون از کلاستر کوبرنتیز خود اکسپوز کنید. برای استفاده از این امکان نیاز است تا annotation زیر را در سرویس خود تعریف کنید:
gw.hamravesh.com/expose-as: nodePort
gw.hamravesh.com/shared: true
در این حالت، سرویس نهایی شما به شکل زیر خواهد شد:
apiVersion: v1
kind: Service
metadata:
name: my-service
annotations:
gw.hamravesh.com/expose-as: nodePort
gw.hamravesh.com/shared: true
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
selector:
app: my-app
در این حالت، یک IP جدید برای شما رزرو خواهد شد و سرویسهای متعددی که مد نظر شماست، میتوانند از طریق nodePort و این آیپی قابل دسترس باشند.
استفاده از آیپی اشتراکی برای محیط پروداکشن مناسب نیست و بیشتر در مواقع تست یا محیطهای توسعه مورد استفاده قرار میگیرد. برای استفاده از سرویس لودبالانسر در محیط پروداکشن، از annotation ذکر شده استفاده نکنید.
مشاهدهی لیست svcهای لودبالانسر
لیست svcهای کوبرنتیز خود که از نوع LoadBalancer هستند در پنل کلاستر اختصاصی نیز قابل مشاهده هستند.
برای مشاهده لیست svcهای لودبالانسر در پنل:
۱. روی کلاستر خود کلیک کنید. ۲. به بخش لودبالانسر رفته و لیست LoadBalancerها را مشاهده کنید.
مدیریت IPهای اختصاصی
برای مدیریت IPهای اختصاص داده به کلاستر نیز میتوانید از بخش لود بالانسر، روی دگمهی مدیریت IPها کلیک کنید و لیست IPهای خود را ببینید.
در این لیست، IPهای آزاد نیز به شما نشان داده میشود تا در صورت لزوم، آنها را از کلاستر خود حذف کنید.