Sobes.tech
Middle+

Kubernetes nedir ve onunla ilgili açık standartlar nelerdir (OCI, CRI, CNI, CSI, SMI, CPI)?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kubernetes, konteynerleştirilmiş uygulamaların dağıtımı, ölçeklendirilmesi ve yönetimi için açık kaynaklı bir otomasyon sistemidir. Uygulamayı oluşturan konteynerleri, yönetim ve keşif kolaylığı için mantıksal birimlere gruplar.

Kubernetes ile ilgili temel açık standartlar:

  • OCI (Open Container Initiative): Konteyner görüntüleri ve çalışma ortamları için standart. Farklı çalışma ortamları arasında konteyner taşınabilirliğini sağlar.
    • Görüntü Formatı Spesifikasyonu: Konteyner görüntülerinin yapısını ve formatını tanımlar (katmanlar, manifest).
    • Çalıştırma Spesifikasyonu: Konteynerleri nasıl başlatıp çalıştıracağınızı tanımlar (runtime API).
  • CRI (Container Runtime Interface): Kubernetes’in farklı çalışma ortamlarını (Docker, containerd, CRI-O gibi) kullanmasına olanak tanıyan API, belirli bir uygulamaya bağlı kalmadan.
    // CRI’den ListContainers metodunun çağrısına örnek
    func (s *runtimeService) ListContainers(ctx context.Context, r *runtimeapi.ListContainersRequest) (*runtimeapi.ListContainersResponse, error) {
        // Belirli bir çalışma ortamından konteyner listesi alma mantığı
        return &runtimeapi.ListContainersResponse{Containers: /* liste */}, nil
    }
    
  • CNI (Container Network Interface): Konteynerlerin ağ arayüzlerini yapılandırmak için spesifikasyon ve kütüphane seti. Calico, Flannel, Cilium gibi farklı ağ eklentilerinin Kubernetes ile entegrasyonunu sağlar.
    // CNI yapılandırma dosyasına örnek
    {
        "cniVersion": "1.0.0",
        "name": "mynet",
        "type": "bridge", // Ağ eklentisi tipi (örneğin, köprü)
        "bridge": "cni0",
        "isGateway": true,
        "ipMasq": true,
        "ipam": {
            "type": "host-local", // IPAM tipi (örneğin, yerel)
            "ranges": [
              [{ "subnet": "10.240.0.0/16" }]
            ]
        }
    }
    
  • CSI (Container Storage Interface): Konteynerleştirilmiş iş yükleri için depolama sistemleri sağlama ve yönetme standardı. Ceph, AWS EBS, Google persistent disk gibi farklı depolama sağlayıcılarının Kubernetes ile entegre olacak eklentiler geliştirmesini sağlar.
  • SMI (Service Mesh Interface): Kubernetes üzerindeki servis ağlarında (service meshes) standart arayüzler için spesifikasyon (Istio, Linkerd, Conexión de Consul). Trafik, metrikler ve güvenlik yönetimi için ortak API seti sağlar.
  • CPI (Cloud Provider Interface): Kubernetes kontrolcüleri tarafından kullanılan API, bulut sağlayıcılarıyla (AWS, GCP, Azure) entegrasyon ve bulut kaynakları (yük dengeleme, depolama diskleri) sağlama.

Standartların karşılaştırmalı tablosu:

Standart Alan Ana görev
OCI Konteynerler Görüntü formatı ve çalışma ortamı
CRI Çalışma ortamı Konteyner çalışma zamanları için arayüz
CNI Ağ arayüzlerinin yapılandırılması
CSI Depolama Depolama sistemlerinin yönetimi
SMI Servis ağı Service mesh arayüzlerinin standartlaştırılması
CPI Bulut Bulut sağlayıcılarıyla entegrasyon

Bu standartlar, Kubernetes ekosisteminde modülerlik, genişletilebilirlik ve uyumluluğu sağlar.