摘要:本文涵蓋了中的六大新特性內置命令服務發現自愈功能安全負載均衡滾動升級,相關的使用文檔和視頻鏈接也都包含在里面。同時,內部負載均衡要求一個可用的容器。現在開箱即用的負載均衡,上公開暴露的端口在所有節點都是可以訪問的。
Docker 1.12版本最近剛剛發布,這篇文章對它的新特性進行了概述和對比描述。本文涵蓋了 Docker 1.12 中的六大新特性:內置 swarm命令、服務發現、自愈功能、安全、負載均衡、滾動升級,相關的使用文檔和demo視頻鏈接也都包含在里面。
內置 swarm 命令
Docker engine 中增加了 docker swarm 命令,它用于取代之前通過容器創建swarm節點的方式。現在,創建一個swarm節點,只需要在每個節點上運行一條命令。在第一個節點上運行以下命令:
“
上面的命令運行成功以后,將生成一條新命令,新命令用于將其它節點添加到swarm集群。它看起來像這樣:
在其它節點上運行上面的命令以后,我們就得到了一個可以正常運行的swarm集群。 我們對比一下之前和現在部署swarm 的區別:
之前:
● 要建立一個swarm,我們需要在每個節點上啟動主swarm和代理容器 。
現在:
● 不需要swarm 容器、可以用本地 Docker swarm 命令創建swarms。
想了解更多關于如何在1.12中建立 swarm ,請查看官方文檔(https://docs.docker.com/engin...)。
服務發現服務是一個關鍵的更新,后面我們會看到,它也促成了很多其它功能的更新。docker service命令告知集群中服務的期望狀態。這種機制下,當節點或容器掛掉,智能編排服務成為可能。
在定義服務狀態時,Docker service 跟 Docker-compose 的概念很相似。Docker-compose 也有 scale 相關的命令,但缺點在于:這些命令僅第一次確保狀態是正確的,但沒有持續的監控。有了新的 Docker service 命令,Docker-compose 可能會被打上“僅用于開發”的標簽。
在以前的 Docker 版本中,我們必須找到不同的方式來擴展服務,并確保它們擁有期望的的副本數量。一些人用 Kubernetes或 Amazon EC2解決這個問題, 也可能使用 Docker-compose,雖然只有在第一次運行時能夠保證服務的狀態。
之前
● 我們使用其他工具如 Kubernetes 或配置文件來定義服務,用于 Amazon EC2照顧容器編排。
現在
● 使用 Docker service 告知 swarm 服務的期望狀態,這意味著 Docker 原生支持服務編排。
有關如何部署服務的詳細信息,參見這里
(https://docs.docker.com/engin...)。
自愈能力目前,swarm 集群完全具備自愈能力。任何服務宕掉后, Docker engine 本身就可以對它進行重新調度,不需要任何其它編排工具。
以前我們需要一個外部編排層(如Kubernetes),現在編排這一層已經內置到 Docker engine中。
添加和刪除節點后,swarm集群都能夠正常工作,從這個層面上來說swarm是可伸縮的。盡管swarm 沒有掛掉,且可伸縮,但是它不能編排容器。
如果一個 swarm 節點掛掉,容器集群不能感知到到它需要在另一個節點上啟動一個新容器,從而取代掛掉的主機上的容器。在Docker 1.12中,這種情況不會再出現。
在Docker 1.12 中,當服務的容器個數不滿足要求時,swarm會自動在其它節點上啟動新容器。
雖然這是一個巨大的飛躍,但它仍然有些地方需要改進。如果你添加新節點到一個swarm集群, 并想把服務的部分容器調度到新添加的節點上,swarm還不能滿足你的需求,但這一點會很快改善。
之前
● 雖然 swarm集群 本身具有自愈能力,但是swarm 上的容器不支持此特性。我們不得不手動或借助工具(如 Kubernetes)來確保服務的實例個數達到期望值。
現在
● swarm 現在意識到服務應該運行在集群上,當容器或節點宕掉時會重新調度。
關于swarm 如何面對節點故障并重新部署已經被殺掉的服務,查看官方完整的demo:
(https://www.youtube.com/watch...)。
安全在1.12 中,Docker負責所有節點之間的加密。我們很早支持swarm節點間的加密通信,但是迄今為止,配置一直是一個痛點。因為我們需要一個根證書認證服務器。
現在,Docker 在每個節點上都運行一個CA 服務器,這使得CA 服務器可以在默認情況下的節點間啟用 TLS 加密。
設置手動加密的另一個痛點是認證循環,但是Docker engine 1.12 已經為我們做了這些事情。
因此,現在加密 swarm 節點間通信不僅更容易,而且是默認啟用!
之前
● swarm 節點之間的通信可以使用TLS 加密,但需要額外設置。如果你真的想這么做,需要設置CA或使用第三方的根證書。
● 當證書過期時你需要管理證書
現在
● 所有節點間的通信在默認情況下進行加密, swarm 綁定CA 并為你管理證書,包括證書循環。
了解更多關于Docker 1.12 如何負責節點間加密的更多信息,參考這篇官方博客文章(https://blog.docker.com/2016/...)。
負載均衡(路由網)Dockers 路由網使網絡變得更容易。關鍵的概念是,如果你在服務上發布一個端口,它是跨整個集群全局發布的,所以在任何節點上的端口都可以到達該服務。
同時, Docker 內部負載均衡要求一個可用的容器。這意味著你服務中任意節點上的請求都將跨重復的容器進行透明負載均衡,即使容器在不同的節點上傳播,或者節點的請求來自容器所在的不同節點。這真的很酷,可以讓我們減少很多工作。
如果你需要SSL或代理請求到多個服務(不是跨服務的負載均衡),那么無論如何你都需要設置代理。最大的不同是,代理不需要跨單個容器上負載均衡,只需要跨服務進行負載均衡,這樣代理就更簡單了。
之前
● 要對一個服務的幾個副本容器設置負載均衡,那么需要設一直一個proxy,通常使用nginx、haproxy等工具配合 consul動態配置容器的IP。
現在
● 開箱即用的負載均衡,swarm 上公開暴露的端口在所有節點都是可以訪問的。
● 不需要知道容器的IP地址,而是通過服務名稱。Docker 處理不同容器副本的內部路由和負載均衡。
關于如何使用路由網,看看這個演示視頻
(https://www.youtube.com/watch...)。
滾動部署這是一個非常酷的功能。由于Docker engine已經知道集群服務的期望狀態,對Docker engine 發送指令,讓它逐個更新副本(或兩個兩個的,使用 --update-parallelism 標簽來配置 )。這意味著我們可以安全透明的更新容器副本。
關于“透明”,你當然要確保你的容器是向后兼容的,否則最好銷毀舊的容器,再去更新所有的容器。重點是雖然有了滾動更新以后,我們就不需要把更新規則寫成腳本去實現透明部署。
之前
● 必須手動管理部署,或者藍綠部署,或者手寫腳本實現滾動升級。
現在
● 使用更新服務的命令實現滾動升級。
Docker的團隊做了一個滾動更新的演示視頻,看看這里
(https://www.youtube.com/watch...)。
Docker 1.12 使管理 Docker swarm 整體更簡單容易。不需要外部編排(如:consul ),這意味著較少的移動部件。有了這些變化,Docker 正慢慢成為目前占據主導地位的編排工具(如 Kubernetes)的真正替代者。我們拭目以待。
本文由時速云翻譯,如若轉載,需注明轉載自“時速云”
原文鏈接:http://blog.nimbleci.com/2016...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/26687.html
摘要:邢舟開源與開放標準工程院軟件工程師背景回顧月日,中國社區全新改版線上課堂,邀請邢舟老師以直播的方式進行了一場以存儲概覽為題的線上講解,反響熱烈。為更好地為學員整合問答,中國社區特別整理了本期模塊,感謝邢舟老師百忙之中進行校對。 邢舟 /IBM 開源與開放標準工程院軟件工程師 背景回顧:8 月 2 日 20:00,K8sMeetup 中國社區全新改版線上課堂,邀請邢舟老師以直播的方式進行...
摘要:當然此時的局限性較大,比如沒有副本和負載均衡的概念,這導致服務無法高可用當然也更不存在什么服務網絡管理和跨節點數據存儲這些東西沒有服務模型集群中服務間關系和啟動順序編排也很復雜于是就有了下面的的誕生。 showImg(https://segmentfault.com/img/remote/1460000015317037?w=1885&h=1153); 概述 在我的《Docker S...
摘要:距離上一次版本發布三個月之隔,是今年的第三個主要版本。證書輪換證書輪換功能現已進入狀態。這一功能可以在當前證書到期時自動續訂密鑰和服務器的證書。更多包含許多修復和內部組件的改進,此次的更新明顯側重于穩定核心以及使現有的功能成熟。 Kubernetes1.12已于今日全新發布!Kubelet證書輪換、資源配額優先級、掛載命名空間、對Azure的增強支持等10大亮點功能,本文為你一一解讀!...
摘要:在被納入后,與之爭日趨白熱化。一如微軟曾經試圖通過在中安裝來排擠,現在正在嘗試將融入到,以此來打擊,,和。如同微軟確確實實提升了的性能。瀏覽器突出了微軟的優勢,所以他們在年內都沒有繼續開發了。 在 Swarm 被納入 Docker 1.12后,Swarm 與 K8S 之爭日趨白熱化。本文作者 Adriaan de Jonge 身為 Xebia CTO ,專精 DevOps 及持續交付,...
摘要:是谷歌官方根據自己容器經驗開源的產品。當然,這不可能是,而且它的底層是替換成了,但是這不能掩蓋它解決的問題。因此筆者決定嘗試玩玩。不然啟動會報錯。 背景 容器技術在目前很火,而且確確實實的解決了很多的痛點,但是如果只使用目前 Docker 官方提供的 engine+compose+swarm 方案,是很難再實際生產中使用的。Kubernetes 是谷歌官方根據自己容器經驗 Borg 開...
閱讀 1645·2021-10-09 09:44
閱讀 2814·2021-10-08 10:04
閱讀 2478·2021-09-26 09:55
閱讀 3859·2021-09-22 10:02
閱讀 3317·2019-08-29 17:08
閱讀 1075·2019-08-29 15:08
閱讀 2963·2019-08-26 13:52
閱讀 3281·2019-08-26 13:34