Sobes.tech
Middle+

Šta je Kubernetes i koji su otvoreni standardi povezani s njim (OCI, CRI, CNI, CSI, SMI, CPI)?

sobes.tech АИ

Одговор од АИ

Kubernetes je otvoreni sistem za automatizaciju implementacije, skaliranja i upravljanja kontejnerizovanim aplikacijama. Grupira kontejnere koji čine aplikaciju u logičke jedinice radi jednostavnije upravljivosti i otkrivanja.

Glavni otvoreni standardi povezani sa Kubernetes-om:

  • OCI (Open Container Initiative): Standard za formate slika kontejnera i okruženje za izvršavanje. Osigurava prenosivost kontejnera između različitih okruženja za izvršavanje.
    • Specifikacija formata slike: Definiše strukturu i format kontejnerskih slika (slojevi, manifest).
    • Specifikacija okruženja za izvršavanje: Definiše kako pokretati i izvršavati kontejnere (runtime API).
  • CRI (Container Runtime Interface): API koji omogućava Kubernetes-u da koristi različite okruženja za izvršavanje kontejnera (kao što su Docker, containerd, CRI-O), bez vezivanja za specifičnu implementaciju.
    // Primer poziva metode ListContainers iz CRI
    func (s *runtimeService) ListContainers(ctx context.Context, r *runtimeapi.ListContainersRequest) (*runtimeapi.ListContainersResponse, error) {
        // Logika za dobijanje liste kontejnera od konkretnog runtime-a
        return &runtimeapi.ListContainersResponse{Containers: /* lista */}, nil
    }
    
  • CNI (Container Network Interface): Specifikacija i skup biblioteka za konfiguraciju mrežnih interfejsa kontejnera. Omogućava različitim mrežnim plugin-ovima (Calico, Flannel, Cilium) da se integrišu sa Kubernetes-om.
    // Primer CNI konfiguracionog fajla
    {
        "cniVersion": "1.0.0",
        "name": "mynet",
        "type": "bridge", // Tip mrežnog plugina (npr. most)
        "bridge": "cni0",
        "isGateway": true,
        "ipMasq": true,
        "ipam": {
            "type": "host-local", // Tip IPAM (npr. lokalni)
            "ranges": [
              [{ "subnet": "10.240.0.0/16" }]
            ]
        }
    }
    
  • CSI (Container Storage Interface): Standard za pružanje i upravljanje sistemima za skladištenje podataka za kontejnerizovane radne opterećenja. Omogućava različitim pružaocima skladišta (Ceph, AWS EBS, Google persistent disk) da razvijaju plugine koji se integrišu sa Kubernetes-om.
  • SMI (Service Mesh Interface): Specifikacija za standardne interfejse u mrežama servisa (service meshes) na Kubernetes-u (Istio, Linkerd, Consul Connect). Pruža zajednički skup API-ja za upravljanje saobraćajem, metrike i sigurnost u service mesh.
  • CPI (Cloud Provider Interface): API koji koriste kontroleri Kubernetes-a za integraciju sa cloud provajderima (AWS, GCP, Azure) i pružanje cloud resursa (npr. balansere opterećenja, diskove za skladištenje).

Tabela poređenja standarda:

Standard Domen Glavni zadatak
OCI Kontejneri Format slika i okruženje za izvršavanje
CRI Okruženje za izvršavanje API za runtime kontejnera
CNI Mreža Konfiguracija mrežnih interfejsa
CSI Skladištenje Upravljanje sistemima skladištenja
SMI Mreže servisa Standardizacija interfejsa service mesh
CPI Oblak Integracija sa cloud provajderima

Ovi standardi obezbeđuju modularnost, proširivost i kompatibilnost ekosistema Kubernetes.