0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度揭秘阿里云Serverless Kubernetes

馬哥Linux運(yùn)維 ? 來(lái)源:InfoQ ? 作者:InfoQ ? 2022-03-24 10:45 ? 次閱讀

伴隨著云原生的發(fā)展,從早先的單機(jī)版 Docker 到 Kubernetes 的編排領(lǐng)域的一統(tǒng)江湖,再到云上托管 Kubernetes,技術(shù)風(fēng)雨變化。今天我們就沿著歷史的脈絡(luò),一起看一下 Serverless Kubernetes 的發(fā)展史。

故事,從 Docker 講起

故事雖然從 Docker 講起,但我們不能忽視了 IaaS 先輩們?cè)谇懊娴呐G斬棘,以及云計(jì)算大佬們很早就確定的云計(jì)算發(fā)展規(guī)劃。

在十幾年前,先輩們從按照用戶(hù)使用(云平臺(tái)提供能力)維度,將云分為三層:

IaaS:Infrastructure as a Service,基礎(chǔ)設(shè)施即服務(wù),提供虛擬機(jī)或者其他基礎(chǔ)資源作為服務(wù)提供給用戶(hù);

PaaS:Platform as a Service,平臺(tái)即服務(wù),將平臺(tái)作為服務(wù)提供給用戶(hù),譬如在平臺(tái)中可以隨用隨取各種中間件服務(wù);

SaaS:Software as a Service,軟件即服務(wù),將應(yīng)用作為服務(wù)提供給用戶(hù),譬如郵件服務(wù)。

如下圖所示,從 IaaS 到 PaaS,用戶(hù)(開(kāi)發(fā)和運(yùn)維)越來(lái)越少地感知基礎(chǔ)資源,更加關(guān)注到業(yè)務(wù)當(dāng)中。

1114d890-a484-11ec-952b-dac502259ad0.png

讓專(zhuān)業(yè)的人做專(zhuān)業(yè)的事情,從而發(fā)揮整體的最大效率。譬如一個(gè)初創(chuàng)的互聯(lián)網(wǎng)買(mǎi)菜公司,沒(méi)有必要自己去建機(jī)房、采購(gòu)硬件、配置網(wǎng)絡(luò)存儲(chǔ)以及安裝操作系統(tǒng)等與業(yè)務(wù)無(wú)關(guān)的事情,更應(yīng)該把精力放到業(yè)務(wù)的開(kāi)發(fā)和運(yùn)營(yíng)上面。

經(jīng)過(guò)十幾年的發(fā)展,IaaS 已經(jīng)比較成熟,各種基礎(chǔ)資源,如 ECS、VPC、EBS 等已經(jīng)深入人心,但 PaaS 的發(fā)展卻非常緩慢。

早在 2008 年,Google 就推出了 App Engine 服務(wù),想打造一個(gè)開(kāi)發(fā)平臺(tái),讓開(kāi)發(fā)者只需要編寫(xiě)業(yè)務(wù)代碼就可以在 App Engine 上面運(yùn)行。這個(gè)思想過(guò)于超前,開(kāi)發(fā)者還不能完全接受。除了公有云以外,開(kāi)源社區(qū) PaaS 平臺(tái)也在左突右沖。其中,IBM 的 Cloud Foundry 和 Redhat 的 OpenShift 最為出名,他們都希望提供一個(gè)應(yīng)用快速發(fā)布的平臺(tái),但也都是不溫不火,反而因?yàn)楦鞣N兼容問(wèn)題越來(lái)越難使用。

直到 2013 年 Docker 的誕生,一個(gè)對(duì)開(kāi)發(fā)者充分友好、一個(gè)命令可以拉起一個(gè)服務(wù),并極致簡(jiǎn)單的操作方式,讓 Docker 一下成為社區(qū)最受歡迎的開(kāi)源項(xiàng)目之一。

Docker 的優(yōu)勢(shì)主要體現(xiàn)在:Docker 鏡像將應(yīng)該依賴(lài)的環(huán)境和應(yīng)用打包成一個(gè)壓縮文件,這個(gè)文件可以在任何安裝了 Docker 的機(jī)器上面直接運(yùn)行,解決了應(yīng)用從開(kāi)發(fā)、測(cè)試到生產(chǎn)各個(gè)環(huán)節(jié)部署問(wèn)題,并且能夠保障環(huán)境的一致性。

