天天看點

Docker+ Kubernetes已成為雲計算的主流(二十五)

前言              

最近正在抽時間編寫k8s的相關教程,很是費時,等相關内容初步完成後,再和大家分享。對于k8s,還是上雲更為簡單、穩定并且節省成本,是以我們需要對主流雲服務的容器服務進行了解,以便更好地應用于生産。

目錄

主流雲服務容器服務介紹 

  • 亞馬遜AWS 
  • 微軟Azure 
  • 阿裡雲 
  • 騰訊雲 

Docker+ Kubernetes已成為雲計算的主流 

  • 什麼是Kubernetes(k8s) 
  • Kubernetes正在塑造應用程式開發和管理的未來 

 主流雲服務容器服務介紹

亞馬遜AWS

Amazon Web Services (AWS) 是亞馬遜公司旗下雲計算服務平台,為全世界範圍内的客戶提供雲解決方案。AWS面向使用者提供包括彈性計算、存儲、資料庫、應用程式在内的一整套雲計算服務,幫助企業降低IT投入成本和維護成本。

那麼如何在AWS上運作Docker呢?AWS 同時為 Docker 開源解決方案和商業解決方案提供支援,并且可通過多種方式在 AWS 上運作容器:

  • Amazon Elastic Container Service (ECS),是一種高度可擴充的高性能容器編排服務,支援Docker容器,讓我們可以在 AWS 上輕松運作和擴充容器化應用程式,而不需要安裝和操作自己的容器編排軟體,不需要管理和擴充虛拟機叢集,也不需要在這些虛拟機上排程容器。其工作原理如下圖所示:
Docker+ Kubernetes已成為雲計算的主流(二十五)
  • AWS Fargate,适用于Amazon ECS的技術,可讓我們在生産環境中運作容器,而無需部署或管理基礎設施。
  • Amazon Elastic Container Service for Kubernetes (EKS) ,可以讓我們在 AWS 上運作 Kubernetes,而無需安裝和操作 Kubernetes 主節點。
  • Amazon Elastic Container Registry (ECR) ,是一個高度可用且安全的私有容器存儲庫,可以讓我們能夠輕松地存儲和管理Docker 容器鏡像,并對靜态鏡像進行加密和壓縮,以便快速提取和保護這些鏡像。
  • AWS Batch,可以讓Docker 容器運作高度可擴充的批處理工作負載。

微軟Azure

Microsoft Azure 是一個開放而靈活的企業級雲計算平台。通過 IaaS + PaaS 幫助使用者加快發展步伐,提高工作效率并節省營運成本。

Azure是一種靈活和支援互操作的平台,它可以被用來建立雲中運作的應用或者通過基于雲的特性來加強現有應用。它開放式的架構給開發者提供了Web應用、互聯裝置的應用、個人電腦、伺服器、或者提供最優線上複雜解決方案的選擇。

在容器這塊,Azure同樣的提供了衆多解決方案:

Docker+ Kubernetes已成為雲計算的主流(二十五)

下面我們側重介紹下以下服務:

  • Azure 容器執行個體:Azure 容器執行個體提供了在 Azure 中運作容器的最簡捷方式,既無需預配任何虛拟機,也不必采用更進階的服務。
  • Azure Service Fabric:Azure Service Fabric 是一款分布式系統平台,可友善使用者輕松打包、部署和管理可縮放的可靠微服務和容器。 開發人員和管理者不需解決複雜的基礎結構問題,隻需專注于實作苛刻的任務關鍵型工作負荷,即那些可縮放、可靠且易于管理的工作負荷。總之,Azure Service Fabric 旨在解決建構和運作服務方面的難題,并有效地利用基礎結構資源,使團隊可以使用微服務方法來解決業務問題。并且,其與服務生成方式無關,可以使用任意技術。不過,它确實提供内置程式設計 API,以便使用者可以更輕松地生成微服務。
Docker+ Kubernetes已成為雲計算的主流(二十五)
  • 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多個國家和地區的創新創業企業、政府、機構等提供服務。

Docker+ Kubernetes已成為雲計算的主流(二十五)

同樣,阿裡雲對容器也提供了友好的支援:

  • 容器服務 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 插件,為容器化的應用提供高效部署、資源排程、服務發現和動态伸縮等一系列完整功能,解決使用者開發、測試及運維過程的環境一緻性問題,提高了大規模容器叢集管理的便捷性,幫助使用者降低成本,提高效率。容器服務提供免費使用,涉及的其他雲産品另外單獨計費。

Docker+ Kubernetes已成為雲計算的主流(二十五)
  • 容器執行個體服務 CIS

容器執行個體服務(Container Instance Service , CIS)可以幫使用者在雲上快捷、靈活的部署容器,讓使用者專注于建構程式和使用容器而非管理裝置上。無需預購 CVM(雲伺服器),就可以在幾秒内啟動一批容器來執行任務。同時,開發者也可以通過 kubernetes API 把已有kubernetes 叢集的 pod 排程到 CIS 上以處理突增業務。CIS 根據實際使用的資源計費,可以幫使用者節約計算成本。使用 CIS 可以極大降低使用者部署容器的門檻,降低使用者執行 batch 型任務或處理業務突增的成本。

 Docker+ Kubernetes已成為雲計算的主流

