İzole (Air-Gapped) Ağlarda OpenShift ve CI/CD Teslimat Mimarisi Tasarlamak
Dış internete kapalı kurumsal ağlarda OpenShift küme yönetimi, iç imaj havuzu (mirror registry) stratejileri ve Ansible ile Day-2 otomasyon kararları.
İnternetteki pek çok Kubernetes ve DevOps kaynağı; sunucuların Docker Hub, Quay.io veya dış paket depolarına sınırsız erişebildiği varsayımıyla yazılır. Ancak kamu kurumları ve finans gibi regülasyonların sıkı olduğu ortamlarda canlı kümenin dış dünyaya doğrudan çıkışı yoktur.
Bu yazıda; dış ağdan izole ortamlarda Red Hat OpenShift, Azure DevOps ve Ansible üçlüsünü bir araya getirirken aldığımız mimari kararları ve ödünleşimleri (trade-off) özetliyorum.
Referans Mimari Topolojisi
Temel Mimari Kararlar ve Ödünleşimler (Trade-offs)
1. Manuel İmaj Taşıma Yerine Deklaratif Mirror Yapısı
Konteyner imajlarını .tar paketleri halinde elle içeri taşımak ilk kurulumda pratik görünse de küme büyüdüğünde ve OpenShift sürüm geçişlerinde operatör bağımlılıklarını kırar.
- Karar: Tüm platform ve uygulama imajları için tek doğruluk kaynağı olarak iç ağda kurumsal bir Container Registry konumlandırmak ve OpenShift tarafında
ImageDigestMirrorSetpolitikalarıyla yönlendirmeyi şeffaflaştırmak. - Ödünleşim: Katalog senkronizasyonu için daha fazla disk alanı maliyeti; karşılığında ise öngörülebilir ve kesintisiz sürüm güncellemeleri.
2. Kubernetes Varken Neden Hâlâ Ansible Kullanıyoruz?
Kubernetes, küme içindeki iş yüklerini yönetmekte mükemmeldir; ancak kurumsal ortamlarda arızalar çoğu zaman kümenin altındaki veya çevresindeki katmanlarda yaşanır:
- Yük dengeleyiciler (Load Balancer), DNS kayıtları ve kurumsal kök sertifikaların (Root CA) düğümlere dağıtımı,
- Bare-metal veya VMware üzerindeki Linux düğümlerin güvenlik sıkılaştırması (OS Hardening) ve multipath disk ayarları,
- Azure DevOps pipeline aşamaları arasında dağıtım öncesi/sonrası doğrulama kontrolleri.
3. Depolama Katmanını Ayırmak: SAN/NAS vs. S3 Object Storage
- Blok Depolama (SAN + CSI): Düşük gecikme gerektiren veritabanları ve izleme (monitoring) bileşenleri için ayrılır.
- S3 Uyumlu Nesne Depolama: Pipeline çıktıları, imaj deposu arka ucu ve yedekler için kullanılarak hesaplama katmanını veri katmanından bağımsızlaştırır.