Docker 的成功在于極致的簡(jiǎn)單操作而非技術(shù)的創(chuàng)新,像 cgroup、namespace 這些技術(shù)早就加入內(nèi)核特性了。所以,Cloud Foundry 早先并沒(méi)有把 Docker 看做競(jìng)爭(zhēng)對(duì)手,因?yàn)檫@些技術(shù)早就在 Cloud Foundry 上使用了。反而,Dcoker 鏡像這個(gè)無(wú)心插柳的功能,讓 Docker 真正實(shí)現(xiàn)了“Build once, Run anywhere”。

Kubernetes 確定江湖地位

最初的 Docker 是單機(jī)版本,面對(duì)大規(guī)模部署的場(chǎng)景時(shí)需要一套管理平臺(tái),就像 OpenStack 管理 VM 一樣。

容器管理平臺(tái)初期也是百家爭(zhēng)鳴,譬如 Mesos、Swarm 等,但它們都沒(méi)有脫離 IaaS 固有思維,還是停留在把容器當(dāng)做虛擬機(jī)管理。直到 Kubernetes 的出現(xiàn),才真正開(kāi)始一統(tǒng)江湖。這里除了 Google 的背書(shū)以及脫胎于 Borg 的成熟架構(gòu)以外,更重要的是 Kubernetes 在誕生之初就已經(jīng)想好了容器如何管理( Replica set)以及如何對(duì)外提供服務(wù)(Service)。

其中,最令人惋惜的就是 Docker 公司自家的管理系統(tǒng) Swarm。當(dāng)時(shí)的 Docker 雖然已經(jīng)斬落頭角,但 Docker 公司本身卻沒(méi)有實(shí)現(xiàn)盈利。于是公司推出了 Swarm 企業(yè)版,雖然 Swarm 后期也引入了很多 Kubernetes 的概念,但無(wú)奈大勢(shì)已去,云原生的生態(tài)已經(jīng)圍繞 Kubernetes 蓬勃發(fā)展。

1141fd3e-a484-11ec-952b-dac502259ad0.png

Kubernetes 雖然由 Google 主導(dǎo),但卻保持了足夠的開(kāi)放性,將資源的管理抽象出接口規(guī)范,譬如針對(duì)容器運(yùn)行時(shí)的 CRI、針對(duì)網(wǎng)絡(luò)的 CNI、針對(duì)存儲(chǔ)的 CSI,以及設(shè)備管理 Device Plugins 和各種準(zhǔn)入控制、CRD 等。Kubernetes 正逐漸演變成云操作系統(tǒng),各種云原生組件就是運(yùn)行在這個(gè)操作系統(tǒng)之上的系統(tǒng)組件。

公有云托管 Kubernetes

雖然 Kubernetes 確定了領(lǐng)導(dǎo)地位,但 Kubernetes 的運(yùn)維卻并非那么容易。在這種背景下,公有云嘗試紛紛推出了云上 Kubernetes 托管服務(wù),比如國(guó)內(nèi)的阿里云在 2017 年就推出了托管 Master 的方案:ACK(Alibaba Cloud Container Service for Kubernetes)。

在 ACK 中,Kubernetes 管理組件的安裝和運(yùn)維托管給公有云,使用 ECS 或者裸金屬作為 Kubernetes 的計(jì)算節(jié)點(diǎn),極大地減少了 Kubernetes 用戶(hù)的使用成本。用戶(hù)從云平臺(tái)獲取一個(gè) kubeconfig 文件便可以直接通過(guò) kubectl 命令行或者 Restful API 管理集群。

1156fd06-a484-11ec-952b-dac502259ad0.png

如果需要擴(kuò)容集群容量,只需要調(diào)整 ECS 個(gè)數(shù),新創(chuàng)建的 ECS 會(huì)自動(dòng)注冊(cè)到 Kubernetes Master。不僅如此,ACK 還支持一鍵升級(jí)集群版本和各種插件。ACK 將繁雜的運(yùn)維工作轉(zhuǎn)移到云上,并且借助云的彈性能力,可以做到分鐘級(jí)別的資源擴(kuò)展。

