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