0Pricing
DevOps Bootcamp · บทเรียน

Deployment สำหรับแอปแบบไร้สถานะ

ใช้ Deployment เพื่อจัดการแอปพลิเคชันแบบไร้สถานะ พร้อมรองรับการอัปเดตแบบทยอยและการย้อนกลับ

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

ทำความรู้จักการนำไปใช้งานของ Kubernetes

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

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

Deployment สำหรับแอปแบบไร้สถานะ — ภาพประกอบ 1

ก้าวข้ามพ็อดและ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. Deployment สำหรับแอปแบบไร้สถานะ
  2. Service สำหรับการเข้าถึงเครือข่าย
  3. ConfigMaps และ Secrets
  4. Ingress และการกำหนดเส้นทางภายนอก
← กลับไปที่ DevOps Bootcamp