Docker & Kubernetes
CRD YAML
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ür
Uygulama 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.
Örnek çözümü göster
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: true
Kendini test et
-
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
Cevabı göster
yedekler.ornek.com — Ad uymazsa API sunucusu CRD'yi reddeder.
-
Türü namespace kapsamlı yap.
spec:
group: ornek.com
scope: ____
Cevabı göster
spec:
group: ornek.com
scope: Namespaced
-
Eşleştir.
- plural
- URL ve liste adı
- kind
- YAML türü
- shortNames
- Kısaltma
- storage: true
- etcd sürümü
Sıradaki ders: Custom resource