Docker
不同的 pod 可以執行不同的容器化技術嗎?
例如,我可以讓一個 pod 執行 docker,另一個執行 cri-o?
我是 kubernetes 世界的新手,我無法在文件中找到答案。
在 Kubernetes 1.20 版中,您有RuntimeClass的概念。這基本上告訴 Kubernetes 在 Pod 級別上使用哪個容器引擎來執行 pod。
您可以在不同 Pod 之間設置不同的 RuntimeClass,以提供性能與安全性的平衡。例如,如果您的部分工作負載需要高級別的資訊安全保證,您可能會選擇調度這些 Pod,以便它們在使用硬體虛擬化的容器執行時中執行。然後,您將受益於備用執行時的額外隔離,但代價是一些額外的成本。
您還可以使用 RuntimeClass 來執行具有相同容器執行時但具有不同設置的不同 Pod。
有了這個,您可以使用諸如微型虛擬機/輕量級虛擬機之類的概念來執行 pod。這個概念並不是 Kubernetes 或容器編排所特有的,而是真正來自沙盒應用程序的相關世界(例如,作為從不受信任的網站打開附件的瀏覽器安全增強功能)。例如,請參閱此應用程序沙盒的微型 VM 比較。
對於 Kubernetes,gVisor 和 Kata(以及其他;參見CNCF 上的容器執行時格局)等技術旨在提供價值。
提供的功能將在很大程度上取決於 Kubernetes 發行版及其 VM 基礎架構的設置方式。