本篇文章是一個深度介紹文,除了探討 K3S 與 K3D 的關係之外,還針對 K3D 的架構與使用方法很詳細的介紹一番,包含了
1. K3D v3 的特色與架構
2. 如何替換 K3D 裡面的 CNI
3. 如何替換 k3D 預設的 Ingress Controller
4. 使用 private registry 來處理
Kubernetes 的變化版本很多,除了 k3s 之外後來還有 k0s 的出現,每個版本都有自己想要解決的問題,而 k3s 則是一個非常輕量的 Kubernetes 版本,其特色有
1. 使用 Flannel 作為其預設 CNI,不講求太多複雜功能,單純用 VXLAN 打造一個 L2 的 overlay 網路
2. 使用 CoreDNS,與原生一樣
3. 使用 SQLite3 當作預設的 DB,而非 etcd3
4. 使用 Traefik 當作預設的 Ingress Controller,原生 K8s 則把這個主動權交給使用者
5. 使用 Containerd 當作預設的 Container Runtime
而 K3D 就是基於 K3S 的測試環境, K3S in Docker,跟 KIND 類似,只是運行的 Kubernetes 發行版本不同。
相較於 KIND 而已, K3D 的架構稍微複雜一點
1. 為了方便測試與存取,k3D 部署的時候也會部署一個 Nginx Server 來當作簡易的 Load-Balacner,讓 K3D 內的 Ingress 服務可以更簡易的被存取。使用者只需要存取該 Load-Balancer 即可,不需要去針對 Node(Docker) 的 IP 存取
2. 可以支援動態加入與刪除節點
本篇文章算是非常詳細的介紹各種參數用法,對於 K3D 這種測試環境有興趣的可以參考看看
https://yannalbou.medium.com/k3s-k3d-k8s-a-new-perfect-match-for-dev-and-test-e8b871aa6a42
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
docker containerd 在 iThome Facebook 的最佳貼文
資安廠商Sysdig釋出年度容器使用報告,分析了將近200萬個容器,並且整合來自CNCF、Docker Hub以及GitHub等公開資料。
Sysdig提到,比起前一次調查,在建構過程就掃描容器映像檔的用戶增加,表示企業逐漸建立提早測試的觀念,而在Runtime的使用上,Docker占比大幅下降,而Containerd以及CRI-O成長率均達到200%
https://www.ithome.com.tw/news/142242
docker containerd 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
本篇文章的標題很聳動,看起來是要人完全放棄 Docker,實際上則是詳細的跟大家介紹 Docker 生態系中各種潛在的替換工具,這個生態系主要可以分成 Container Engines, Building Images, Container Runtime 以及 Image Inspection and Distribution.
文章內容偏長,但是偏向系統與概念的去介紹,也是非常推薦吃飯時的良好讀物。
這篇就簡單重點整理一下,詳細的還是請點選全文去觀看
1. Container Engines
作者列出了幾個競爭對手,譬如 podman, lxd, cri-o 以及 rkt. 不過介紹都是以 podman 為主,其特色有(1)daemonless, (2) non-root container, (3) 支援 pod 的概念
此外 podman 的指令完全相容於 docker,因此也可以透過 aliase docker=podman 的方式去運行。
2. Building Images
這邊提到了 Buildah, Kaniko 以及 buildkit.
Buildah 是由 RedHat 所推廣的開源專案,天生整合到 podman 裡面,而 Kaniko 則是 Google 所推出的解決方案,主要應用場景是於 Kubernetes 內建置 contianer image。最後 buildkit 則是 moby 目前開發的下一代 docker build 解決方案,期望能夠提供更多的功能及來提升建置的效率
3. Contianer Runtime
這邊的選擇性列出兩個,最常使用的 runc 以及 RedHat 開源的 crun,兩者都遵循 OCI 標準,因此上述的 Container Engine 都必須要可以輕鬆的於兩者之間切換。
當然除了這些之外,還有不同的 Contaienr Runtime,譬如 gVisor, Kata Container 等安全性更高的解決方案。
4. Image Inspection and Distribution
這邊則是提到了 Skopeo,一樣是由 RedHat 所推廣的開源專案,Skopeo 甚至支援同步不同節點的 Container Registry 而不需要將其內容可複製到本地端,使用上有滿多有趣的功能。
此外還有一個叫做 Dive 的工具也非常棒,能夠幫你檢視 Docker Image 每一層的內容,譬如使用的空間大小等,讓你有機會好好的認識你的 imagea。
5. Others:
當然這篇文章內就沒有花太多篇幅介紹 CRI-O 以及 ContainerD 的關係與概念,如果你對於 CRI/CRI-O/ContainerD 有興趣的話,也可以參考我之前的線上 meetup 錄影: https://www.youtube.com/watch?v=5JhQOjSSnzQ&t=2s
原文: https://towardsdatascience.com/its-time-to-say-goodbye-to-docker-5cfec8eff833