將免運(yùn)維和彈性進(jìn)行到底

公有云相對(duì)私有云更加關(guān)注成本,因?yàn)樵谒接性浦?,用?hù)的基礎(chǔ)設(shè)施成本基本是固定的,用戶(hù)不可能下線一個(gè)服務(wù)后去機(jī)房停一臺(tái)服務(wù)器。與之相反,公有云則提供了按量付費(fèi)的模式。

如果集群里面運(yùn)行任務(wù)大部分都是 long run 并且資源需求是固定的任務(wù),使用 ACK 沒(méi)有問(wèn)題,但如果是大量 job 類(lèi)型的任務(wù)或者存在突發(fā)流量的情況,ACK 這種臨時(shí)擴(kuò)容虛擬機(jī)在虛擬機(jī)上啟用容器方案在彈性方面有所欠缺。

比如某在線教育公司,每天晚上 7-9 點(diǎn)上課高峰期會(huì)臨時(shí)擴(kuò)容幾萬(wàn)個(gè) Pod,如果使用 ACK 就需要預(yù)先評(píng)估這些 Pod 的容量,然后再折算成 ECS 的算力,提前購(gòu)買(mǎi)對(duì)應(yīng)數(shù)量的計(jì)算節(jié)點(diǎn)加入到 Kubernetes 里面,并且還需要在 9 點(diǎn)之后將這些 ECS 釋放掉,操作非常繁瑣。

那么,有沒(méi)有一種既能兼容 Kubernetes 使用方式,又能夠秒級(jí)啟動(dòng) Pod,并且按照 Pod 維度計(jì)費(fèi)(ACK 按照 Node 維度計(jì)費(fèi))的方案呢?

AWS 率先提出 Fargate,可以在沒(méi)有真實(shí) Node 的情況下,以 Pod 的維度加入到 Kubernetes 集群。阿里云在 2018 年也推出了類(lèi)似的產(chǎn)品 ECI(Elastic Container Instance),每個(gè) ECI 就是一個(gè) Pod,這不過(guò)這個(gè) Pod 是托管在云上的。

Kubernetes 使用 ECI 有兩種方式 :一種是 ASK(Alibaba Serverless Kubernetes),另一種是 ACK + Virtual Node 的方案。在 ASK 中,計(jì)算節(jié)點(diǎn)完全變成了 Virtaul Node。Virtaul Node 是一個(gè)虛擬的無(wú)限容量的計(jì)算節(jié)點(diǎn),負(fù)責(zé) ECI 生命周期管理。Virtaul Node 會(huì)注冊(cè)到 Kubernetes 里面,對(duì)于 Kubernetes 來(lái)說(shuō),它就是一個(gè)普通的 Node 節(jié)點(diǎn)。用戶(hù)只需要提交原生的 Kubernetes Yaml 便可以創(chuàng)建出 Pod,完全兼容 Kubernetes 的使用。

118434a6-a484-11ec-952b-dac502259ad0.png

Virtaul Node 還可以與普通 ACK 節(jié)點(diǎn)混用,用戶(hù)可以將 long run 的任務(wù)調(diào)度到 ECS 節(jié)點(diǎn)上運(yùn)行,然后利用 ECI 的快速啟動(dòng)(10s 內(nèi)拉起容器),將突發(fā)或者短周期任務(wù)調(diào)度到 ECI 上面,從而達(dá)到成本最優(yōu)。

11ae2bb2-a484-11ec-952b-dac502259ad0.png

目前 ECI 已經(jīng)被很多互聯(lián)網(wǎng)以及人工智能公司所采用。在后續(xù)的文章中,我們將逐步分享幾個(gè)典型用戶(hù)在遷移 ECI 過(guò)程中遇到的技術(shù)問(wèn)題和挑戰(zhàn)。

