Docker dan Kubernetes untuk Pembangun · Pelajaran

Takrifan Sumber Tersuai (CRD)

Luaskan fungsi Kubernetes dengan mentakrifkan sumber tersuai anda sendiri untuk mengurus objek khusus domain.

Pelajaran 1 daripada 412 langkah

Takrifan Sumber Tersuai (CRD) ialah pelajaran Docker dan Kubernetes untuk Pembangun percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Docker dan Kubernetes untuk Pembangun, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Docker dan Kubernetes untuk Pembangun merangkumi sejumlah 4 pelajaran.

Memperluas API Kubernetes

Selamat datang! Dalam pelajaran ini, kita akan meneroka Takrif Sumber Tersuai (CRD). CRD membolehkan Anda memperluas Kubernetes dengan mentakrifkan jenis sumber tersuai Anda sendiri.

Anggaplah ini seperti mengajar Kubernetes perkataan dan konsep baharu supaya Kubernetes boleh mengurus objek khusus aplikasi seperti ia mengurus objek terbina dalam seperti Pod atau Deployment.

Mengapa Sumber Tersuai?

Kubernetes menyediakan primitif berkuasa seperti Pod, Deployment dan Service. Tetapi bagaimana jika aplikasi Anda perlu mengurus jenis objek yang unik, seperti kelompok pangkalan data, fungsi tanpa pelayan atau saluran paip pembinaan tersuai?

  • Objek Khusus Domain: Takrifkan sumber yang disesuaikan dengan keperluan unik aplikasi Anda.
  • Pengekstrakan: Permudahkan penggunaan aplikasi kompleks menjadi satu sumber yang mudah diurus.
  • Asli Kubernetes: Manfaatkan API deklaratif Kubernetes, alat (kubectl) dan mekanisme pemerhatian untuk objek tersuai Anda.

Sumber Teras berbanding Sumber Tersuai

Kubernetes disertakan dengan banyak sumber terbina dalam atau 'teras' yang telah Anda kenali:

  • Sumber Teras: Pod, Deployment, Service, ConfigMap. Sumber ini merupakan sebahagian daripada API Kubernetes standard.
  • Sumber Tersuai: Sumber ini ditakrifkan oleh Anda menggunakan CRD. Sumber ini berfungsi seperti sumber teras tetapi mewakili konsep khusus aplikasi Anda sendiri.

Setelah CRD dicipta, Anda boleh mencipta dan mengurus tika sumber tersuai Anda menggunakan kubectl, sama seperti objek Kubernetes yang lain.

Anatomi CRD: Asas

CRD itu sendiri ialah sumber Kubernetes yang ditakrifkan dalam YAML. Berikut ialah maksud beberapa medan utama:

  • apiVersion: apiextensions.k8s.io/v1: Menentukan versi API untuk CRD itu sendiri.
  • kind: CustomResourceDefinition: Mengenal pasti YAML ini sebagai takrif CRD.
  • metadata.name: Nama unik untuk CRD Anda, biasanya dalam format <plural>.<group>.

Seterusnya, mari kita lihat cara mentakrifkan spesifikasi teras.

Anatomi CRD: Kumpulan & Versi

Bahagian spec CRD mentakrifkan sifat sumber tersuai:

  • spec.group: Kumpulan API untuk sumber tersuai anda (contohnya, example.com). Ini membantu menyusun sumber tersuai anda.
  • spec.versions: Senarai versi yang disokong untuk sumber tersuai anda (contohnya, v1alpha1, v1). Setiap versi boleh mempunyai skema tersendiri.
  • spec.scope: Menentukan sama ada sumber tersuai anda ialah Namespaced (seperti Pod) atau Cluster (seperti Node).

Anatomi CRD: Nama & Skema

Medan lain yang penting dalam spec:

  • spec.names: Menentukan cara sumber tersuai anda akan dirujuk:
    • plural: Nama jamak yang digunakan dalam kubectl get (contohnya, webservers).
    • singular: Nama tunggal (contohnya, webserver).
    • kind: Nama CamelCase untuk objek sumber (contohnya, WebServer).
    • shortNames: Alias pendek pilihan (contohnya, ws).
  • spec.versions[].schema.openAPIV3Schema: Ini amat penting! Ia mentakrifkan struktur dan peraturan pengesahan untuk data sumber tersuai anda.

