Custom resource
- Docker & Kubernetes kursu
- Uzman
- Ders 9/47
- 4 dk
CRD'den özel kaynak oluşturmayı öğrenirsin.
Custom resource
CRD uygulandıktan sonra o türden nesneler (custom resource, CR) oluşturulur. apiVersion grup/sürüm, kind CRD'deki kind'dir:
apiVersion: ornek.com/v1
kind: Yedek
metadata:
name: magaza-gece
namespace: magaza
spec:
veritabani: db
takvim: "0 3 * * *"
saklamaGun: 14
$ kubectl apply -f yedek.yaml
yedek.ornek.com/magaza-gece created
$ kubectl get yd -n magaza
NAME AGE
magaza-gece 5sEk yazdırma sütunları
Varsayılan kubectl get çıktısında yalnızca NAME ve AGE vardır. CRD'ye additionalPrinterColumns eklenerek önemli alanlar tabloda gösterilir:
- name: v1
additionalPrinterColumns:
- name: Veritabani
type: string
jsonPath: .spec.veritabani
- name: Takvim
type: string
jsonPath: .spec.takvim
$ kubectl get yd -n magaza
NAME VERITABANI TAKVIM AGE
magaza-gece db 0 3 * * * 2mUygulama Bir Yedek oluştur
Bir Yedek nesnesinin YAML'ını yaz: apiVersion: ornek.com/v1, kind: Yedek; adı magaza-gece, namespace'i magaza; spec: veritabani: db, takvim: "0 3 * * *", saklamaGun: 14.
Başlangıç kodu
# buraya yazÖrnek çözüm
apiVersion: ornek.com/v1
kind: Yedek
metadata:
name: magaza-gece
namespace: magaza
spec:
veritabani: db
takvim: "0 3 * * *"
saklamaGun: 14Beklenen çıktı
yedek.ornek.com/magaza-gece created
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 CRD silinirse o türdeki tüm nesnelere ne olur?
- default namespace'e taşınır
- ConfigMap'e dönüşür
- Hepsi silinir Doğru cevap
- Kalır
Açıklama: CRD silmek geri alınamaz veri kaybıdır; üretimde dikkatle yapılır.
2 Özel kaynağın API sürümünü yaz.
apiVersion: ornek.com/____
kind: Yedek
apiVersion: ornek.com/v1
kind: Yedek
Açıklama: apiVersion grup/sürüm biçimindedir.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
apiVersion: ornek.com/v1 |
Grup ve sürüm |
kind: Yedek |
CRD'deki kind |
additionalPrinterColumns |
Tablo sütunları |
jsonPath |
Gösterilecek alan |