Grunnleggende Kubernetes · leksjon

Definisjoner av egendefinerte ressurser (CRD-er)

Lær hvordan Custom Resource Definitions utvider Kubernetes-API-et med egne ressurstyper – grunnlaget som Operators bygger på.

Leksjon 4 av 413 trinn

Definisjoner av egendefinerte ressurser (CRD-er) er en gratis leksjon i Grunnleggende Kubernetes på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Grunnleggende Kubernetes, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Grunnleggende Kubernetes inneholder totalt 4 leksjoner.

Utvide Kubernetes-API-et

Innebygde objekter som Pods og Deployments er ikke grensen. Med en Custom Resource Definition (CRD) kan du lære Kubernetes helt nye ressurstyper.

Hva er en Custom Resource

En Custom Resource (CR) er en instans av en type du har definert. Når en CRD er installert, oppretter du CR-er med kubectl, akkurat som med innebygde objekter.

En CRD er bygd opp av

En CRD deklarerer den nye typen, API-gruppen, versjonen og omfanget (namespace-avgrenset eller cluster-omfattende).

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

Definere skjemaet

Et OpenAPI-skjema validerer feltene i den tilpassede ressursen og avviser ugyldige spesifikasjoner når ressursen opprettes.

versions:
- name: v1
  served: true
  storage: true
  schema:
    openAPIV3Schema:
      type: object
      properties:
        spec:
          type: object
          properties:
            schedule:
              type: string
            retention:
              type: integer

Opprette en Custom Resource

Når CRD-en er tatt i bruk, oppretter du instanser av den nye typen.

apiVersion: data.example.com/v1
kind: Backup
metadata:
  name: nightly-db
spec:
  schedule: '0 2 * * *'
  retention: 7

Arbeide med CR-er via kubectl

Custom resources er førsteklasses ressurser. Du viser en liste over, beskriver og sletter dem med kjente kommandoer.

kubectl get backups
kubectl describe backup nightly-db
kubectl delete backup nightly-db

Kortnavn og visningskolonner

Du kan definere kortnavn og egendefinerte tabellkolonner, slik at CR-er blir enklere å arbeide med.

names:
  shortNames: ['bk']
additionalPrinterColumns:
- name: Schedule
  type: string
  jsonPath: .spec.schedule

CRD-er er bare data

En CRD lagrer bare data i etcd. Ingenting reagerer på den. For at en Backup faktisk skal utføres, trenger du en controller som overvåker disse ressursene.

Koblingen til Operators

En Operator er en controller sammen med én eller flere CRD-er. CRD-en definerer ønsket tilstand, og controlleren avstemmer kontinuerlig den faktiske tilstanden mot den. CRD-er er fundamentet Operators bygger på.

Versjonere CRD-er

CRD-er støtter flere versjoner med konvertering, slik at du kan videreutvikle API-et. Nøyaktig én versjon er merket som lagringsversjonen i etcd.

versions:
- name: v1beta1
  served: true
  storage: false
- name: v1
  served: true
  storage: true

Når bør du bruke CRD-er

  • Du vil modellere et domenekonsept deklarativt (Backup, Database, Certificate)
  • Du bygger en Operator for å automatisere driftsoppgaver
  • Du vil at brukere skal administrere appen med kjente kubectl-arbeidsflyter

Kort kontroll

Test forståelsen din av CRD-er.

Oppsummering

Du har lært at CRD-er utvider Kubernetes-API-et med tilpassede typer, validert av et OpenAPI-skjema og administrert med vanlige kubectl-kommandoer. En CRD lagrer bare data alene; sammen med en controller blir den til en Operator som avstemmer ønsket tilstand.

Gratis å komme i gang

Lær deg Grunnleggende Kubernetes med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Definisjoner av egendefinerte ressurser (CRD-er)» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Grunnleggende Kubernetes, inkludert «Definisjoner av egendefinerte ressurser (CRD-er)», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Grunnleggende Kubernetes inneholder totalt 4 leksjoner.

Hva lærer jeg i «Definisjoner av egendefinerte ressurser (CRD-er)»?

Lær hvordan Custom Resource Definitions utvider Kubernetes-API-et med egne ressurstyper – grunnlaget som Operators bygger på. Du øver på Grunnleggende Kubernetes med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Grunnleggende Kubernetes?

Ingen tidligere erfaring er nødvendig. Grunnleggende Kubernetes på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Definisjoner av egendefinerte ressurser (CRD-er)»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Grunnleggende Kubernetes-leksjonen?

Ja. Alle Grunnleggende Kubernetes-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. StatefulSets for tilstandsfulle apper
  2. DaemonSets for node-spesifikke oppgaver
  3. Forstå Kubernetes Operators
  4. Definisjoner av egendefinerte ressurser (CRD-er)
← Tilbake til Grunnleggende Kubernetes