Özel Kaynak Tanımları (CRD'ler)
Özel Kaynak Tanımlarının Kubernetes API'sini kendi kaynak türlerinizle nasıl genişlettiğini ve Operatörlerin üzerine inşa edildiği temeli öğrenin.
Özel Kaynak Tanımları (CRD'ler), CoddyKit'te ücretsiz bir Kubernetes Basics dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kubernetes Basics öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kubernetes Basics kursu toplamda 4 dersten oluşur.
Kubernetes API'sini Genişletme
Pod'lar ve Deployment'lar gibi yerleşik nesneler sınır değildir. Bir Custom Resource Definition (CRD) ile Kubernetes'e tamamen yeni kaynak türleri öğretebilirsiniz.
Özel Kaynak Nedir
Özel Kaynak (CR), tanımladığınız bir türün örneğidir. Bir CRD kurulduktan sonra CR'leri yerel nesnelerle aynı şekilde kubectl kullanarak oluşturabilirsiniz.
Bir CRD'nin Yapısı
Bir CRD yeni türü, API grubunu, sürümünü ve kapsamını (ad alanı veya küme geneli) bildirir.
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Şemayı Tanımlama
Bir OpenAPI şeması, özel kaynağınızın alanlarını doğrular ve oluşturma sırasında geçersiz belirtimleri reddeder.
versions:
- name: v1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
schedule:
type: string
retention:
type: integerÖzel Kaynak Oluşturma
CRD uygulandıktan sonra yeni türünüzün örneklerini oluşturursunuz.
apiVersion: data.example.com/v1
kind: Backup
metadata:
name: nightly-db
spec:
schedule: '0 2 * * *'
retention: 7kubectl ile CR'lerle Çalışma
Özel kaynaklar birinci sınıf kaynaklardır. Bunları bildiğiniz komutlarla listeler, açıklar ve silersiniz.
kubectl get backups
kubectl describe backup nightly-db
kubectl delete backup nightly-dbKısa Adlar ve Yazdırma Sütunları
CR'lerle çalışmayı kolaylaştırmak için kısa adlar ve özel tablo sütunları tanımlayabilirsiniz.
names:
shortNames: ['bk']
additionalPrinterColumns:
- name: Schedule
type: string
jsonPath: .spec.scheduleCRD'ler Yalnızca Veridir
Bir CRD tek başına yalnızca etcd içinde veri depolar. Onun üzerinde hiçbir işlem yapılmaz. Bir Backup'ın gerçekten gerçekleşmesini sağlamak için bu kaynakları izleyen bir denetleyiciye ihtiyacınız vardır.
Operatörlerle Bağlantı
Bir Operatör, bir denetleyici ile bir veya daha fazla CRD'den oluşur. CRD istenen durumu tanımlar; denetleyici, gerçek durumu bununla eşleştirmek için sürekli olarak uzlaştırır. CRD'ler, Operatörlerin dayandığı temeldir.
CRD'leri Sürümleme
CRD'ler dönüştürme ile birden çok sürümü destekler ve API'nizi geliştirmenize olanak tanır. etcd içindeki depolama sürümü olarak tam olarak bir sürüm işaretlenir.
versions:
- name: v1beta1
served: true
storage: false
- name: v1
served: true
storage: trueCRD'ler Ne Zaman Kullanılmalı
- Bir alan kavramını bildirimsel olarak modellemek istiyorsunuz (Yedekleme, Veritabanı, Sertifika)
- İşlemleri otomatikleştirmek için bir Operatör oluşturuyorsunuz
- Kullanıcıların uygulamanızı tanıdık kubectl iş akışlarıyla yönetmesini istiyorsunuz
Kısa Kontrol
CRD konusundaki anlayışınızı sınayın.
Özet
CRD'lerin Kubernetes API'sini özel türlerle genişlettiğini, bu türlerin bir OpenAPI şemasıyla doğrulandığını ve normal kubectl komutlarıyla yönetildiğini öğrendiniz. Bir CRD tek başına yalnızca veri depolar; onu bir denetleyiciyle birleştirmek, istenen durumu uzlaştıran bir Operatör oluşturur.
Sıkça Sorulan Sorular
“Özel Kaynak Tanımları (CRD'ler)” dersi ücretsiz mi?
Evet — “Özel Kaynak Tanımları (CRD'ler)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kubernetes Basics kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kubernetes Basics kursu toplamda 4 dersten oluşur.
“Özel Kaynak Tanımları (CRD'ler)” dersinde ne öğreneceğim?
Özel Kaynak Tanımlarının Kubernetes API'sini kendi kaynak türlerinizle nasıl genişlettiğini ve Operatörlerin üzerine inşa edildiği temeli öğrenin. Kubernetes Basics ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Kubernetes Basics öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Kubernetes Basics, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Özel Kaynak Tanımları (CRD'ler)” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Kubernetes Basics dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Kubernetes Basics dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Durumlu Uygulamalar için StatefulSets
- Düğüme Özel Görevler için DaemonSets
- Kubernetes Operatörlerini Anlama
- Özel Kaynak Tanımları (CRD'ler)