這系列基本上是以一個新手的觀點去筆記關於 Kubernetes 的知識
在進入到 Kubernetes 之前
我會以幾個先輩知識來理解在理解 Kubernetes 前需要理解的技術
包括
接著我們會進入到 Kubernetes Tutorial
在部屬一個應用時,速度跟便利性是極為重要的
傳統使用 virtual machine (VM) 或是實體機器跟現今使用 container 比較有幾個明顯的差異
VM | Container | |
---|---|---|
任意環境執行或建立 | 需要特定的虛擬機器管理程式(如 VMware、Hyper-V)來執行 | 可以在任意環境中執行 |
獨立的空間資源 | 包含完整的操作系統和應用程式/共享相同的虛擬機器管理程式 | 有獨立的空間和資源,彼此相互獨立/使用共用的操作系統核心 |
管理方便 | 較為複雜 | 透過簡單的命令和配置 |
資源精簡 | 包含完整的操作系統 | 僅包含應用程式和必要的依賴 |
在管理 container 方面,可以透過 Container Runtime Interface(如 Docker、containerd)管理
在 container 的世界中,Docker 是一個開源的容器化平台,我們可以透過 Docker 將應用程式容器化
Docker 包含以下幾個重要元件
以及幾個管理 Docker 名稱
Podman 相對 Docker 的差別在於它沒有像 Docker Daemon 管理 container 的程序
優點是 Podman 相對安全,我們不需要依賴單一個程序來管理 container
在 Podman,它是使用 CLI 和 libpod library 來管理 container
libpod 提供用來管理 container 和 cluster 等相關資源的 API
缺點就是管理起來會較為困難
而由於 Podman 沒有 Daemon,它是使用 systemd 來啟動或管理 container
在建立 container 方面,Podman 使用 Buildah
而遷移 container 方面,Podman 使用 Skopeo