การเปิดเผยแอปด้วย Service
ทำความเข้าใจบทบาทของ Service ในการจัดเตรียมปลายทางเครือข่ายที่เสถียรสำหรับ Pod
การเปิดเผยแอปด้วย Service เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 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:v1kind:Servicemetadata: ชื่อ ป้ายกำกับ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) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเปิดเผยแอปด้วย Service”
ทำความเข้าใจบทบาทของ Service ในการจัดเตรียมปลายทางเครือข่ายที่เสถียรสำหรับ Pod คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การเปิดเผยแอปด้วย Service” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเปิดเผยแอปด้วย Service
- ประเภท Service: ClusterIP, NodePort, LoadBalancer
- Ingress สำหรับการเข้าถึงจากภายนอก
- DNS และการค้นหาบริการ