Konteyner mimariniz büyüdükçe yüzlerce konteyneri manuel yönetmek imkansız hale gelir. Kubernetes (K8s), konteynerleştirilmiş uygulamaların dağıtımını, ölçeklenmesini ve yönetimini otomatikleştiren açık kaynaklı bir orkestrasyon sistemidir.
Kubernetes Control Plane Bileşenleri
Kümeyi (cluster) yöneten ana beyin Control Plane'dir. Kümeyle iletişimi sağlayan API Server, tüm verileri saklayan etcd, pod'ları sunuculara dağıtan Scheduler ve sistemin durumunu denetleyen Controller Manager bu yapının temel taşlarıdır.
YAML Tanımları ile Deklaratif Dağıtım
Kubernetes'te kaynaklarımızı (Pod, Deployment, Service) deklaratif olarak YAML dosyalarında tanımlarız. Kubernetes bu tanıma bakarak sistemi her zaman istenen durumda (desired state) tutmaya çalışır.
# (c) CodeMareFi - codemarefi.com.tr
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: web-server
template:
metadata:
labels:
app: web-server
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
Self-Healing (Kendi Kendini İyileştirme)
K8s'in en güçlü özelliklerinden biri, çöken bir pod veya konteyneri hemen algılayıp yenisini başlatmasıdır. Bu sayede uygulamanız kullanıcıya hiçbir kesinti hissettirmeden çalışmaya devam eder.
