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

ก้าวข้ามพ็อดและ ReplicaSets
คุณได้เรียนรู้เกี่ยวกับพ็อด (หน่วยที่เล็กที่สุด) และ ReplicaSets (ซึ่งรับรองจำนวนพ็อดตามที่กำหนด)
การนำไปใช้งานทำงานอยู่บน ReplicaSet โดยมอบชั้นนามธรรมระดับสูงขึ้นสำหรับ
- การสร้างและอัปเดต ReplicaSets
- การทยอยนำเวอร์ชันใหม่ของแอปพลิเคชันออกใช้งาน
- การย้อนกลับไปยังเวอร์ชันก่อนหน้าเมื่อเกิดข้อผิดพลาด
สิ่งนี้ทำให้การจัดการแอปพลิเคชันง่ายและปลอดภัยยิ่งขึ้น
ภายใน YAML ของการนำไปใช้งาน
เช่นเดียวกับทรัพยากร Kubernetes อื่น ๆ การนำไปใช้งานกำหนดโดยใช้ YAML มาดูโครงสร้างพื้นฐานกัน
apiVersion: ระบุเวอร์ชัน API ของ Kubernetes (เช่นapps/v1)kind: ต้องเป็นDeploymentเสมอสำหรับทรัพยากรการนำไปใช้งานmetadata: มีข้อมูล เช่นnameและlabelsที่เป็นตัวเลือกของการนำไปใช้งาน
ฟิลด์เหล่านี้ช่วยให้ Kubernetes ระบุและจัดระเบียบการนำไปใช้งานของคุณ
การระบุชุดจำลองและแม่แบบ
หัวใจของการนำไปใช้งานอยู่ในส่วน spec โดยคุณจะกำหนดสิ่งต่อไปนี้
replicas: จำนวนพ็อดที่เหมือนกันตามที่แอปพลิเคชันต้องการselector: วิธีที่การนำไปใช้งานค้นหาพ็อดที่ตนจัดการ (โดยใช้ป้ายกำกับ)template: โดยพื้นฐานแล้วคือคำจำกัดความพ็อด ซึ่งอธิบายคอนเทนเนอร์ โวลุม และอื่น ๆ ของแต่ละพ็อด
template คือสิ่งที่การนำไปใช้งานใช้สร้างพ็อดใหม่
การนำไปใช้งาน Nginx ของเรา
นี่คือไฟล์กำกับการนำไปใช้งานอย่างง่ายสำหรับเว็บเซิร์ฟเวอร์ Nginx ซึ่งบอกให้ Kubernetes รักษาพ็อด Nginx ให้ทำงานอยู่ 3 พ็อด
ลองทำความเข้าใจแต่ละส่วนดูนะครับ
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80การสร้างการนำไปใช้งานของคุณ
เมื่อมีไฟล์ YAML ของการนำไปใช้งานแล้ว (เช่น nginx-deployment.yaml) คุณสามารถสร้างการนำไปใช้งานในคลัสเตอร์ Kubernetes ได้โดยใช้คำสั่ง kubectl apply
จากนั้น Kubernetes จะตรวจสอบให้แน่ใจว่ามีพ็อดตามจำนวนที่ต้องการถูกสร้างและดูแลให้ทำงานอยู่
kubectl apply -f nginx-deployment.yamlคุณสามารถตรวจสอบสถานะได้ด้วย
kubectl get deploymentsการเพิ่มและลดขนาด
ต้องการให้แอปพลิเคชันมีอินสแตนซ์มากขึ้นหรือน้อยลงใช่ไหม การนำไปใช้งานทำให้การปรับขนาดเป็นเรื่องง่าย! คุณสามารถปรับฟิลด์ replicas ใน YAML แล้วใช้คำสั่งอีกครั้ง หรือใช้คำสั่งโดยตรง
kubectl scale deployment nginx-deployment --replicas=5คำสั่งนี้จะบอกให้การนำไปใช้งานสร้างพ็อด Nginx เพิ่มอีก 2 พ็อดทันที ทำให้มีทั้งหมด 5 พ็อด
การอัปเดตโดยไม่หยุดให้บริการ
ประโยชน์ที่สำคัญที่สุดประการหนึ่งของการนำไปใช้งานคือความสามารถในการทำการอัปเดตแบบทยอยเปลี่ยน เมื่อคุณอัปเดตแม่แบบพ็อด (เช่น เปลี่ยนเวอร์ชันอิมเมจ) Kubernetes จะไม่ปิดพ็อดเก่าทั้งหมดพร้อมกัน
แต่จะค่อย ๆ แทนที่พ็อดเก่าด้วยพ็อดใหม่ เพื่อให้แอปพลิเคชันยังพร้อมให้บริการตลอดกระบวนการอัปเดต
kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1ย้อนกลับได้อย่างง่ายดาย
อัปเดตผิดพลาดใช่ไหม ไม่ต้องกังวลครับ การนำไปใช้งานจะเก็บประวัติการแก้ไขของคุณไว้ ทำให้คุณย้อนกลับไปใช้เวอร์ชันก่อนหน้าที่เสถียรได้อย่างง่ายดาย
กระบวนการนี้เรียกว่า การย้อนกลับ และเป็นกลไกความปลอดภัยที่สำคัญสำหรับการนำไปใช้งาน
kubectl rollout undo deployment/nginx-deploymentคุณยังสามารถตรวจสอบประวัติได้ด้วย kubectl rollout history deployment/nginx-deployment
ทำแบบทดสอบการนำไปใช้งาน
นักพัฒนาอัปเดตการนำไปใช้งาน Nginx จากอิมเมจ nginx:1.14.2 เป็น nginx:1.16.1 ประโยชน์หลักของการใช้การนำไปใช้งานของ Kubernetes สำหรับการอัปเดตนี้คืออะไร
การนำไปใช้งาน: ประเด็นสำคัญ
ทำได้ดีมากครับ คุณได้เรียนรู้เกี่ยวกับการนำไปใช้งานของ Kubernetes ซึ่งเป็นทรัพยากรที่มีประสิทธิภาพสำหรับจัดการแอปพลิเคชันแบบไร้สถานะ
- การนำไปใช้งานจะจัดการ ReplicaSets ซึ่งจะจัดการ Pods ต่ออีกทอดหนึ่ง
- การนำไปใช้งานจะกำหนดสถานะที่ต้องการ รวมถึงจำนวน
replicas - คุณสมบัติสำคัญ ได้แก่ การ ปรับขนาด ได้ง่าย การ อัปเดตแบบทยอยเปลี่ยน โดยไม่ทำให้บริการหยุดทำงาน และการ ย้อนกลับ ไปยังเวอร์ชันก่อนหน้าได้โดยสะดวก
ถัดไป เราจะสำรวจ Services เพื่อเปิดให้เข้าถึงแอปพลิเคชันของคุณได้
คำถามที่พบบ่อย
บทเรียน “Deployment สำหรับแอปแบบไร้สถานะ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Deployment สำหรับแอปแบบไร้สถานะ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Deployment สำหรับแอปแบบไร้สถานะ”
ใช้ Deployment เพื่อจัดการแอปพลิเคชันแบบไร้สถานะ พร้อมรองรับการอัปเดตแบบทยอยและการย้อนกลับ คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “Deployment สำหรับแอปแบบไร้สถานะ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- Deployment สำหรับแอปแบบไร้สถานะ
- Service สำหรับการเข้าถึงเครือข่าย
- ConfigMaps และ Secrets
- Ingress และการกำหนดเส้นทางภายนอก