K8S 生態週報| 年終大放送!Docker v20.10

「K8S 生態週報」內容主要包含我所接觸到的 K8S 生態相關的每週值得推薦的一些信息。歡迎訂閱知乎專欄 「k8s生態」

Docker v20.10 主要特性一覽

在以前的 K8S 生態週報| Docker v20.10.0-beta1 發佈 一文中,我曾爲你介紹過 Docker v20.10.0-beta1 發佈相關的信息,可是並無具體介紹 Docker v20.10 版本的具體功能特性等細節。html

Docker v20.10 版本,變化很是的大。提供了 CGroup v2 的支持,加強了 rootless 模式的支持,雙棧日誌,更靈活的內置 DNS 等,我在這個版本中也花費了不少時間。

詳細的變動,我會在 v20.10 正式發佈後再進行介紹。歡迎你們進行測試和反饋,目前已經收到了一些反饋的建議。咱們會盡快修正併發佈下個版本。git

正如我當時承諾的那樣,做爲 2020 年最後一篇週報,我來在本篇週報中詳細介紹下 Docker v20.10 版本。github

安裝

Docker v20.10 發佈於 2020 年 12 月 8 日,是自 Docker v19.03 (2019 年 7 月)後發佈的首個大版本。你能夠直接經過如下命令來自動化的安裝 Docker v20.10。docker

➜  ~ curl -fsSL https://get.docker.com |sh

cgroup v2 支持

Docker v19.03 是沒有 cgroup v2 支持的,但自從 Fedora 31 開始,這成爲了 Fedora 上的默認 cgroup 版本。在 Docker v20.10 發佈以前,Fedora 31 及以上用戶,須要將系統的 cgroup 設置爲 v1 才能正常運行 Docker 。緩存

其實這裏面涉及到了大量的修改,包括 runc, containerd 直到 Docker 都添加了 cgroup v2 的支持,此功能才能真正給用戶使用。安全

在此過程當中,我也發現了 runc v1.0-rc91 中隱藏的 bug ,會致使 Docker 沒法正常經過增長 --privileged 參數以特權模式運行容器。後來對 runc 進行了修改,發佈了 runc v1.0-rc92 ,至此才使得 Docker 中的 cgroup v2 特性得以順利完成。併發

關於此處更詳細的內容,我在 《K8S 生態週報| runc v1.0-rc92 發佈》 中已作了詳細介紹,感興趣的小夥伴能夠看看。less

rootless mode GA

Docker 有個一直被人詬病的點,就在於 docker daemon 必須是以 root 權限來啓動,這樣纔可使用它的所有特性。這也就意味着,凡是能夠操做 docker daemon 的用戶,也就有機會獲取操做系統的 root 權限。ssh

咱們在 Docker v19.03 版本中提供了實驗性的 rootless mode 的支持,容許用戶無需 root 權限便可運行 docker daemon 。這大大提高了系統的安全性。但當時還處於實驗階段,有部分功能缺失。curl

我想趁這次 Docker v20.10 發佈,正式爲你介紹下 Docker 的 rootless mode ,而且,它已經達到 GA 從實驗性畢業了,而且也提供了不少功能。

rootless mode 是在用戶名稱空間中運行 docker daemon 和容器,徹底不須要 root 權限。

你能夠經過如下命令安裝 Docker rootless 模式:

➜  ~ curl -fsSL https://get.docker.com/rootless | sh

或者直接經過 Docker 官方的 RPM/DEB 包進行安裝。安裝完以後,經過 systemctl 管理 Docker 服務便可。

➜  ~ systemctl --user start docker

更多關於 rootless mode 的詳細用法及最佳實踐,請參考 Docker 官方文檔:以非 root 用戶運行 docker daemon

Dockerfile: RUN --mount=type=(ssh|secret|cache) 等特性達到 GA

Docker v18.06 開始實驗性的添加了 RUN --mount=type=cache 該特性可用於在構建過程當中,保留包管理器的緩存文件。

以後在 v18.09 中又增長了 RUN --mount=type=sshRUN --mount=type=secret 用於在構建過程當中,傳遞密鑰或者用戶憑證等私密信息,以防止泄漏等。這些高級特性,在我以前的文章 《進階:Dockerfile 高階使用指南及鏡像優化》 曾詳細介紹過。

這些特性很是有用,基本涵蓋了你構建鏡像時關於安全性方面的絕大多數的需求。你們若是感興趣,歡迎隨時與我交流,後續我也可能會再寫相關的文章進行介紹。

其餘

  • 這次還優化了內置 DNS 相關的邏輯,能夠提供更好的性能;
  • docker build 可支持直接 ssh 遠程構建私有倉庫的鏡像了;

更多關於此版本的變動,能夠參考其 ReleaseNote

Rook v1.5.4 發佈

關於此版本有兩個格外須要注意的信息:

  • #6849 最新版的 Ceph 不支持使用分區的 OSD 了。就我我的經驗,我卻是基本沒有把 OSD 裝到過某個分區中,通常都直接使用整塊盤;
  • #6769 Ceph-CSI 默認更新到了 v3.2.0;

更多關於此版本的信息,請參考其 ReleaseNote

etcd 從 CNCF 正式畢業

etcd 想必你們不會陌生,我在「K8S 生態週報」中也曾屢次介紹它,這裏就再也不贅述了。

感興趣的小夥伴可查看官方公告: CNCF 宣佈 etcd 正式畢業

再次恭喜 etcd !

題外話

今年是 2020 年陽曆的最後一天了, 感謝你們的關注和支持!

接下來,我將會發布一份 「2020 年 K8S 生態演進報告」 與你分享在 2020 年 K8S 生態相關不容錯誤的信息,以及 2021 年 K8S 生態相關的展望及發展方向,敬請期待!


歡迎訂閱個人文章公衆號【MoeLove】

TheMoeLove

相關文章
相關標籤/搜索