PreSales Academy

Hybrid Cloud, Enterprise Linux ve Containers

Container Image, Runtime ve Kubernetes Temelleri

Yaklaşık 62 dakika Kaynak izli editoryal içerik

Image ve software supply chain sınırını kur

Ön koşul: Linux process, filesystem, network, identity, cgroups, SELinux ve workload placement kavramlarını açıklayabilmelisin. Bu dersin sonunda image, registry, runtime, container, Pod, controller, Service, configuration, secret ve persistent storage sınırlarını ayıracak; build’den production’a provenance, security, resource ve lifecycle kanıtı kuracak; Arven uygulaması için container uygunluğu, Kubernetes gereksinimi, POC, risk/TBD ve yeniden açma koşulu üreteceksin. Yaklaşık 32 dakika anlatı ve örnek, 18 dakika uygulama, 12 dakika bilgi kontrolleridir.

Container image çalışan process değildir; uygulama binary’si, runtime dependency, filesystem katmanları, config varsayılanları ve metadata içeren değişmez bir dağıtım artefact’ıdır. OCI Image Specification manifest, config, layer ve digest ilişkisini; Distribution Specification registry ile taşıma davranışını; Runtime Specification unpack edilmiş bundle’ın çalıştırılma sınırını tanımlar. Uyumlu format taşınabilirliği artırır fakat kernel, architecture, driver, network, storage ve managed platform davranışının aynı olduğunu kanıtlamaz. Tag değişebilir; digest içerik adresli kimlik sağlar. Production manifest’i image digest’e sabitlenir, build kaynağı ve commit ile ilişkilendirilir. Base image kaynağı, package listesi, SBOM, licence, vulnerability sonucu, signature/attestation, build runner ve promotion kaydı supply chain kanıtıdır. Aynı source’tan yeniden build her zaman bit düzeyinde aynı sonucu vermeyebilir; kilitli dependency, hermetic build ve reproducibility beklentisi açık yazılır. Registry availability, immutability, replication, retention, garbage collection, access, audit ve recovery ayrıca tasarlanır. Image içine secret, private key, ortam özel endpoint veya değişken veri gömülmez. Minimal image attack surface’i azaltabilir; debug araçlarının yokluğu için ephemeral debug ve runbook gerekir. CVE varlığı otomatik iş etkisi değildir; reachability, exploitability, mevcut kontrol ve SLA ile önceliklendirilir. Ancak “çalışıyor” gerekçesiyle patch borcu belirsiz bırakılamaz. Build, scan, sign, promote, deploy ve revoke kapıları ayrı yetki ve kayıt taşır.

Image supply chain kabul kartı
AşamaKanıtRed nedeni
BuildSource, commit, locked dependencyBelirsiz artefact
InspectSBOM, licence, vulnerabilityKritik bulgu sahipsiz
TrustDigest, signature, attestationTag-only deployment
PromoteOrtam kapısı ve ayrık yetkiProduction’a doğrudan push
RecoverRegistry replica, retention, revokeArtefact geri getirilemiyor

ÖRNEK

latest etiketi aynı sürümü göstermiyor

Arven iki node’a api:latest dağıtır. Tag ilk node’dan sonra yeni digest’e taşındığı için node’lar farklı kod çalıştırır; rollback etiketi de değişmiştir. Ekip manifest’i digest’e sabitler, signature ve promotion kaydı arar, release ile SBOM’u bağlar ve önceki digest’in retention süresini recovery hedefiyle eşleştirir.

MÜŞTERİYE SOR

Production image’ının source, commit, dependency, SBOM, licence, vulnerability, signature, digest, promotion ve geri çağırma zincirinden kim sorumlu; registry kaybında hangi artefact ne sürede gelir?

Container teslimini isimsiz binary kopyasından izlenebilir ve kurtarılabilir supply chain’e dönüştürür.

BİLGİNİ KONTROL ET

Production manifest’inde yalnız değişebilir image tag kullanmanın temel riski nedir?

Bir cevap seç

Runtime, namespace, cgroup ve host sınırını açıkla