總結(jié)一下,我們今天從技術(shù)發(fā)展的角度回顧了容器和 k8s 的發(fā)展歷程,可以看到公共技術(shù)正逐漸沉淀到底層,無(wú)論是 k8s 還是 ServiceMesh,都在分別嘗試將服務(wù)管理和流量管理下沉到基礎(chǔ)設(shè)施中。但這些組件本身也存在管理成本,所以演化出云上托管。未來(lái),隨著技術(shù)的下沉,云計(jì)算提供的能力將不斷上移、提供更加全面和豐富能力,讓開(kāi)發(fā)專(zhuān)注在業(yè)務(wù)之上。

本文節(jié)選自阿里云技術(shù)專(zhuān)家陳曉宇的《深度揭秘阿里云 Serverless Kubernetes》系列專(zhuān)題。本專(zhuān)欄將主要圍繞如何在 Serverless Kubernetes 場(chǎng)景中實(shí)現(xiàn)秒級(jí)擴(kuò)容,以及在大規(guī)模并發(fā)啟動(dòng)中遇到的各種技術(shù)挑戰(zhàn)、難點(diǎn)以及解決方案,系統(tǒng)地揭秘阿里云 Serverless Kubernetes 的發(fā)展、架構(gòu)以及核心技術(shù)。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 阿里云
    +關(guān)注

    關(guān)注

    3

    文章

    928

    瀏覽量

    42873
  • serverless
    +關(guān)注

    關(guān)注

    0

    文章

    65

    瀏覽量

    4488