從上面主流的雲服務中我們可以看到,沒有哪家雲廠商不支援Docker,同樣的,也沒有哪家雲廠商不支援Kubernetes!也就是說,Docker+ Kubernetes已經成為雲計算的主流!

什麼是Kubernetes(k8s)

Kubernetes(簡稱k8s)誕生于谷歌,是一個開源的,用于管理雲平台中多個主機上的容器化的應用,k8s的目标是讓部署容器化的應用簡單并且高效,其提供了應用部署、規劃、更新、維護的機制。

k8s主要有以下特點:

  • 可移植

支援公有雲,私有雲,混合雲,多重雲(multi-cloud) 。可以将容器化的工作負載從本地開發計算機無縫移動到生産環境。在本地基礎結構以及公共雲和混合雲中,在不同環境中協調容器,保持一緻性。

  • 可擴充性

支援子產品化,插件化,可挂載,可組合。并且k8s的擴充和插件在社群開發者和各大公司的支援下高速增長,使用者可以充分利用這些社群産品/服務以添加各種功能。

  • 自動化和可伸縮性

支援自動部署,自動重新開機,自動複制,自動伸縮/擴充,并且可以定義複雜的容器化應用程式并将其部署在伺服器群集甚至多個群集上——因為k8s會根據所需狀态優化資源。通過内置的自動縮放器,k8s可輕松地水準縮放應用程式,同時自動監視和維護容器的正常運作。

Kubernetes正在塑造應用程式開發和管理的未來

k8s建構于 Google 數十年經驗,一大半來源于 Google 生産環境規模的經驗。結合了社群最佳的想法和實踐,而且還在不斷地高速疊代和更新之中。

她銜着金鑰匙出生,一誕生就廣受歡迎,更是在2017,其打敗了所有的競争對手,赢得了雲計算的戰争——主流的雲廠商基本上都紛紛放棄了自己造“輪子”的舉動,終止了各自的容器編排工具,加盟了k8s陣營,其中包括Red Hat、微軟、IBM、阿裡、騰訊、華為和甲骨文等。

k8s像風暴一樣席卷了應用開發領域,并且已成為雲原生應用程式(架構、元件、部署和管理方式)的事實标準,大量的開發者和企業正在使用k8s建立由微服務和無伺服器功能組成的現代架構。

Docker+ Kubernetes已成為雲計算的主流

容器是現代軟體傳遞的未來,而Kubernetes是編排容器的最佳方案(事實上的标準)。

Docker 和Kubernetes相輔相成,聯手打下了雲計算的“萬裡江山”。Docker 為打包和分發容器化應用程式提供了一個開放的标準,而 Kubernetes 則協調和管理通過 Docker 建立的分布式容器化應用程式。換句話說,Kubernetes 提供了部署和運作通過Docker生成的應用程式所需的基礎結構。

在主流的雲服務,基于Docker+k8s的新型PaaS平台具有靈活部署、彈性伸縮、靈活排程、故障自動恢複等優勢,充分滿足業務擴充中的資源支援,是以在短短兩年之内,便從Docker Swarm、Cloud Foundry Diego、Kontena、Apache Mesos、Amazon ECS…等大量對手中脫穎而出,拿下了皇冠。

k8s和Docker的勝利意味着這是有史以來第一次,無論使用哪一種雲平台,研發人員都可以擁有完全相同的計算環境。

往期内容連結

Docker最全教程——從理論到實戰(一)

Docker最全教程——從理論到實戰(二)

Docker最全教程——從理論到實戰(三)

Docker最全教程——從理論到實戰(四)

Docker最全教程——從理論到實戰(五)

Docker最全教程——從理論到實戰(六)

Docker最全教程——從理論到實戰(七)

Docker最全教程——從理論到實戰(八)

Docker最全教程之使用Tencent Hub來完成CI(九)

Docker最全教程——資料庫容器化(十)

Docker最全教程——資料庫容器化之持久儲存資料(十一)

Docker最全教程——MongoDB容器化(十二)

Docker最全教程——Redis容器化以及排行榜實戰(十三)

Docker最全教程之Ubuntu下安裝Docker(十四)

Docker最全教程之樹莓派和Docker(十五)

Docker最全教程之使用TeamCity來完成内部CI、CD流程(十六)

Docker最全教程之使用Docker搭建Java開發環境(十七)

Docker最全教程之Go實戰,牆裂推薦(十八)

Docker最全教程之使用.NET Core推送釘釘消息(十九)

Docker最全教程之使用 Visual Studio Code玩轉Docker(二十)

Docker最全教程之Python爬網實戰(二十一)

Docker最全教程之使用PHP搭建個人部落格站點(二十二)

Docker最全教程之使用Node.js搭建團隊技術文檔站(二十三)

Docker最全教程之MySQL容器化 (二十四)

作者:雪雁

出處:http://www.cnblogs.com/codelove/

溝通管道:程式設計交流群<85318032> 産品交流群<897857351>

如果喜歡作者的文章,請關注【麥扣聊技術】訂閱号以便第一時間獲得最新内容。本文版權歸作者和湖南心萊資訊科技有限公司共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

靜聽鳥語花香,漫賞雲卷雲舒。

繼續閱讀