Exposing Services

ในขณะที่ส่วนประกอบของแอปพลิเคชันของคุณสามารถสื่อสารกันด้วย service name โดยใช้เครือข่ายภายใน การเชื่อมต่อภายนอกจำเป็นต้องมีการกำหนดค่าเพิ่มเติม


วิธีพื้นฐานที่สุดในการสร้างการเชื่อมต่อภายนอกกับบริการคือการเปิดเผยผ่าน NodePort โดยตรง ตามความหมายของชื่อบริการประเภทนี้จะเปิดพอร์ตเฉพาะบนโหนด การรับส่งข้อมูลใด ๆ ก็ตามที่ส่งไปยังพอร์ตนี้จะถูกส่งต่อไปยังบริการของคุณ โดยค่าเริ่มต้นของ nodePort สำหรับบริการของคุณจะถูกเลือกแบบสุ่มจากช่วง 30000-32767

หมายเหตุ :
วิธีนี้มีข้อเสียหลายประการที่ควรพิจารณาเมื่อกำหนดค่า Kubernetes Cluster (หนึ่งบริการต่อพอร์ต, ช่วงของพอร์ตที่จำกัด ฯลฯ ) ด้วยเหตุนี้จึงสามารถใช้ประเภทบริการ NodePort สำหรับการสาธิตหรือแอปพลิเคชันชั่วคราวอื่น ๆ อย่างไรก็ตามโซลูชันการผลิตมักต้องการการเข้าถึงภายนอกที่ถาวรมากขึ้น (เช่น ingresses)

1. นี่คือตัวอย่างของการกำหนดค่าการบริการประเภท NodePort:

kind: Service
apiVersion: v1
metadata:
  name: nginx1
  namespace: test
  labels:
    run: nginx
spec:
  type: NodePort
  selector:
    run: nginx
  ports:
    - port: 80
      targetPort: 80

หมายเหตุ : โปรดทราบว่า Ruk-Com Cloud ไม่รองรับประเภทบริการ LocaBalancer ในขณะนี้ หากใช้แผนภูมิ YAML หรือ Helm กับอ็อบเจ็กต์บริการดังกล่าวคุณต้องแปลงเป็น NodePort หรือสร้าง ingresses สำหรับการเข้าถึงภายนอก

2. หากจำเป็นคุณสามารถเลือก nodePort เฉพาะสำหรับบริการของคุณได้ ตัวอย่างเช่น โค้ดต่อไปนี้สามารถใช้เพื่อกำหนดค่าการเปลี่ยนเส้นทางจากพอร์ต 30984 ได้:

  ports:
    - port: 80
      targetPort: 80
      nodePort: 30984

หมายเหตุ :
ค่า nodePort ที่จัดเตรียมด้วยตนเองควรอยู่ในช่วงที่อนุญาต (30000-32767) และไม่ซ้ำกัน (เพื่อป้องกันการชนกับบริการอื่น ๆ )

3. ในกรณีที่เชื่อมต่อ public IP กับ Kubernetes worker nodes ไม่จำเป็นต้องดำเนินการใด ๆ เพิ่มเติม

มิฉะนั้นพอร์ตที่ได้รับควรจะถูกเปิดจากด้าน Ruk-Com ไปที่ Kubernetes environment Settings > Endpoints แล้วคลิก Add ในเฟรมที่เปิดให้ระบุข้อมูลต่อไปนี้:

  • Node – เลือก worker node จากลิสรายการ
  • Name – ตั้งชื่อจุดสิ้นสุด (endpoint) ที่ต้องการ
  • Private Port – ระบุ nodePort จากขั้นตอนก่อนหน้า
  • Protocol – เลือกตัวเลือก TCP

คลิก Add เพื่อยืนยัน อาจใช้เวลา 2-3 นาทีเพื่อให้ Ruk-Com แสดงพอร์ตและคำขอเปลี่ยนเส้นทางไปยัง NodePort service