原文標(biāo)題:深度揭秘阿里云 Serverless Kubernetes

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    阿里Kubernetes集群聯(lián)邦

    摘要: kubernetes集群讓您能夠方便的部署管理運(yùn)維容器化的應(yīng)用。但是實(shí)際情況中經(jīng)常遇到的一些問(wèn)題,就是單個(gè)集群通常無(wú)法跨單個(gè)廠商的多個(gè)Region,更不用說(shuō)支持跨跨域不同的廠商。這樣會(huì)給
    發(fā)表于 03-12 17:10

    阿里與WPS深度合作,開(kāi)放數(shù)據(jù)處理生態(tài)

    摘要: 在3月28日舉行的2018云棲大會(huì)-深圳峰會(huì)上,阿里與金山辦公達(dá)成深度合作,WPS在線預(yù)覽與格式轉(zhuǎn)換能力落地阿里。標(biāo)志著
    發(fā)表于 04-18 14:11

    阿里容器Kubernetes監(jiān)控(一) - 資源監(jiān)控

    的概念和物理概念無(wú)法在監(jiān)控?cái)?shù)據(jù)、生命周期上面實(shí)現(xiàn)統(tǒng)一。阿里容器服務(wù)Kubernetes監(jiān)控進(jìn)行了深度集成,用應(yīng)用分組來(lái)抽象邏輯概念,今
    發(fā)表于 04-23 14:35

    阿里宣布推出Serverless Kubernetes服務(wù) 30秒即可完成應(yīng)用部署

    摘要: 阿里宣布推出Serverless Kubernetes服務(wù),容器服務(wù)新增Serverless形態(tài)。5月2日,
    發(fā)表于 05-03 15:38

    Cloud Foundry平臺(tái)中國(guó)唯一供應(yīng)商,阿里持續(xù)鏈接Cloud Foundry/Kubernetes生態(tài)

    Foundry Container Runtime(CFCR)的負(fù)載,其中后者基于Kubernetes和BOSH技術(shù)、是支持容器架構(gòu)的平臺(tái)核心組件。阿里的CPI適配研發(fā)項(xiàng)目代碼
    發(fā)表于 05-10 09:37

    阿里Kubernetes容器服務(wù)上打造TensorFlow實(shí)驗(yàn)室

    的定義和訓(xùn)練的收斂趨勢(shì)??偨Y(jié)我們可以利用阿里Kubernetes容器服務(wù),輕松的搭建在云端搭建TensorFlow的環(huán)境,運(yùn)行深度學(xué)習(xí)的實(shí)驗(yàn)室,并且利用TensorBoard追蹤訓(xùn)練
    發(fā)表于 05-10 10:24

    持續(xù)優(yōu)化云原生體驗(yàn),阿里Serverless容器與多云上的探索

    摘要: 深度解讀阿里Serverless Kubernetes, 介紹對(duì)Open Service Broker API標(biāo)準(zhǔn)的支持.近日,
    發(fā)表于 05-15 23:22

    阿里E-HPC聯(lián)合安世亞太、聯(lián)科集團(tuán)共建超算生態(tài)

    、擴(kuò)展性上都有非常大的優(yōu)勢(shì)。5月23日,2018云棲大會(huì)武漢峰會(huì),阿里高級(jí)技術(shù)專(zhuān)家劉崢和張維,對(duì)彈性計(jì)算最新上線的 serverless (無(wú)服務(wù)器化)計(jì)算技術(shù)Bazaar及基于該技術(shù)的容器服務(wù)產(chǎn)品
    發(fā)表于 05-28 18:36

    再次升級(jí)!阿里Kubernetes日志解決方案

    摘要: 今天阿里Kubernetes日志解決方案再次升級(jí),為您帶來(lái)以下改進(jìn): 1、極致部署體驗(yàn):只需一條命令一個(gè)參數(shù)即可完成整個(gè)K8S集群的日志解決方案部署。 2、支持更多配置方式:除原生控制臺(tái)
    發(fā)表于 05-28 19:08

    Bazaar:阿里Serverless計(jì)算服務(wù)探秘

    為運(yùn)行代碼的基礎(chǔ)的。Bazaar:阿里Serverless計(jì)算服務(wù)探秘 作者:Bazaar項(xiàng)目組1. 什么是 ServerlessServer
    發(fā)表于 06-08 15:35

    解鎖高性能計(jì)算與區(qū)塊鏈應(yīng)用,阿里Kubernetes服務(wù)召喚神龍

    對(duì)于高性能計(jì)算、網(wǎng)絡(luò)類(lèi)型應(yīng)用選擇彈性裸金屬服務(wù)器節(jié)點(diǎn),對(duì)深度學(xué)習(xí)應(yīng)用選擇GPU節(jié)點(diǎn)。對(duì)GPU節(jié)點(diǎn),阿里Kubernetes服務(wù)會(huì)自動(dòng)開(kāi)啟相應(yīng)調(diào)度能力。在對(duì)集群資源出現(xiàn)變化時(shí),可以動(dòng)態(tài)
    發(fā)表于 06-13 15:52

    阿里在LC3大會(huì)上透露未來(lái)要做的兩件事

    容器服務(wù),可以支持大客戶(hù)在高峰突襲時(shí)實(shí)現(xiàn)應(yīng)用層面極速擴(kuò)容,而如今的Serverless Kubernetes容器服務(wù)底層同樣也是基于阿里彈性計(jì)算ECS構(gòu)建,提供高彈性強(qiáng)隔離的計(jì)算能力
    發(fā)表于 07-02 15:27

    Serverless適用何種場(chǎng)景?會(huì)帶來(lái)哪些沖擊?

    。這些程序經(jīng)常是移動(dòng)端 APP 或者是最近幾年比較火熱的單頁(yè) Web 應(yīng)用。這些應(yīng)用可以完全基于的服務(wù)進(jìn)行構(gòu)建,比如 AWS 的 S3 和 DynamoDB 或者是阿里的 OSS ...
    發(fā)表于 07-12 07:41

    全球公測(cè),阿里Serverless Kubernetes 更快、更強(qiáng)、更省心

    摘要:?Serverless Kubernetes全球公測(cè)進(jìn)行時(shí)!2018年8月,阿里Serverless
    發(fā)表于 08-17 17:45 ?379次閱讀

    阿里宣布核心產(chǎn)品全面 Serverless

    11月3日,2022·云棲大會(huì)上,阿里智能總裁張建鋒表示,以為核心的新型計(jì)算體系正在形成,軟件研發(fā)范式正在發(fā)生新的變革,Serverless是其中最重要的趨勢(shì)之一,
    發(fā)表于 11-03 11:30 ?462次閱讀
    <b class='flag-5'>阿里</b><b class='flag-5'>云</b>宣布核心產(chǎn)品全面 <b class='flag-5'>Serverless</b> 化