คำจำกัดความทรัพยากรแบบกำหนดเอง (CRDs)
เรียนรู้ว่าคำจำกัดความทรัพยากรแบบกำหนดเองช่วยขยาย API ของ Kubernetes ด้วยชนิดทรัพยากรของคุณเองได้อย่างไร ซึ่งเป็นรากฐานที่โอเปอเรเตอร์นำไปต่อยอด
คำจำกัดความทรัพยากรแบบกำหนดเอง (CRDs) เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
การขยายส่วนติดต่อโปรแกรมประยุกต์ของ Kubernetes
ออบเจ็กต์ในตัวอย่างพ็อดและการติดตั้งใช้งานไม่ใช่ขีดจำกัด ด้วยคำจำกัดความทรัพยากรแบบกำหนดเอง (CRD) คุณสามารถสอน Kubernetes ให้รู้จักทรัพยากรชนิดใหม่ทั้งหมดได้
ทรัพยากรแบบกำหนดเองคืออะไร
ทรัพยากรแบบกำหนดเอง (CR) คืออินสแตนซ์ของชนิดที่คุณกำหนด เมื่อมีการติดตั้ง CRD แล้ว คุณสามารถสร้าง CR ด้วย kubectl ได้เช่นเดียวกับออบเจ็กต์ดั้งเดิม
โครงสร้างของ CRD
CRD ประกาศชนิดใหม่ กลุ่มส่วนติดต่อโปรแกรมประยุกต์ เวอร์ชัน และขอบเขตของชนิดนั้น (อยู่ภายในเนมสเปซหรือทั้งคลัสเตอร์)
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: backups.data.example.com
spec:
group: data.example.com
scope: Namespaced
names:
plural: backups
singular: backup
kind: Backupการกำหนดสคีมา
สคีมา OpenAPI จะตรวจสอบฟิลด์ของทรัพยากรแบบกำหนดเอง และปฏิเสธข้อกำหนดที่ไม่ถูกต้องตั้งแต่เวลาสร้าง
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
schedule:
type: string
retention:
type: integerการสร้างทรัพยากรแบบกำหนดเอง
หลังจากใช้ CRD แล้ว คุณสามารถสร้างอินสแตนซ์ของชนิดใหม่ของคุณได้
apiVersion: data.example.com/v1
kind: Backup
metadata:
name: nightly-db
spec:
schedule: '0 2 * * *'
retention: 7การทำงานกับ CR ผ่านคูเบ็กเทิล
ทรัพยากรแบบกำหนดเองเป็นทรัพยากรชั้นหนึ่ง คุณสามารถแสดงรายการ อธิบาย และลบทรัพยากรเหล่านี้ด้วยคำสั่งที่คุ้นเคย
kubectl get backups
kubectl describe backup nightly-db
kubectl delete backup nightly-dbชื่อย่อและคอลัมน์แสดงผล
คุณสามารถกำหนดชื่อย่อและคอลัมน์ตารางแบบกำหนดเอง เพื่อให้ทำงานกับ CR ได้สะดวกยิ่งขึ้น
names:
shortNames: ['bk']
additionalPrinterColumns:
- name: Schedule
type: string
jsonPath: .spec.scheduleCRD เป็นเพียงข้อมูล
โดยตัวมันเอง CRD จะจัดเก็บข้อมูลไว้ในเอ็ตซีดีเท่านั้น และไม่มีสิ่งใดดำเนินการกับข้อมูลนั้น หากต้องการให้ข้อมูลสำรองเกิดขึ้นจริง คุณต้องมีตัวควบคุมที่เฝ้าดูทรัพยากรเหล่านี้
ความเชื่อมโยงกับโอเปอเรเตอร์
โอเปอเรเตอร์คือตัวควบคุมหนึ่งตัวร่วมกับ CRD อย่างน้อยหนึ่งรายการ CRD กำหนดสถานะที่ต้องการ ส่วนตัวควบคุมจะปรับสถานะจริงให้ตรงกันอย่างต่อเนื่อง CRD คือรากฐานที่โอเปอเรเตอร์ตั้งอยู่
การกำหนดเวอร์ชันของ CRD
CRD รองรับหลายเวอร์ชันพร้อมการแปลงข้อมูล ทำให้คุณพัฒนาส่วนติดต่อโปรแกรมประยุกต์ต่อไปได้ โดยจะมีเพียงหนึ่งเวอร์ชันเท่านั้นที่ถูกกำหนดให้เป็นเวอร์ชันจัดเก็บในเอ็ตซีดี
versions:
- name: v1beta1
served: true
storage: false
- name: v1
served: true
storage: trueเมื่อใดควรใช้ CRD
- คุณต้องการสร้างแบบจำลองแนวคิดของโดเมนในรูปแบบประกาศ (ข้อมูลสำรอง ฐานข้อมูล ใบรับรอง)
- คุณกำลังสร้างโอเปอเรเตอร์เพื่อทำให้งานปฏิบัติการเป็นอัตโนมัติ
- คุณต้องการให้ผู้ใช้จัดการแอปของคุณด้วยกระบวนการทำงานของคูเบ็กเทิลที่คุ้นเคย
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความเข้าใจเรื่อง CRD
สรุปทบทวน
คุณได้เรียนรู้ว่า CRD ขยายส่วนติดต่อโปรแกรมประยุกต์ของ Kubernetes ด้วยชนิดแบบกำหนดเอง ซึ่งตรวจสอบด้วยสคีมา OpenAPI และจัดการด้วยคำสั่ง kubectl ตามปกติ CRD เพียงอย่างเดียวจะจัดเก็บข้อมูลเท่านั้น แต่เมื่อนำมาจับคู่กับตัวควบคุม จะเกิดเป็นโอเปอเรเตอร์ที่ปรับสถานะจริงให้ตรงกับสถานะที่ต้องการ
คำถามที่พบบ่อย
บทเรียน “คำจำกัดความทรัพยากรแบบกำหนดเอง (CRDs)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “คำจำกัดความทรัพยากรแบบกำหนดเอง (CRDs)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “คำจำกัดความทรัพยากรแบบกำหนดเอง (CRDs)”
เรียนรู้ว่าคำจำกัดความทรัพยากรแบบกำหนดเองช่วยขยาย API ของ Kubernetes ด้วยชนิดทรัพยากรของคุณเองได้อย่างไร ซึ่งเป็นรากฐานที่โอเปอเรเตอร์นำไปต่อยอด คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “คำจำกัดความทรัพยากรแบบกำหนดเอง (CRDs)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- StatefulSets สำหรับแอปแบบมีสถานะ
- DaemonSets สำหรับงานเฉพาะโหนด
- ทำความเข้าใจ Kubernetes Operators
- คำจำกัดความทรัพยากรแบบกำหนดเอง (CRDs)