Docker ja Kubernetes kehittäjille · Oppitunti

Mukautetut resurssimääritelmät (CRD:t)

Laajenna Kubernetesin toiminnallisuutta määrittämällä omia mukautettuja resursseja toimialakohtaisten objektien hallintaan.

Oppitunti 1/412 vaihetta

Mukautetut resurssimääritelmät (CRD:t) on ilmainen Docker ja Kubernetes kehittäjille-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Docker ja Kubernetes kehittäjille-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Docker ja Kubernetes kehittäjille-kurssilla on yhteensä 4 oppituntia.

Kubernetes APIn laajentaminen

Tervetuloa! Tässä oppitunnissa tutustumme Custom Resource Definitioneihin (CRD). CRD:t mahdollistavat Kubernetesin laajentamisen määrittelemällä omia mukautettuja resurssityyppejä.

Ajattele asiaa niin, että opetat Kubernetesille uusia sanoja ja käsitteitä, jotta se voi hallita sovelluskohtaisia objekteja samalla tavalla kuin sisäänrakennettuja objekteja, kuten Podeja tai Deploymenteja.

Miksi mukautettuja resursseja?

Kubernetes tarjoaa tehokkaita perusrakenteita, kuten Podit, Deploymentit ja Servicet. Entä jos sovelluksesi tarvitsee hallita ainutlaatuista objektityyppiä, kuten tietokantaklusteria, serverless-funktiota tai mukautettua koontiputkea?

  • Toimialakohtaiset objektit: Määrittele resurssit, jotka on räätälöity sovelluksesi ainutlaatuisiin tarpeisiin.
  • Abstrahointi: Yksinkertaista monimutkaiset sovellusten käyttöönotot yhdeksi hallittavaksi resurssiksi.
  • Kubernetes-natiivisuus: Hyödynnä Kubernetesin deklaratiivista APIa, työkaluja (kubectl) ja watch-mekanismeja mukautetuissa objekteissasi.

Ydinresurssit ja mukautetut resurssit

Kubernetes sisältää monia sisäänrakennettuja eli jo tuntemiasi ”core”-resursseja:

  • Ydinresurssit: Pod, Deployment, Service, ConfigMap. Ne kuuluvat Kubernetesin vakiomuotoiseen APIin.
  • Mukautetut resurssit: Nämä ovat resursseja, jotka määrittelet CRD:iden avulla. Ne toimivat aivan kuten ydinresurssit, mutta edustavat omia sovelluskohtaisia käsitteitäsi.

Kun CRD on luotu, voit luoda ja hallita mukautetun resurssisi instansseja kubectl-komennolla aivan kuten mitä tahansa muuta Kubernetes-objektia.

CRD:n rakenne: perusteet

CRD on itsessään YAML-muodossa määritelty Kubernetes-resurssi. Seuraavassa on joidenkin keskeisten kenttien merkitykset:

  • apiVersion: apiextensions.k8s.io/v1: Määrittää itse CRD:n API-version.
  • kind: CustomResourceDefinition: Tunnistaa tämän YAML-tiedoston CRD-määritelmäksi.
  • metadata.name: CRD:n yksilöivä nimi, yleensä muodossa <plural>.<group>.

Seuraavaksi tarkastelemme ydinspeksifikaation määrittelyä.

CRD:n rakenne: ryhmä ja versiot

CRD:n spec-osio määrittää mukautetun resurssin ominaisuudet:

  • spec.group: Mukautetun resurssin API-ryhmä (esimerkiksi example.com). Tämä auttaa järjestämään mukautetut resurssit.
  • spec.versions: Luettelo mukautetun resurssin tuetuista versioista (esimerkiksi v1alpha1, v1). Kullakin versiolla voi olla oma skeemansa.
  • spec.scope: Määrittää, onko mukautettu resurssi Namespaced (kuten Podit) vai Cluster (kuten Nodet).

CRD:n rakenne: nimet ja skeema

