最近正在抽時間編寫k8s的相關教程,非常費時,等相關內容初步完成後,再和你們分享。對於k8s,仍是上雲更爲簡單、穩定而且節省成本,所以咱們須要對主流雲服務的容器服務進行了解,以便更好地應用於生產。html
主流雲服務容器服務介紹 數據庫
亞馬遜AWS 編程
微軟Azure 後端
阿里雲 安全
騰訊雲 服務器
Docker+ Kubernetes已成爲雲計算的主流 微信
什麼是Kubernetes(k8s) 網絡
Kubernetes正在塑造應用程序開發和管理的將來 架構
Docker+ Kubernetes已成爲雲計算的主流 負載均衡
Amazon Web Services (AWS) 是亞馬遜公司旗下雲計算服務平臺,爲全世界範圍內的客戶提供雲解決方案。AWS面向用戶提供包括彈性計算、存儲、數據庫、應用程序在內的一整套雲計算服務,幫助企業下降IT投入成本和維護成本。
那麼如何在AWS上運行Docker呢?AWS 同時爲 Docker 開源解決方案和商業解決方案提供支持,而且可經過多種方式在 AWS 上運行容器:
Amazon Elastic Container Service (ECS),是一種高度可擴展的高性能容器編排服務,支持Docker容器,讓咱們能夠在 AWS 上輕鬆運行和擴展容器化應用程序,而不須要安裝和操做本身的容器編排軟件,不須要管理和擴展虛擬機集羣,也不須要在這些虛擬機上調度容器。其工做原理以下圖所示:
AWS Fargate,適用於Amazon ECS的技術,可以讓咱們在生產環境中運行容器,而無需部署或管理基礎設施。
Amazon Elastic Container Service for Kubernetes (EKS) ,可讓咱們在 AWS 上運行 Kubernetes,而無需安裝和操做 Kubernetes 主節點。
Amazon Elastic Container Registry (ECR) ,是一個高度可用且安全的私有容器存儲庫,可讓咱們可以輕鬆地存儲和管理Docker 容器鏡像,並對靜態鏡像進行加密和壓縮,以便快速提取和保護這些鏡像。
AWS Batch,可讓Docker 容器運行高度可擴展的批處理工做負載。
Microsoft Azure 是一個開放而靈活的企業級雲計算平臺。經過 IaaS + PaaS 幫助用戶加快發展步伐,提升工做效率並節省運營成本。
Azure是一種靈活和支持互操做的平臺,它能夠被用來建立雲中運行的應用或者經過基於雲的特性來增強現有應用。它開放式的架構給開發者提供了Web應用、互聯設備的應用、我的電腦、服務器、或者提供最優在線複雜解決方案的選擇。
在容器這塊,Azure一樣的提供了衆多解決方案:
下面咱們側重介紹下如下服務:
Azure 容器實例:Azure 容器實例提供了在 Azure 中運行容器的最簡捷方式,既無需預配任何虛擬機,也沒必要採用更高級的服務。
Azure Service Fabric:Azure Service Fabric 是一款分佈式系統平臺,可方便用戶輕鬆打包、部署和管理可縮放的可靠微服務和容器。 開發人員和管理員不需解決複雜的基礎結構問題,只需專一於實現苛刻的任務關鍵型工做負荷,即那些可縮放、可靠且易於管理的工做負荷。總之,Azure Service Fabric 旨在解決構建和運行服務方面的難題,並有效地利用基礎結構資源,使團隊可使用微服務方法來解決業務問題。而且,其與服務生成方式無關,可使用任意技術。不過,它確實提供內置編程 API,以便用戶能夠更輕鬆地生成微服務。
Azure Kubernetes 服務 (AKS):AKS管理託管的 Kubernetes 環境,使用戶無需具有容器業務流程專業知識便可快速、輕鬆地部署和管理容器化的應用程序。 它還經過按需預配、升級和縮放資源,消除了正在進行的操做和維護的負擔,而無需使應用程序脫機。
Azure 應用服務:Azure應用服務是用於託管 Web 應用程序、REST API 和移動後端的服務。可使用 .NET、NET Core、Java、Ruby、Node.js、PHP 或 Python 等偏好的語言進行開發。 在基於 Windows 和 Linux 的環境中,應用程序均可以輕鬆地運行和縮放。應用服務不只可將 Microsoft Azure 的強大功能(例如安全性、負載均衡、自動縮放和自動管理)添加到應用程序。還能利用其DevOps功能,例如來自Azure DevOps、GitHub、Docker 中心和其餘源的持續部署,以及包管理、過渡環境、自定義域和 SSL 證書。
Azure Dev Spaces:使用 Azure Dev Spaces,能夠測試並以迭代方式開發在 Azure Kubernetes 服務 (AKS) 中運行的整個微服務應用程序,而無需複製或模擬依賴項。 Azure Dev Spaces 減小了在共享 Azure Kubernetes 服務 (AKS) 羣集中與你的團隊協做以及直接在 AKS 中運行和調試容器的負擔,並下降了這些工做的複雜度。
阿里雲(www.aliyun.com)創立於2009年,是全球領先的雲計算及人工智能科技公司,爲200多個國家和地區的企業、開發者和政府機構提供服務。2017年1月阿里雲成爲奧運會全球指定雲服務商。2017年8月阿里巴巴財報數據顯示,阿里雲付費雲計算用戶超過100萬。阿里雲致力於以在線公共服務的方式,提供安全、可靠的計算和數據處理能力,讓計算和人工智能成爲普惠科技。阿里雲在全球18個地域開放了49個可用區,爲全球數十億用戶提供可靠的計算支持。此外,阿里云爲全球客戶部署200多個飛天數據中心,經過底層統一的飛天操做系統,爲客戶提供全球獨有的混合雲體驗。
飛天(Apsara)是由阿里雲自主研發、服務全球的超大規模通用計算操做系統。 它能夠將遍及全球的百萬級服務器連成一臺超級計算機,以在線公共服務的方式爲社會提供計算能力。 從PC互聯網到移動互聯網到萬物互聯網,互聯網成爲世界新的基礎設施。飛天但願解決人類計算的規模、效率和安全問題。飛天的革命性在於將雲計算的三個方向整合起來:提供足夠強大的計算能力,提供通用的計算能力,提供普惠的計算能力。飛天誕生於2009年2月,目前爲全球200多個國家和地區的創新創業企業、政府、機構等提供服務。
一樣,阿里雲對容器也提供了友好的支持:
容器服務 ACS
容器服務提供高性能可伸縮的容器應用管理服務,支持用Docker和Kubernetes進行容器化應用的生命週期管理,提供多種應用發佈方式和持續交付能力並支持微服務架構。容器服務簡化了容器管理集羣的搭建工做,整合了阿里雲虛擬化、存儲、網絡和安全能力,打造雲端最佳容器運行環境。
容器服務 ACK
容器服務 Kubernetes 版(簡稱 ACK)提供高性能可伸縮的容器應用管理能力,支持企業級 Kubernetes 容器化應用的全生命週期管理。容器服務 Kubernetes 版簡化集羣的搭建和擴容等工做,整合阿里雲虛擬化、存儲、網絡和安全能力,打造雲端最佳的 Kubernetes 容器化應用運行環境。
彈性容器實例 ECI
阿里雲彈性容器實例(Elastic Container Instance)是 Serverless 和容器化的彈性計算服務。用戶無需管理底層 ECS 服務器,只須要提供打包好的鏡像,便可運行容器,並僅爲容器實際運行消耗的資源付費。
容器鏡像服務 ACR
容器鏡像服務(Container Registry)提供安全的鏡像託管能力,穩定的國內外鏡像構建服務,便捷的鏡像受權功能,方便用戶進行鏡像全生命週期管理。容器鏡像服務簡化了Registry的搭建運維工做,支持多地域的鏡像託管,並聯合容器服務等雲產品,爲用戶打造雲上使用Docker的一體化體驗。
騰訊云爲騰訊傾力打造的雲計算品牌,以卓越科技能力助力各行各業數字化轉型,爲全球客戶提供領先的雲計算、大數據、人工智能服務,以及定製化行業解決方案。其基於QQ、微信、騰訊遊戲等海量業務的技術錘鍊,從基礎架構到精細化運營,從平臺實力到生態能力建設,騰訊雲將之整合並面向市場,使之可以爲企業和創業者提供集雲計算、雲數據、雲運營於一體的雲端服務體驗。
在容器這塊,騰訊雲提供了以下解決方案:
容器服務 TKE
騰訊雲容器服務(Tencent Kubernetes Engine ,TKE)基於原生 kubernetes 提供以容器爲核心的、高度可擴展的高性能容器管理服務。騰訊雲容器服務徹底兼容原生 kubernetes API ,擴展了騰訊雲的 CBS、CLB 等 kubernetes 插件,爲容器化的應用提供高效部署、資源調度、服務發現和動態伸縮等一系列完整功能,解決用戶開發、測試及運維過程的環境一致性問題,提升了大規模容器集羣管理的便捷性,幫助用戶下降成本,提升效率。容器服務提供無償使用,涉及的其餘雲產品另外單獨計費。
容器實例服務 CIS
容器實例服務(Container Instance Service , CIS)能夠幫用戶在雲上快捷、靈活的部署容器,讓用戶專一於構建程序和使用容器而非管理設備上。無需預購 CVM(雲服務器),就能夠在幾秒內啓動一批容器來執行任務。同時,開發者也能夠經過 kubernetes API 把已有kubernetes 集羣的 pod 調度到 CIS 上以處理突增業務。CIS 根據實際使用的資源計費,能夠幫用戶節約計算成本。使用 CIS 能夠極大下降用戶部署容器的門檻,下降用戶執行 batch 型任務或處理業務突增的成本。
從上面主流的雲服務中咱們能夠看到,沒有哪家雲廠商不支持Docker,一樣的,也沒有哪家雲廠商不支持Kubernetes!也就是說,Docker+ Kubernetes已經成爲雲計算的主流!
Kubernetes(簡稱k8s)誕生於谷歌,是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,k8s的目標是讓部署容器化的應用簡單而且高效,其提供了應用部署、規劃、更新、維護的機制。
k8s主要有如下特色:
可移植
支持公有云,私有云,混合雲,多重雲(multi-cloud) 。能夠將容器化的工做負載從本地開發計算機無縫移動到生產環境。在本地基礎結構以及公共雲和混合雲中,在不一樣環境中協調容器,保持一致性。
可擴展性
支持模塊化,插件化,可掛載,可組合。而且k8s的擴展和插件在社區開發者和各大公司的支持下高速增加,用戶能夠充分利用這些社區產品/服務以添加各類功能。
自動化和可伸縮性
支持自動部署,自動重啓,自動複製,自動伸縮/擴展,而且能夠定義複雜的容器化應用程序並將其部署在服務器羣集甚至多個羣集上——由於k8s會根據所需狀態優化資源。經過內置的自動縮放器,k8s可輕鬆地水平縮放應用程序,同時自動監視和維護容器的正常運行。
k8s構建於 Google 數十年經驗,一大半來源於 Google 生產環境規模的經驗。結合了社區最佳的想法和實踐,並且還在不斷地高速迭代和更新之中。
她銜着金鑰匙出生,一誕生就廣受歡迎,更是在2017,其戰勝了全部的競爭對手,贏得了雲計算的戰爭——主流的雲廠商基本上都紛紛放棄了本身造「輪子」的舉動,終止了各自的容器編排工具,加盟了k8s陣營,其中包括Red Hat、微軟、IBM、阿里、騰訊、華爲和甲骨文等。
k8s像風暴同樣席捲了應用開發領域,而且已成爲雲原生應用程序(架構、組件、部署和管理方式)的事實標準,大量的開發者和企業正在使用k8s建立由微服務和無服務器功能組成的現代架構。
容器是現代軟件交付的將來,而Kubernetes是編排容器的最佳方案(事實上的標準)。
Docker 和Kubernetes相輔相成,聯手打下了雲計算的「萬里江山」。Docker 爲打包和分發容器化應用程序提供了一個開放的標準,而 Kubernetes 則協調和管理經過 Docker 建立的分佈式容器化應用程序。換句話說,Kubernetes 提供了部署和運行經過Docker生成的應用程序所需的基礎結構。
在主流的雲服務,基於Docker+k8s的新型PaaS平臺具備敏捷部署、彈性伸縮、靈活調度、故障自動恢復等優點,充分知足業務擴展中的資源支持,所以在短短兩年以內,便從Docker Swarm、Cloud Foundry Diego、Kontena、Apache Mesos、Amazon ECS…等大量對手中脫穎而出,拿下了皇冠。
k8s和Docker的勝利意味着這是有史以來第一次,不管使用哪種雲平臺,研發人員均可以擁有徹底相同的計算環境。