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