Container, host kernel üzerinde izole edilmiş process grubudur; sanal makine gibi ayrı kernel sağlamaz. Namespace process, mount, network, IPC ve kullanıcı görünümünü; cgroups kaynak hesabı ve sınırını; capability, seccomp, SELinux/AppArmor ve filesystem izinleri erişim alanını daraltır. Bu katmanlar defence-in-depth oluşturur. Privileged çalışma, host namespace, geniş capability, hostPath veya container socket erişimi izolasyon sınırını ciddi biçimde büyütür ve istisna kanıtı gerektirir. Runtime image’ı çeker, doğrular, unpack eder ve process’i oluşturur; Kubernetes ortamında kubelet CRI üzerinden runtime ile konuşur. Container engine, low-level OCI runtime ve orchestrator aynı bileşen değildir. Rootless çalışma host üzerindeki yetkiyi azaltır; kullanıcı namespace ve subordinate ID davranışı network, port ve volume erişimini etkileyebilir. Rootless etiketi uygulamanın içeride root UID kullanmadığını veya tüm saldırı yollarının kapandığını tek başına kanıtlamaz. Container writable layer geçicidir. Logu yalnız dosyaya, state’i container katmanına yazmak restart ve reschedule sonrasında kayba yol açar. Config ve secret image’dan ayrılır; secret’ın API, etcd, node, environment, volume, log ve backup izleri değerlendirilir. CPU request/limit, memory request/limit, ephemeral storage ve process/file limitleri gerçek load testine dayanır. Memory limit aşımı OOM kill; aşırı düşük CPU limiti throttling ve latency üretir. Host kernel, runtime, node OS ve registry patch sorumluluğu container kullanınca kaybolmaz.

Container runtime sınırı ve negatif testler
SınırKontrolNegatif test
ProcessNon-root, capability, seccompYetkisiz syscall
FilesystemRead-only, volume, labelWritable layer kaybı
ResourceRequest/limit ve cgroupCPU throttle/OOM
HostKernel/runtime patch ve socketNode/runtime kesintisi
SecretDar erişim, rotation, auditEski secret ve log sızıntısı

MÜŞTERİYE SOR

Uygulama hangi kernel yeteneği, user/capability, filesystem yazımı, port, device, secret, CPU-memory ve host entegrasyonuna ihtiyaç duyuyor; hangileri kaldırıldığında hangi işlev bozuluyor?

Gerçek runtime gereksinimini geniş ayrıcalık varsayımından ayırır.

ŞİMDİ SEN DENE

Minimum runtime sözleşmesi çıkar

Arven API için user, capability, seccomp, read-only root filesystem, volume, port, DNS, certificate, secret, request/limit, health ve termination ihtiyaçlarını yaz. Privileged, socket ve hostPath olmadan test et; her başarısızlıkta gereken dar kontrolü ve kanıtı kaydet.

BİLGİNİ KONTROL ET

Container izolasyonu neden sanal makine izolasyonuyla aynı kabul edilmez?

Bir cevap seç

Pod, controller, service, config ve storage davranışını bağla

Kubernetes container çalıştırmanın ötesinde desired state ve reconciliation sunar. Pod en küçük deploy edilebilir birimdir; içindeki container’lar aynı node’da birlikte schedule edilir ve network/storage context paylaşır. Pod kalıcı sunucu kimliği değildir; controller arızalı Pod yerine yenisini oluşturur. Deployment çoğunlukla stateless replica ve rollout; StatefulSet kararlı identity/order ve storage ilişkisi; DaemonSet node başına workload; Job tamamlanan iş için kullanılır. Controller seçimi uygulamanın state ve lifecycle davranışına dayanır. Service değişen Pod’lara kararlı erişim ve load distribution sağlar; Ingress/Gateway dış HTTP yönlendirmesini, NetworkPolicy izinli trafik sınırını ele alır. Bunlar DNS, CNI, load balancer, certificate ve firewall dependency’lerini ortadan kaldırmaz. ConfigMap hassas olmayan config; Secret hassas veri taşır, fakat encryption, RBAC, rotation ve kullanım izi ayrıca doğrulanır. PersistentVolume/PVC storage talebini bağlar; access mode, topology, latency, snapshot, backup, restore, expansion ve reclaim davranışı veri hizmeti sözleşmesidir. Scheduler request, affinity, taint/toleration, topology ve policy ile node seçer; gerçek capacity ve failure domain sonucu ayrıca ölçülür. Readiness başarısızsa Pod Service trafiğinden çıkar; liveness başarısızlığı restart tetikleyebilir; startup probe yavaş başlangıcı korur. Yanlış liveness bağımlılık arızasında restart fırtınası yaratabilir. Graceful termination, preStop, termination grace, disruption budget, replica/topology spread ve rollout stratejisi birlikte test edilir. Control plane sağlığı ile mevcut data plane ve yeni scheduling/değişiklik yeteneği ayrı değerlendirilir.

ÖRNEK

Liveness veri tabanını ölçüyor

Arven API liveness probe’u downstream database sorgusu yapar. Database yavaşlayınca tüm Pod’lar aynı anda restart olur, bağlantı yükü artar ve olay büyür. Ekip liveness’i process deadlock’a, readiness’i hizmet verebilme davranışına, sentetik iş kontrolünü dış gözleme ayırır; threshold ve rollout’u failure testinde doğrular.

MÜŞTERİYE SOR

Pod yeniden yaratıldığında identity, session, queue, file, connection ve transaction state’i nerede kalıyor; node, zone, control plane, registry veya storage kesintisinde hangi yetenek devam ediyor?

