CRD YAML
- Docker & Kubernetes kursu
- Uzman
- Ders 8/47
- 4 dk
CRD YAML yapısını öğrenirsin.
CRD YAML
CRD'nin adı <çoğul>.<grup> biçiminde olmalıdır. names türün adlarını, scope namespace kapsamını, versions sunulan API sürümlerini ve doğrulama tanımlarını belirtir:
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: yedekler.ornek.com
spec:
group: ornek.com
scope: Namespaced
names:
plural: yedekler
singular: yedek
kind: Yedek
shortNames: [yd]
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
veritabani: {type: string}
takvim: {type: string}
saklamaGun: {type: integer}
storage: true etcd'ye hangi sürümde yazılacağını gösterir; tam olarak bir sürümde olmalıdır.
Kapsam ve adlar
scope: Namespaced türü namespace'lere bağlar (çoğu uygulama kaynağı); Cluster cluster genelinde tek bir ad alanı kullanır (ör. bir platform ayarı). names kubectl'in hangi adları tanıyacağını belirler:
names:
plural: yedekler # kubectl get yedekler, URL yolu
singular: yedek # kubectl get yedek
kind: Yedek # YAML'daki kind
shortNames: [yd] # kubectl get yd
categories: [all] # kubectl get all içinde görünürUygulama CRD yaz
Bir CRD YAML'ı yaz: apiextensions.k8s.io/v1; adı yedekler.ornek.com; group: ornek.com, scope: Namespaced; names: plural: yedekler, singular: yedek, kind: Yedek; versions'ta name: v1, served: true, storage: true. Bu, dosyanın ilk kısmıdır: API sunucusu her sürüm için bir doğrulama tanımı da ister; onu bu grubun 5. dersinde ekleyeceksin.
Başlangıç kodu
# buraya yazÖrnek çözüm
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: yedekler.ornek.com
spec:
group: ornek.com
scope: Namespaced
names:
plural: yedekler
singular: yedek
kind: Yedek
versions:
- name: v1
served: true
storage: trueBeklenen çıktı
# crd.yaml (ilk kısım) hazır apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: yedekler.ornek.com
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 group: ornek.com ve plural: yedekler olan bir CRD'nin metadata.name'i ne olmalıdır?
- Yedek
- ornek.com
- yedek.v1
- yedekler.ornek.com Doğru cevap
Açıklama: Ad uymazsa API sunucusu CRD'yi reddeder.
2 Türü namespace kapsamlı yap.
spec:
group: ornek.com
scope: ____
spec:
group: ornek.com
scope: Namespaced
Açıklama: Diğer seçenek Cluster'dır.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
plural |
URL ve liste adı |
kind |
YAML türü |
shortNames |
Kısaltma |
storage: true |
etcd sürümü |