Docker & Kubernetes
Örnek operator
Basit bir operator senaryosunu öğrenirsin.
Örnek operator
Yedek operator'ünün tam akışı: kullanıcı bir Yedek yazar; operator ondan bir CronJob üretir (sahip referansıyla); CronJob'un son başarılı çalışmasını status'a yazar; Yedek silinince CronJob da çöp toplayıcıyla gider. Operator'ün kendisi de bir Deployment olarak, kendi ServiceAccount'u ve RBAC izinleriyle çalışır:
make docker-build docker-push IMG=ghcr.io/ali/yedek-operator:0.1.0
make deploy IMG=ghcr.io/ali/yedek-operator:0.1.0
kubectl get deploy -n yedek-operator-system
kubectl logs -n yedek-operator-system deploy/yedek-operator-controller-manager -f
RBAC işaretleri
Denetleyici dosyasındaki işaretler operator'ün ClusterRole'ünü üretir; en az yetki ilkesi burada da geçerlidir:
// +kubebuilder:rbac:groups=yedek.ornek.com,resources=yedekler,verbs=get;list;watch;update;patch
// +kubebuilder:rbac:groups=yedek.ornek.com,resources=yedekler/status,verbs=get;update;patch
// +kubebuilder:rbac:groups=batch,resources=cronjobs,verbs=get;list;watch;create;update;patch;delete
make manifests bunları config/rbac/role.yaml'a yazar.
Uygulama Operator'ü yayınla
Dört komut yaz: IMG=ghcr.io/ali/yedek-operator:0.1.0 ile make docker-build docker-push; aynı IMG ile make deploy; yedek-operator-system namespace'indeki deployment'ları listele; o namespace'teki deploy/yedek-operator-controller-manager log'larını canlı izle.
Örnek çözümü göster
make docker-build docker-push IMG=ghcr.io/ali/yedek-operator:0.1.0
make deploy IMG=ghcr.io/ali/yedek-operator:0.1.0
kubectl get deploy -n yedek-operator-system
kubectl logs -n yedek-operator-system deploy/yedek-operator-controller-manager -f
Kendini test et
-
Operator'ün CronJob oluşturabilmesi için ne gerekir?
- ServiceAccount'una batch grubunda cronjobs için create/update izni veren RBAC
- cluster-admin her zaman
- Hiçbir izin
- Node erişimi
Cevabı göster
ServiceAccount'una batch grubunda cronjobs için create/update izni veren RBAC — Kubebuilder'da // +kubebuilder:rbac işaretleri bu izinleri üretir.
-
Operator'ü cluster'a dağıt.
make ____ IMG=ghcr.io/ali/yedek-operator:0.1.0
Cevabı göster
make deploy IMG=ghcr.io/ali/yedek-operator:0.1.0
-
Eşleştir.
- make docker-build
- Operator image'ı
- make deploy
- Cluster'a kur
- +kubebuilder:rbac
- İzin işaretleri
- controller-manager
- Operator pod'u
Sıradaki ders: Özet - Operator