Orchestration’ın state ve dependency sorunlarını otomatik çözmediğini görünür kılar.

ŞİMDİ SEN DENE

Workload nesne ve failure haritası çiz

API, worker ve zamanlanmış iş için uygun controller’ı seç. Service, route, NetworkPolicy, ConfigMap/Secret, PVC, request/limit, probe, rollout, PDB ve topology ilişkilerini çiz. Pod, node, zone, registry, control-plane ve storage kaybında beklenen davranış ile kanıtı yaz.

ŞİMDİ SEN DENE

Probe ve termination sözleşmesi tasarla

Startup, readiness ve liveness için farklı sinyal, interval, timeout ve threshold belirle. Yavaş başlangıç, downstream kesintisi, deadlock, SIGTERM sırasında drain ve uzun transaction senaryolarını test et; restart fırtınası ve trafik kaybı koşullarını kaydet.

BİLGİNİ KONTROL ET

Readiness probe başarısız olduğunda beklenen temel davranış nedir?

Bir cevap seç

Arven container uygunluk ve kabul kararını üret

Arven sipariş API’sini container’a almayı değerlendirir. Uygulama iki Linux node’da çalışır; release kurulumu kırılgan, dependency sürümleri farklı ve kampanya ölçeği değişkendir. Container image tekrarlanabilir artefact ve hızlı rollout sağlayabilir. Ancak uygulama local session/file tutuyor, batch aynı database’e yoğun bağlanıyor, certificate elle yenileniyor ve ekip Kubernetes işletmemiştir. “Container’a aldık” bu borçları çözmez; state, health, secret, resource ve operasyon sözleşmeleri yeniden tasarlanır. Üç seçenek karşılaştırılır: systemd altında OCI container ile tek/az node; yönetilen veya kurum içi Kubernetes; mevcut VM hizmetini iyileştirme. Kubernetes ancak replica scheduling, self-healing, rollout, policy ve ortak platform değeri operasyon maliyetini aşıyorsa seçilir. Tek servis için cluster; control plane, node pool, CNI, CSI, registry, ingress, certificate, observability, backup, upgrade, security ve on-call sorumluluğu getirir. POC source-to-image provenance, digest/signature, non-root/read-only çalışma, secret rotation, resource pressure, probe ayrımı, graceful termination, rollback, node kaybı, registry kesintisi, persistent state, network policy ve log/metric correlation ölçer. Koşullu öneri; session dışsallaştırılır, local file kaldırılır, one-node/zone adverse capacity doğrulanır, supply chain kapıları çalışır, ekip RACI/runbook/on-call kazanır ve üç yıllık TCO kabul edilirse Kubernetes’tir. Aksi halde OCI container plus systemd veya iyileştirilmiş VM daha düşük karmaşıklıkla hedefi karşılayabilir. State modeli, replica ihtiyacı, regülasyon, platform paylaşımı veya ekip kabiliyeti değişirse karar yeniden açılır.

Arven container ve Kubernetes karar kapıları
KapıKanıtAlternatif
UygunlukState, process, dependency, terminationVM veya refactor
Supply chainSBOM, digest, sign, promoteKontrollü package
RuntimeNon-root, limit, secret, isolationSystemd container
OrchestrationReplica, rollout, failure-domain değeriBasit scheduler
OperasyonRACI, upgrade, backup, on-call, TCOYönetilen hizmet veya erteleme

MÜŞTERİYE SOR

Hangi ölçülebilir release, scale, recovery veya policy ihtiyacı Kubernetes karmaşıklığını haklı çıkarıyor; image, runtime, node ve cluster sorumluluklarını kim hangi SLO ile işletiyor?

Teknoloji talebini alternatifleri ve toplam işletim yükü bulunan karara dönüştürür.

ŞİMDİ SEN DENE

Arven container karar paketini tamamla

VM, systemd container ve Kubernetes seçeneklerini değer, state, supply chain, isolation, rollout, failure domain, security, beceri ve üç yıllık TCO ile karşılaştır. On negatif test, sekiz risk/TBD, POC kabulü, RACI, handover ve altı yeniden açma eşiğiyle koşullu öneri üret.

BU DERSTEN AL

Bu dersten taşıyacağın düşünceler

  • Image, runtime, container, Pod ve controller farklı sorumluluk sınırlarıdır.
  • Digest, SBOM, signature ve promotion supply chain kanıtını kurar.
  • Container host kernel’i paylaşır; privilege ve host entegrasyonu blast radius’u değiştirir.
  • State, secret ve persistent data writable layer dışında tasarlanır.
  • Readiness, liveness, startup ve termination farklı failure davranışlarını yönetir.
  • Kubernetes seçimi platform değeri, operasyon yeteneği, failure kanıtı ve TCO koşuluna bağlıdır.
← Academy ders yoluna dön