Kubernetes Basics · บทเรียน

ประเภท Service: ClusterIP, NodePort, LoadBalancer

เรียนรู้วิธีต่าง ๆ ในการเปิดให้เข้าถึง Service ทั้งภายในและภายนอกคลัสเตอร์ Kubernetes

บทเรียน 2 จาก 412 ขั้นตอน

ประเภท Service: ClusterIP, NodePort, LoadBalancer เป็นบทเรียน Kubernetes Basics ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kubernetes Basics และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน

ความต้องการเปิดให้บริการเข้าถึง

ใน Kubernetes พ็อดมีอายุการใช้งานชั่วคราวและมีที่อยู่ IP แบบไดนามิก บริการช่วยให้แอปพลิเคชันของคุณเข้าถึงผ่านเครือข่ายได้อย่างคงที่ แล้วเราจะเปิดให้เข้าถึงบริการเหล่านี้ได้อย่างไร

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

ClusterIP: การเข้าถึงภายใน

ClusterIP เป็นประเภทบริการเริ่มต้น โดยจะมอบที่อยู่ IP ภายในที่คงที่ให้กับบริการ ซึ่งเข้าถึงได้เฉพาะจากภายในคลัสเตอร์ Kubernetes เท่านั้น

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

YAML ของบริการ ClusterIP

ต่อไปนี้คือตัวอย่างการกำหนดบริการประเภท ClusterIP โปรดสังเกตฟิลด์ type: ClusterIP ซึ่งไม่จำเป็นต้องระบุก็ได้ เพราะเป็นค่าเริ่มต้น

apiVersion: v1
kind: Service
metadata:
  name: my-internal-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: ClusterIP

การเข้าถึงบริการ ClusterIP

เมื่อทำการติดตั้งแล้ว Kubernetes จะกำหนดที่อยู่ IP ภายในที่ไม่ซ้ำกัน (ClusterIP) ให้บริการนี้โดยอัตโนมัติ จากนั้นพ็อดอื่นจะเชื่อมต่อได้โดยใช้ชื่อบริการ (เช่น my-internal-service) หรือใช้ IP ของบริการ

บริการ DNS ของ Kubernetes จะแปลงชื่อบริการเป็น ClusterIP ทำให้การสื่อสารภายในทำได้ง่ายและเชื่อถือได้

NodePort: การเข้าถึงจากภายนอก

หากคุณต้องการเข้าถึงแอปพลิเคชันจากภายนอกคลัสเตอร์ นี่คือจุดที่ NodePort เข้ามาช่วย

บริการ NodePort จะเปิดให้เข้าถึงแอปพลิเคชันผ่านพอร์ตคงที่บน ที่อยู่ IP ของทุกโหนด ในคลัสเตอร์ การรับส่งข้อมูลใด ๆ ที่ส่งไปยัง NodeIP:NodePort จะถูกส่งต่อไปยังบริการของคุณ

  • มีประโยชน์สำหรับการพัฒนาและการติดตั้งระบบขนาดเล็ก
  • โดยปกติ NodePort จะอยู่ในช่วง 30000-32767

YAML ของบริการ NodePort

หากต้องการสร้างบริการ NodePort ให้กำหนด type: NodePort อย่างชัดเจน หากคุณไม่ได้ระบุพอร์ต Kubernetes จะเลือกพอร์ตที่พร้อมใช้งานในช่วง NodePort ให้โดยอัตโนมัติ

apiVersion: v1
kind: Service
metadata:
  name: my-nodeport-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
      nodePort: 30080 # Optional: K8s picks if omitted
  type: NodePort

เชื่อมต่อผ่าน NodePort

หลังจากติดตั้งบริการ NodePort แล้ว คุณจะเข้าถึงแอปพลิเคชันจากภายนอกคลัสเตอร์ได้โดยใช้ <AnyNodeIP>:<NodePort>

ตัวอย่างเช่น หาก IP ของโหนดคือ 192.168.1.100 และ NodePort ที่ได้รับการกำหนดคือ 30080 คุณจะเข้าถึงแอปได้ที่ http://192.168.1.100:30080

LoadBalancer: การผสานรวมกับคลาวด์

สำหรับสภาพแวดล้อมการใช้งานจริงบนผู้ให้บริการคลาวด์ (AWS, GCP, Azure) มักนิยมใช้บริการประเภท LoadBalancer เนื่องจากจะจัดเตรียมตัวกระจายโหลดบนคลาวด์ภายนอกให้โดยอัตโนมัติ

ตัวกระจายโหลดนี้จะได้รับที่อยู่ IP สาธารณะและกระจายการรับส่งข้อมูลภายนอกไปยังพ็อดของบริการของคุณ โดยจัดการการกำหนดเส้นทางที่ซับซ้อนทั้งหมดให้

YAML ของบริการ LoadBalancer

การกำหนดบริการ LoadBalancer ทำได้โดยตรง ผู้ให้บริการคลาวด์ของคุณจะจัดการขั้นตอนที่ซับซ้อนในการจัดเตรียมตัวกระจายโหลดภายนอกให้

apiVersion: v1
kind: Service
metadata:
  name: my-loadbalancer-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: LoadBalancer

การเข้าถึงจากภายนอกด้วย LoadBalancer

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

วิธีนี้ช่วยให้เปิดบริการของคุณสู่อินเทอร์เน็ตได้อย่างมีประสิทธิภาพ รองรับการขยายระบบ และพร้อมใช้งานในระดับสูง

ตรวจสอบความเข้าใจอย่างรวดเร็ว: ประเภทบริการ

บริการ Kubernetes ประเภทใดบ้างที่อนุญาตให้เข้าถึงแอปพลิเคชันจากภายนอกคลัสเตอร์ได้โดยตรง

สรุป: การเลือกบริการ

คุณได้เรียนรู้เกี่ยวกับบริการ Kubernetes 3 ประเภทหลักแล้ว

  • ClusterIP: สำหรับการเข้าถึงเฉพาะภายในคลัสเตอร์
  • NodePort: เปิดบริการผ่านพอร์ตคงที่บน IP ของแต่ละโหนด ทำให้เข้าถึงจากภายนอกได้
  • LoadBalancer: ผสานรวมกับผู้ให้บริการคลาวด์เพื่อจัดเตรียมตัวกระจายโหลดภายนอกที่มี IP สาธารณะ

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

เริ่มต้นได้ฟรี

เรียนรู้ Kubernetes Basics ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
12
บทเรียน
48

คำถามที่พบบ่อย

บทเรียน “ประเภท Service: ClusterIP, NodePort, LoadBalancer” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ประเภท Service: ClusterIP, NodePort, LoadBalancer” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kubernetes Basics ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ประเภท Service: ClusterIP, NodePort, LoadBalancer”

เรียนรู้วิธีต่าง ๆ ในการเปิดให้เข้าถึง Service ทั้งภายในและภายนอกคลัสเตอร์ Kubernetes คุณปฏิบัติ Kubernetes Basics ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kubernetes Basics หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kubernetes Basics บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “ประเภท Service: ClusterIP, NodePort, LoadBalancer” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kubernetes Basics นี้ได้ไหม

ได้ บทเรียน Kubernetes Basics ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การเปิดเผยแอปด้วย Service
  2. ประเภท Service: ClusterIP, NodePort, LoadBalancer
  3. Ingress สำหรับการเข้าถึงจากภายนอก
  4. DNS และการค้นหาบริการ
← กลับไปที่ Kubernetes Basics