Muita tärkeitä spec-kenttiä:

  • spec.names: Määrittää, millä nimillä mukautettuun resurssiin viitataan:
    • plural: Monikkomuoto, jota käytetään komennossa kubectl get (esimerkiksi webservers).
    • singular: Yksikkömuoto (esimerkiksi webserver).
    • kind: Resurssiobjektin CamelCase-nimi (esimerkiksi WebServer).
    • shortNames: Valinnaiset lyhyet aliakset (esimerkiksi ws).
  • spec.versions[].schema.openAPIV3Schema: Tämä on ratkaisevan tärkeä! Se määrittää mukautetun resurssin tietojen rakenteen ja validointisäännöt.

Yksinkertaisen WebServer-CRD:n määrittäminen

Tässä on perusmuotoinen CRD resurssille WebServer. Huomaa, miten siinä määritetään ryhmä, versiot, nimet ja yksinkertainen skeema sen ominaisuuksille, kuten image ja 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

CRD:n käyttöönotto

Kun CRD:n YAML-tiedosto (esimerkiksi webserver-crd.yaml) on valmis, voitte ottaa sen käyttöön Kubernetes-klusterissanne komennolla kubectl. Näin uusi resurssityyppi rekisteröidään Kubernetesille.

Voi kestää muutaman sekunnin, ennen kuin API-palvelin tunnistaa uuden tyypin kokonaan.

kubectl apply -f webserver-crd.yaml

Mukautetun resurssin luominen

Kun CRD on otettu käyttöön, voitte luoda mukautetun WebServer-resurssin ilmentymiä. Tämä YAML määrittää tietyn WebServer-objektin, jolla on omat image- ja replicas-arvonsa ja joka noudattaa määrittämäänne skeemaa.

Voitte hallita tätä objektia aivan kuten mitä tahansa muuta Kubernetes-resurssia.

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

Mukautettujen resurssien käsittely

Kun CRD on määritetty ja ilmentymä luotu, voitte käsitellä mukautettuja resurssejanne tavallisilla kubectl-komennoilla:

  • kubectl get webservers: Luettelee kaikki WebServer-objektit.
  • kubectl get ws: Käyttää lyhyttä nimeä.
  • kubectl describe webserver my-first-webserver: Näyttää tietyn WebServer-ilmentymän yksityiskohtaiset tiedot.

Tämä saumaton integraatio on yksi CRD:iden keskeisistä hyödyistä!

Testaa CRD-tietosi

Mitä seuraavista hyödyistä Custom Resource Definitions (CRD:t) tarjoavat Kubernetesissa?

Kertaus: Kubernetesin laajentaminen

Hienoa työtä! Olette oppineet Custom Resource Definitions -määrityksistä!

  • CRD:t mahdollistavat Kubernetesin API:n laajentamisen omilla mukautetuilla resurssityypeillä.
  • Niiden avulla Kubernetes voi hallita toimialakohtaisia objekteja natiivin API:nsa ja työkalujensa avulla.
  • CRD määrittää mukautetun resurssin skeeman ja ominaisuudet.
  • Kun määritys on tehty, voitte luoda ja käsitellä mukautetun resurssin ilmentymiä komennolla kubectl.

Seuraavaksi näemme, miten Operatorit hyödyntävät CRD:itä monimutkaisten sovellusten hallinnan automatisointiin!

Aloita maksutta

Opi Docker ja Kubernetes kehittäjille tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Mukautetut resurssimääritelmät (CRD:t)” ilmainen?

Kyllä – oppitunnin ”Mukautetut resurssimääritelmät (CRD:t)” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Docker ja Kubernetes kehittäjille-kurssin, päivitä CoddyKit PROhon. Docker ja Kubernetes kehittäjille-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Mukautetut resurssimääritelmät (CRD:t)”?

Laajenna Kubernetesin toiminnallisuutta määrittämällä omia mukautettuja resursseja toimialakohtaisten objektien hallintaan. Harjoittelet Docker ja Kubernetes kehittäjille-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Docker ja Kubernetes kehittäjille-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Docker ja Kubernetes kehittäjille-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Mukautetut resurssimääritelmät (CRD:t)”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Docker ja Kubernetes kehittäjille-oppitunnilla?

Kyllä. Jokainen Docker ja Kubernetes kehittäjille-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Mukautetut resurssimääritelmät (CRD:t)
  2. Operator-malli Kubernetesissa
  3. Serverless Kubernetesilla (Knative)
  4. API-palvelimen laajentaminen admission-webhookeilla
← Takaisin: Docker ja Kubernetes kehittäjille