Skip to content

初探 Kaniko:在 Kubernetes 內安全建構 Docker 映像檔

能不能直接在 Kubernetes 叢集裡自動建構 Docker 映像檔,卻又不想在每個節點安裝 Docker Daemon?或許可以嘗試使用 Kaniko!

為什麼需要 Kaniko?

隨著容器化技術的普及,CI/CD 流程中自動build container image成為常態。傳統上,我們會在本機或 CI server 上用 Docker 指令來 build/push container image,但這種方式有幾個明顯的限制:

  • 安全性疑慮:在 Kubernetes 叢集內直接執行 Docker Daemon(Docker-in-Docker)有潛在的安全風險。
  • 資源隔離:Docker Daemon 需要 root 權限,容易造成資源與權限管理上的困擾。
  • 雲原生需求:越來越多的自動化流程希望直接在 K8s Pod 內完成映像檔建構與推送,減少外部依賴。

Google 推出的 Kaniko 可以在沒有 Docker Daemon 的環境下,解析 Dockerfile 並build container image,然後直接推送到 registry,非常適合在 Kubernetes 叢集內運行。