前言

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


目錄

主流雲服務容器服務介紹

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

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

  • 什麼是Kubernetes(k8s)
  • Kubernetes正在塑造應用程序開發和管理的未來
  • Docker+ 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已成為雲計算的主流(二十六)

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的勝利意味著這是有史以來第一次,無論使用哪一種雲平臺,研發人員都可以擁有完全相同的計算環境。

相關推薦

推薦中...