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

คำจำกัดความทรัพยากรแบบกำหนดเอง (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.schedule

CRD เป็นเพียงข้อมูล

โดยตัวมันเอง 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. StatefulSets สำหรับแอปแบบมีสถานะ
  2. DaemonSets สำหรับงานเฉพาะโหนด
  3. ทำความเข้าใจ Kubernetes Operators
  4. คำจำกัดความทรัพยากรแบบกำหนดเอง (CRDs)
← กลับไปที่ DevOps Bootcamp