Mentakrifkan CRD WebServer Mudah

Berikut ialah CRD asas untuk sumber WebServer. Perhatikan cara ia mentakrifkan kumpulan, versi, nama dan skema ringkas untuk sifatnya (seperti image dan replicas).

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: webservers.example.com
spec:
  group: example.com
  versions:
    - name: v1
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              properties:
                image:
                  type: string
                replicas:
                  type: integer
              required:
                - image
  scope: Namespaced
  names:
    plural: webservers
    singular: webserver
    kind: WebServer
    shortNames:
      - ws

Menggunakan CRD Anda

Setelah anda mempunyai fail YAML CRD (contohnya, webserver-crd.yaml), anda boleh menggunakannya pada kelompok Kubernetes anda menggunakan kubectl. Ini mendaftarkan jenis sumber baharu anda dengan Kubernetes.

Pelayan API mungkin mengambil masa beberapa saat untuk mengiktiraf jenis baharu itu sepenuhnya.

kubectl apply -f webserver-crd.yaml

Mencipta Sumber Tersuai

Selepas CRD digunakan, anda boleh mencipta tika sumber tersuai WebServer anda. YAML ini mentakrifkan objek WebServer tertentu dengan nilai image dan replicas tersendiri, yang mematuhi skema yang anda tentukan.

Anda boleh mengurus objek ini seperti mana-mana sumber Kubernetes yang lain.

apiVersion: example.com/v1
kind: WebServer
metadata:
  name: my-first-webserver
spec:
  image: nginx:latest
  replicas: 3

Berinteraksi dengan Sumber Tersuai

Sekarang setelah anda mentakrifkan CRD dan mencipta satu tika, anda boleh menggunakan perintah kubectl standard untuk berinteraksi dengan sumber tersuai anda:

  • kubectl get webservers: Menyenaraikan semua objek WebServer.
  • kubectl get ws: Menggunakan nama pendek.
  • kubectl describe webserver my-first-webserver: Mendapatkan maklumat terperinci tentang tika WebServer tertentu.

Integrasi lancar ini ialah salah satu manfaat utama CRD!

Uji Pengetahuan CRD Anda

Antara berikut, yang manakah merupakan manfaat menggunakan Custom Resource Definitions (CRD) dalam Kubernetes?

Ringkasan: Melanjutkan Kubernetes

Syabas! Anda telah mempelajari Custom Resource Definitions!

  • CRD membolehkan anda melanjutkan API Kubernetes dengan jenis sumber tersuai anda sendiri.
  • CRD membolehkan Kubernetes mengurus objek khusus domain menggunakan API dan alat aslinya.
  • CRD mentakrifkan skema dan sifat sumber tersuai anda.
  • Setelah ditakrifkan, anda boleh mencipta dan berinteraksi dengan tika sumber tersuai anda menggunakan kubectl.

Seterusnya, kita akan melihat cara Operator memanfaatkan CRD untuk mengautomasikan pengurusan aplikasi yang kompleks!

Percuma untuk bermula

Pelajari Docker dan Kubernetes untuk Pembangun dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Takrifan Sumber Tersuai (CRD)” percuma?

Ya — teks penuh “Takrifan Sumber Tersuai (CRD)” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Docker dan Kubernetes untuk Pembangun, tingkat taraf kepada CoddyKit PRO. Kursus Docker dan Kubernetes untuk Pembangun merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Takrifan Sumber Tersuai (CRD)”?

Luaskan fungsi Kubernetes dengan mentakrifkan sumber tersuai anda sendiri untuk mengurus objek khusus domain. Anda berlatih Docker dan Kubernetes untuk Pembangun menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Docker dan Kubernetes untuk Pembangun?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Docker dan Kubernetes untuk Pembangun di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Takrifan Sumber Tersuai (CRD)” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Docker dan Kubernetes untuk Pembangun ini?

Ya. Setiap pelajaran Docker dan Kubernetes untuk Pembangun menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Takrifan Sumber Tersuai (CRD)
  2. Corak Operator dalam Kubernetes
  3. Tanpa Pelayan dengan Kubernetes (Knative)
  4. Melanjutkan Pelayan API dengan Webhook Kemasukan
← Kembali ke Docker dan Kubernetes untuk Pembangun