0Pricing
Kubernetes Basics · บทเรียน

การเปิดเผยแอปด้วย Service

ทำความเข้าใจบทบาทของ Service ในการจัดเตรียมปลายทางเครือข่ายที่เสถียรสำหรับ Pod

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

Pod: วันนี้ยังอยู่ พรุ่งนี้อาจหายไป

ใน Kubernetes Pod คือหน่วยที่เล็กที่สุดที่สามารถนำไปใช้งานได้ Pod ถูกออกแบบให้เป็นหน่วยชั่วคราว และ Kubernetes สามารถสร้าง ลบ หรือย้าย Pod ได้ทุกเมื่อ

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

ปัญหาเป้าหมายที่เคลื่อนที่

Pod แต่ละรายการจะได้รับที่อยู่ IP ของตนเอง เมื่อ Pod เริ่มทำงานใหม่หรือปรับขนาด มักจะได้รับที่อยู่ IP ใหม่ การเชื่อมต่อโดยตรงไปยัง IP ของ Pod จึงเหมือนกับการพยายามโจมตีเป้าหมายที่กำลังเคลื่อนที่

ลองนึกภาพแอปพลิเคชันเว็บที่มี Pod หลายรายการ หาก Pod รายการหนึ่งเริ่มทำงานใหม่ IP ของมันจะเปลี่ยน ทำให้การเชื่อมต่อจากบริการอื่นหรือผู้ใช้ขาดหาย

Services ช่วยแก้ปัญหา

นี่คือจุดที่ Kubernetes Services เข้ามาช่วย Service จะให้ปลายทางเครือข่ายที่เสถียรและคงที่สำหรับชุดของ Pod

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

เกตเวย์ที่เสถียรสำหรับ Pod

Service ทำหน้าที่เป็นชั้นนามธรรมเหนือกลุ่ม Pod โดยให้ที่อยู่ IP และชื่อ DNS เดียวที่สอดคล้องกัน

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

การเชื่อมต่อ Services กับ Pod

Service รู้ได้อย่างไรว่าควรกำหนดเส้นทางการรับส่งข้อมูลไปยัง Pod ใด โดยใช้ป้ายกำกับและตัวเลือกนั่นเอง

เมื่อคุณกำหนด Service คุณจะระบุ selector Pod ใดก็ตามที่มีป้ายกำกับตรงกันจะกลายเป็นส่วนหนึ่งของกลุ่ม Service นั้นโดยอัตโนมัติ

การเชื่อมโยงแบบไดนามิกนี้ทำให้ Pod ใหม่ถูกเพิ่มเข้ามาโดยอัตโนมัติ และ Pod ที่ไม่พร้อมใช้งานถูกนำออก

การกำหนดทิศทางการรับส่งข้อมูลเครือข่าย

Services จัดการการไหลของการรับส่งข้อมูลเครือข่าย โดยกำหนดพอร์ตเพื่อจับคู่คำขอขาเข้ากับพอร์ตที่ถูกต้องบน Pod ของคุณ

แนวคิดสำคัญเกี่ยวกับพอร์ต:

  • port: พอร์ตที่ Service เองใช้รอรับการเชื่อมต่อ
  • targetPort: พอร์ตบน Pod ที่ Service ส่งต่อการรับส่งข้อมูลไป

การสร้างไฟล์กำหนด Service

เช่นเดียวกับทรัพยากรส่วนใหญ่ของ Kubernetes, Services จะถูกกำหนดโดยใช้ไฟล์ YAML มาดูโครงสร้างพื้นฐานกัน:

  • apiVersion: v1
  • kind: Service
  • metadata: ชื่อ ป้ายกำกับ
  • spec: มีคำจำกัดความหลัก รวมถึง selector และ ports

Service แรกของคุณ: ClusterIP

ประเภท Service ที่ใช้กันมากที่สุดสำหรับการสื่อสารภายในคือ ClusterIP ซึ่งเปิดให้เข้าถึง Service ผ่านที่อยู่ IP ภายในคลัสเตอร์

ตัวอย่างสำหรับแอปพลิเคชันเว็บอย่างง่ายมีดังนี้:

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

การนำ Service ไปใช้งาน

เมื่อมี YAML ของ Service แล้ว คุณสามารถนำไปใช้งานในคลัสเตอร์โดยใช้ kubectl เช่นเดียวกับ Pod หรือ Deployments

คำสั่งนี้จะแจ้งให้ Kubernetes สร้าง Service ตามคำจำกัดความของคุณ:

kubectl apply -f service.yaml

การใช้ Service ใหม่ของคุณ

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

ตัวอย่างเช่น Pod อื่นอาจเชื่อมต่อไปยัง my-web-service:80 และ Service จะจัดการกำหนดเส้นทางไปยัง Pod my-webapp ที่ถูกต้อง

ตรวจสอบความเข้าใจเรื่อง Service

คุณได้เรียนรู้ว่า Kubernetes Services ช่วยให้เข้าถึงเครือข่ายของ Pod ที่เปลี่ยนแปลงอยู่ตลอดได้อย่างเสถียร

ข้อใดต่อไปนี้อธิบายบทบาทหลักของ Kubernetes Service ได้ดีที่สุด

ทบทวน: การเชื่อมต่อที่เสถียร

ทำได้ดีมาก ในบทเรียนนี้ เราได้สำรวจ Kubernetes Services

  • Pod เป็นหน่วยชั่วคราวและมี IP ที่เปลี่ยนแปลงได้
  • Services มอบปลายทางเครือข่ายที่เสถียรให้แก่ Pod
  • Services ใช้ตัวเลือกเพื่อค้นหา Pod เป้าหมาย
  • Services จับคู่ port ภายนอกกับ targetPort ภายใน
  • ClusterIP เป็นประเภทที่ใช้กันทั่วไปสำหรับการสื่อสารภายใน

ต่อไป เราจะเจาะลึกประเภทต่าง ๆ ของ Service และการใช้งาน

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

บทเรียน “การเปิดเผยแอปด้วย Service” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การเปิดเผยแอปด้วย Service”

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

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

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

บทเรียน “การเปิดเผยแอปด้วย Service” ใช้เวลานานแค่ไหน

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

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

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

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

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