StorageClasses และการจัดสรรแบบพลวัต
เรียนรู้ว่า StorageClasses ช่วยให้ Kubernetes จัดสรร Persistent Volumes โดยอัตโนมัติตามต้องการได้อย่างไร โดยไม่ต้องให้ผู้ดูแลระบบดำเนินการด้วยตนเอง
StorageClasses และการจัดสรรแบบพลวัต เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
ปัญหาการจัดเก็บข้อมูลด้วยตนเอง
ในการจัดสรรแบบคงที่ ผู้ดูแลระบบต้องสร้าง PersistentVolume แต่ละรายการด้วยตนเองก่อนที่ PersistentVolumeClaim จะผูกเข้าด้วยกันได้ วิธีนี้ไม่สามารถขยายรองรับงานจำนวนมากได้
การจัดสรรแบบอัตโนมัติจะสร้างโวลุ่มโดยอัตโนมัติเมื่อมีการสร้างคำขอ
StorageClass คืออะไร
StorageClass อธิบายประเภทพื้นที่จัดเก็บที่คลัสเตอร์สามารถให้บริการได้ เช่น ควรใช้ตัวจัดสรรใด ต้องใช้พารามิเตอร์อะไร และโวลุ่มจะมีพฤติกรรมอย่างไร
ลองนึกถึงสิ่งนี้ในฐานะแม่แบบสำหรับสร้าง PersistentVolumes ตามต้องการ
คำจำกัดความของ StorageClass
ฟิลด์ provisioner ระบุชื่อปลั๊กอินที่สร้างโวลุ่ม ซึ่งมักเป็นไดรเวอร์ดิสก์คลาวด์
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fast-ssd
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp3
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumerการขอพื้นที่จัดเก็บแบบอัตโนมัติ
PVC เพียงอ้างอิง StorageClass ด้วยชื่อ จากนั้น Kubernetes จะจัดสรร PV ที่ตรงกันโดยอัตโนมัติ
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes: ['ReadWriteOnce']
storageClassName: fast-ssd
resources:
requests:
storage: 10GiStorageClass เริ่มต้น
หาก PVC ไม่ระบุ storageClassName Kubernetes จะใช้ StorageClass เริ่มต้นของคลัสเตอร์ (ซึ่งทำเครื่องหมายด้วยคำอธิบายกำกับ) ทำให้คำขอพร้อมใช้งานได้ทันที
kubectl get storageclass
# NAME PROVISIONER DEFAULT
# standard (default) ...นโยบายการเรียกคืน
reclaimPolicy จะกำหนดว่าจะเกิดอะไรขึ้นเมื่อ PVC ถูกลบ:
- ลบ: โวลุ่มเบื้องหลังก็จะถูกลบด้วย
- เก็บรักษา: โวลุ่มจะถูกเก็บไว้เพื่อกู้คืนด้วยตนเอง
โหมดการผูกโวลุ่ม
WaitForFirstConsumer จะเลื่อนการสร้างโวลุ่มออกไปจนกว่าจะจัดกำหนดการพ็อดที่ใช้ PVC วิธีนี้ช่วยให้ดิสก์อยู่ในโซนเดียวกับพ็อด
Immediate จะจัดสรรให้ทันที ซึ่งอาจทำให้โซนไม่ตรงกัน
เฝ้าดูการจัดสรรที่เกิดขึ้น
หลังจากใช้การกำหนดค่า PVC แล้ว ให้เฝ้าดูการเปลี่ยนสถานะจาก Pending เป็น Bound ขณะที่โวลุ่มกำลังถูกสร้าง
kubectl apply -f pvc.yaml
kubectl get pvc data -w
# data Pending
# data Bound pvc-8a3f... 10Giระดับพื้นที่จัดเก็บหลายระดับ
คลัสเตอร์มักกำหนด StorageClasses หลายรายการสำหรับความต้องการที่แตกต่างกัน เพื่อให้ทีมเลือกความสมดุลที่เหมาะสมกับแต่ละภาระงานได้
# fast-ssd -> low latency, higher cost
# standard -> balanced default
# cold-hdd -> cheap, archivalการขยายโวลุ่ม
หาก StorageClass มีค่า allowVolumeExpansion: true คุณสามารถขยาย PVC ได้โดยแก้ไขขนาดที่ร้องขอ จากนั้นตัวจัดสรรจะปรับขนาดดิสก์เบื้องหลัง
spec:
resources:
requests:
storage: 20Gi # increased from 10Giเมื่อใดควรใช้แบบคงที่หรือแบบอัตโนมัติ
- แบบอัตโนมัติ: ตัวเลือกเริ่มต้น ให้บริการตนเองและรองรับการขยายได้ดี
- แบบคงที่: ใช้เมื่อต้องผูกเข้ากับดิสก์ที่มีอยู่แล้วโดยเฉพาะ หรือพื้นที่ NFS ที่ส่งออกไว้
ตรวจสอบอย่างรวดเร็ว
ทดสอบความเข้าใจของคุณเกี่ยวกับการจัดสรรแบบอัตโนมัติ
สรุปทบทวน
คุณได้เรียนรู้ว่า StorageClass เป็นแม่แบบกำหนดวิธีสร้างพื้นที่จัดเก็บ ทำให้สามารถใช้การจัดสรรแบบอัตโนมัติได้ ฟิลด์สำคัญ ได้แก่ ตัวจัดสรร reclaimPolicy และ volumeBindingMode โดย PVC จะอ้างอิงคลาสด้วยชื่อ และคลาสเริ่มต้นจะจัดการคำขอที่ไม่ได้ระบุคลาส
คำถามที่พบบ่อย
บทเรียน “StorageClasses และการจัดสรรแบบพลวัต” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “StorageClasses และการจัดสรรแบบพลวัต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “StorageClasses และการจัดสรรแบบพลวัต”
เรียนรู้ว่า StorageClasses ช่วยให้ Kubernetes จัดสรร Persistent Volumes โดยอัตโนมัติตามต้องการได้อย่างไร โดยไม่ต้องให้ผู้ดูแลระบบดำเนินการด้วยตนเอง คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “StorageClasses และการจัดสรรแบบพลวัต” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ConfigMaps สำหรับการกำหนดค่า
- Secrets สำหรับข้อมูลละเอียดอ่อน
- โวลุมถาวรและคำขอใช้โวลุม
- StorageClasses และการจัดสรรแบบพลวัต