TMT观察网_独特视角观察TMT行业

劍指Kubernetes 揭秘騰訊云的PaaS技術選型策略互聯網+

觀察君 2018-03-26 16:00
分享到:
導讀

騰訊云容器服務應用編排 Kubernetes原生的方案中,控制面節點中駐留的是用戶 Kubernetes 集群的 Master 相關容器和騰訊云容器服務的服務管理服務節點,騰訊云將用戶集群 Master 節點的組件全部使用容器的方式部署在一個 Kubernetes 集群里進行管理。

Kubernetes 很火,一大批互聯網公司早已領先一步,搭建起專有的 PaaS平臺,傳統企業們看到的 Kubernetes的趨勢,亦不甘落后,在試水的道上一路狂奔……

雖然,Kubernetes很火,并不代表可以“上手即用”,基于 Kubernetes的容器編排也不是簡單的“拿來主義”。在容器圈,除了 Kubernetes,還存在著 Mesos、Swarm等分屬不同陣營的容器集群管理工具,以及基于這些工具的多個容器云提供商。

騰訊云在 2016年底決定開發容器產品,隨后組建容器技術團隊并進行技術選型,通過對不同編排工具的分析對比,最終選擇 Kubernetes 作為容器編排引擎,并且迅速在 2017 年初推出容器解決方案 CCS,為用戶提供托管 Kubernetes 的一站式服務。

隨著業務量的增加,騰訊云容器團隊基于 Kubernetes,不停的增加和完善容器監控、日志處理、容器 Registry 等關鍵特性,來保障用戶業務的平穩運行。在整個 2017 年的運營過程中,管理了數千個集群、數十萬容器,以及業務高峰期的成倍擴容。

那么,在 16年底,Kubernetes并未大熱時,騰訊云為何偏偏在諸多主流的編排引擎當中選擇 Kubernetes?騰訊云 Kubernetes架構和資源調度原理是什么樣的?在用戶托管服務中,又為何采用 Kubernetes來托管用戶 Kubernetes集群的 Master?作為國內最大基于 Kubernetes的容器服務提供商,騰訊云在 Kubernetes上還有哪些應用實踐…… 本文將帶著這些疑問,為你一一揭開騰訊云基于 Kubernetes的 PaaS平臺神秘面紗。

2為何選用 Kubernetes?

容器技術無疑是近幾年最熱門的技術之一,很多公司或者行業已經把容器作為自己的測試環境以及正式環境,正式上跑一些業務。騰訊緊隨外界技術發展的潮流,在三年之前,騰訊云的基礎平臺部門開始容器方面的技術實踐,經過三年時間的積累,騰訊云目前已經有很多業務跑在容器平臺上。

在最開始的容器產品技術選型階段,騰訊云也曾對比過 Kubernetes、Docker Swarm、 Mesos:

Kubernetes的核心是如何解決自動部署,擴展和管理容器化(containerized)應用程序。它支持資源調度、服務發現、服務編排、資源邏輯隔離、服務自愈、安全配置管理等。

Mesos是一個分布式內核,核心理念是數據中心操作系統(DCOS),為了解決 IaaS層的網絡、計算和存儲問題,所以 Mesos的核心是解決物理資源層的問題。它同時支持 Marathon、 Kubernetes 和 Swarm 等多種框架,Mesosphere 也是 Kubernetes 生態的一員。

Swarm:從 Docker1.12版本開始,Swarm隨 Docker一起默認安裝發布,也由于隨 Docker引擎一起發布,無需額外安裝,配置簡單。它支持服務注冊、服務發現,內置 Overlay Network以及 Load Balancer。Swarm是與 Docker CLI非常類似的操作命令,對熟悉 Docker的人非常容易上手學習。

綜上來看,每一種工具都有自己的核心理念。

但是,騰訊云最終選擇了 Kubernetes, 現在看來這個選擇無比正確。 在技術選型上,除了編排引擎自身的核心特性,騰訊云也主要從以下幾個方面進行了評估。

注:表格里的材料是當初選型時調研的情況,上述編排工具現在的特性已經有了新變化。

從整個行業來看,業界的技術架構正在大規模向微服務遷移,容器技術天生就是部署微服務的最佳方式,騰訊云擁有海量的業務架構,而 Kubernetes 的使用讓部署大規模的微服務更加容易,這也是騰訊云選擇 Kubernetes的主要原因,另外騰訊云選擇 Kubernetes還考慮了其它優勢,如:

出身名門 Google,其開發和設計受到了 Google著名的 Borg系統的影響;

GitHub上關注 Kubernetes項目和提交代碼的開發者非常多,社區活躍,如果遇到問題,通過社區咨詢和解決 問題速度也會比較快。

Kubernetes可以很好的支持有狀態的服務。

Kubernetes 是近 3 年來社區熱度最高的項目,Linux 基金會也成立了 CNCF來加強社區運作,不僅對 Kubernetes 進行管理,還對相關項目進行有序的運作,保證了整個技術棧穩定和蓬勃的發展。Kubernetes技術相比Docker swarm和Mesos 學習難度更高,騰訊云為此提供了免費容器實驗室, 幫助開發者快速入門學習kubernetes,感性趣的讀者可以點擊【閱讀原文】了解詳情。

3騰訊云目前有哪些容器解決方案?

騰訊云 PaaS平臺發展至今已有了豐富的容器解決方案, 包括但不限于:騰訊云 Kubernetes托管服務、單容器實例服務、TencentHub服務、Flow Engine服務、CCI持續集成服務等,以及基于 Kuberentes 的 TensorFlow 和 Spark 解決方案,幫助用戶在使用容器解決方案的同時進行數據計算和模型訓練。

騰訊云 Kubernetes服務:基于原生 kubernetes 提供以容器為核心的、高度可擴展的高性能容器管理服務。騰訊云容器服務完全兼容原生 kubernetes API ,擴展了騰訊云的 CBS、CLB 等 kubernetes 插件,為容器化的應用提供高效部署、資源調度、服務發現和動態伸縮等一系列完整功能,解決用戶開發、測試及運維過程的環境一致性問題,提高大規模容器集群管理的便捷性,幫助用戶降低成本,提高效率。

單容器實例服務:基于 Clear Linux 技術提供的單容器實例解決方案,通過單容器實例服務享受容器的便捷、虛擬機級別的隔離, 像使用虛擬機一樣如絲般順滑的來使用容器,非常試用于通過容器來進行批量計算、通過容器來快速部署個人站點。不依賴 VM的容器在配置和使用時間上更靈活,提供了一種更低成本的計算資源。目前,但容器實例服務正在內測階段。

TencentHub服務:在云原生應用盛行的今天,僅僅提供 Git 服務或 Container 鏡像存儲的 Hub 已經無法滿足用戶在日常開發和運維過程中的種種需求。構造支持多種文件格式、容器鏡像格式、編排方案的云原生 Hub 能更好的降低用戶的架構向云原生遷移。 TencentHub不僅僅提供一個私有鏡像的存儲,同時提供了 Helm包、二進制文件等文件存儲。

DevOps 產品:DevOps 任務容器化、資源及執行全托管至 Kubernetes、提供給用戶一個全生命周期的 Workflow,完成容器構建、測試和部署等 DevOps 流程,支持用戶通過界面拖拽定義 Workflow ,支持 Workflow 定義文件導入等功能,和騰訊云已有基礎服務和 DevOps 服務打通。核心引擎開源到容器社區,組件庫作為配套功能同時開源。

4騰訊云是如何基于 K8S做容器集群的管理?騰訊云容器服務應用編排

Kubernetes原生的方案中,基于服務粒度對系統組件進行管理,支持服務注冊發現和路由管理。對于一個服務提供多種不同的資源描述類型,比較常用的有 Deployment、Job、CronJob、Stateful、Daemonset。

騰訊云容器服務參考社區 Helm的實現形式,在容器服務中實現了完整的應用編排管理功能。騰訊云容器服務編排服務主要分為配置管理,應用模板管理,基于應用的服務組管理幾個主要部分。

配置管理

配置管理是指將應用中常變的值以變量的形式替代,配置項支持多版本,方便用戶進行更新和回滾應用。關于配置管理的實現,騰訊云支持三種實現方式:

Helm的模板文件支持變量渲染

Kubernetes的 ConfigMap中環境變量方式

Kubernetes的 ConfigMap通過 Volume方式進行數據填充

其主要作用包括:

通過提取出多個環境中不同的部分,支持同一套系統在多個環境中部署。

提取出服務中經常變更的部分,實現服務的靈活變更。并且通過配置文件的版本管理,可以很好的對變更進行追溯和回滾。

通過配置項,可以隱含的實現多個服務直接依賴關系的管理。例如:服務 A需要訪問服務 B的,一般情況下依賴于服務 B的名稱。這種情況下,將服務 B的名稱提取成為一個配置項,而將配置項傳遞給服務 A。這樣在不同環境中,服務 B名稱的改變,服務 A能自動感知,不需要單獨修改服務 A的參數。

應用模板

應用模板包括多個服務的定義加一個默認配置,通過應用模板 +配置項的組合,方便用戶部署相同應用的不同環境。主要用于描述一個或多個服務的定義,服務的定義支持原生的 Yaml語法,但可以通過 GoTemplate的方式定義對應的變量。其主要作用為:

實現應用的快速克隆。由于應用的相關信息已經通過對應的 Template文件進行了描述,復制應用的過程只需要針對性的修改應用的配置,其他結構信息不需要進行改變。

應用的多環境部署。在多個環境中,實現應用的部署,也不需要關系每個服務具體的部署信息,只需要在不同環境下修改環境對應的配置,即可以通過應用模板實現在新環境應用的快速部署。

更高階的功能,通過應用市場可以下載通用的模板,快速的部署應用。例如:在 Helm(Charts)的應用市場 https://kubeapps.com/,已經打包好了 100+應用的模板文件。直接下載對應的應用模板就可以實現應用的部署。

應用

應用包括描述多個服務以及這些服務間的相互調用依賴關系 ,方便用戶管理多個服務。應用可以理解為多個服務的組合,多個服務會統一進行展示,服務支持按照應用進行搜索。多個服務的配置項,統一的通過同一個配置進行管理。通過服務組的方式,管理多個服務。可以簡化多個服務管理的復雜度。

應用中的服務支持單獨編輯,部署和更新。同時服務支持差異化比較,方便用戶查看兩次修訂之間的差異。在服務編輯時,自動提取出對應的變量,簡化配置的過程。并支持服務回滾功能,支持服務回滾到上一個版本。

用 K8S托管用戶 K8S集群的 Master

與其他云服務商不同的是,騰訊云為用戶管理 Master 節點,最重要的挑戰是為了保證用戶 Kubernetes 集群的高可用,將用戶 Kubernetes 集群的 Master 節點的進程以容器方式運行,發揮 Kubernetes 的優勢提供穩定保障。

在這個過程中,隨著托管集群數量的增加,Kubernetes 的 Master 節點的負載也越來越高,騰訊云提供的 Kubernetes 托管服務面臨巨大的穩定性挑戰:

多集群共享 ETCD面臨性能瓶頸、運維困難、可用性較難持續保障

大量小集群產生 master服務器成本增加,可用性、性能較難保障

用 agent管理節點,隨集群增加安裝包、證書、配置越發難以維護,更新回滾困難

提供給用戶的監控與后臺使用的監控是完全不同的兩套,監控對象與環境不統一,維護困難

Kubernetes為高效運維而生,為什么運維起來卻這么難?騰訊云為用戶提供了高效的 Kubernetes服務,為什么自己做不到? 通過多次的技術方案碰撞,騰訊云最終選擇用 Kubernetes來管理 Kubernetes的方案,讓自己成為自己的第一個用戶。

如上圖,騰訊云將用戶集群 Master 節點的組件全部使用容器的方式部署在一個 Kubernetes 集群里進行管理,最大限度的利用了容器的優勢和 Kubernetes 本身的能力,通過這樣的部署方案:

用戶集群 Master不再獨占云主機,解決成本問題

健康檢查即可實現基本 HA,多副本可提供更高可用性

單個用戶集群 Master相關數據放在同一個 namespace下

無需額外 db存儲用戶集群版本信息

升級時備份 namespace下數據即可快速回滾

無需開發、維護額外的 agent

騰訊云 Kubernetes高可用托管架構解析

用 K8S管理 K8S方案說起來簡單,但將用戶的所有 Master 節點的組件全部使用容器的方式部署在一個 Kubernetes 集群里,其實現過程也并不容易。具體到落地實踐上,騰訊云是如何做的呢?下圖為騰訊云的 Kubernetes高可用托管架構。

托管服務中將整個平臺分為控制面和數據面兩層。控制面節點中駐留的是用戶 Kubernetes 集群的 Master 相關容器和騰訊云容器服務的服務管理服務節點;數據面的節點是客戶運行業務的節點。

服務管理節點是由一組高可用的 Kubernetes Master 節點組成,同時包括一組高可用的 etcd 集群。服務管理節點外的其它機器都屬于該 Kubernetes 的 Node 節點。當用戶在騰訊云的控制臺申請一個 Kubernetes 集群時,在這些 Node 節點上把 etcd/api-server/controller/scheduler 等 Kuberneter Master 必須組件以 Kubernetes Controller 的方式部署在集群內,并且通過 ingress 暴露到 VPC 。用戶 Node 節點在初始化時指定要加入的 Kubernetes 集群。

采用以上架構方案,當用戶集群負載升高的時候,可以快速啟動更多的容器應對訪問壓力。同時無需開發額外的 agent 管理 Master 節點,減少管理環節有效的降低運維難度。騰訊云可以通過容器的滾動升級,快速為用戶升級到最新的 Kubernetes 版本,享用最新的特性。可以方便的為客戶部署多種版本的 Kubernetes ,甚至是用戶的定制版本。

5如何用騰訊云容器解決方案部署微服務?騰訊云 CCS解決方案介紹

微服務架構適用于構建復雜的應用,騰訊云 CCS容器解決方案將單體式應用從不同緯度拆分成多個微服務,每個微服務的內容使用一個 Docker 鏡像管理。在功能不變的情況,應用拆分成了多個可管理的服務,使得每個單體的服務更容易理解、開發和維護。

不同的微服務也可以由不同的團隊來開發,開發團隊可自由選擇開發技術和程序語言等,每個服務又可獨立部署、獨立擴展。例如 Web 應用程序可以分割成一組更簡單的外部服務及多組內部服務。

小紅書基于騰訊云的微服務改造實踐

小紅書是一家發展非常快速的公司,技術團隊在急劇增加的同時技術棧也在不斷變遷。以前小紅書的研發團隊采用的是純 Python 的技術環境,隨著業務的發展,不同的團隊在做 Java、Go、Node等不同方向嘗試 ,同時在每年電商大促時,擴容在現有模式也很耗時耗力。為了為了支撐業務的發展, 小紅書利用騰訊云的 CCS解決方案對業務系統進行微服務化改造。

在微服務改造的過程中,小紅書基于騰訊云容器服務搭配 Jenkins、GitLab、Prometheus 和 Spinnaker等開源組件,以最小的投入,最低的開發量快速的實現容器化微服務架構。

上圖是小紅書之前的應用上線的過程,開發向運維提需求,需要多少臺服務器,運維依據需求去做初始化并交付給開發。現在小紅書有一個運維平臺,所有服務器的部署都是由這個平臺來完成的,平臺調用騰訊云 API 生成服務器,做環境初始化,配置監控和報警,交付給開發的是一個標準化好的服務器。

如上圖,開發者拿到服務器準備線上發布時用 Jenkins 觸發腳本的方式:用 Jenkins 的腳本做測試,執行代碼推送。當需要新加一臺服務器或者下線一臺服務器,要去修改這個發布腳本。 發布流程大概為:Jenkins 腳本先往 beta 環境發,開發者在 beta 環境里做自測,自測環境沒有問題就全量發。

經過架構的系列微服務改造實踐,小紅書的資源利用率提高了 100%, 計算資源減少將近 1倍,穩定支撐了雙 11等大型促銷活動。除了應用于微服務架構改造,CCS解決方案也能夠根據業務運行情況,提供集群和服務兩個層級的彈性伸縮能力,并為持續集成與持續交付提供的高效的 DevOps 環境。

6未來規劃

在 PaaS平臺的未來規劃上,騰訊云將會提供更多的容器基礎解決方案,支持包括 Docker、OCI、Kata 等容器引擎和鏡像格式。同時推出更多配套的 DevOps 服務,為用戶提供完整的 PaaS + DevOps 開發部署環境。

據悉,騰訊云單容器實例解決方案 CIS計劃在 5 月底發布公測,用戶可以通過 CIS從容器 Image 當中快速創建容器實例。同時提供 DevOps 編排引擎的 Tencent Hub 的一部分已經上線,計劃將在 5 月底正式發布公測,而在黑石上部署的 CCS 解決方案也即將在 4 月初上線。

服務 容器 Kubernetes 騰訊 用戶
分享到:

1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。


專題報道

主站蜘蛛池模板: 洛阳网站建设_洛阳网站优化_网站建设平台_洛阳香河网络科技有限公司 | 衬氟旋塞阀-卡套旋塞阀-中升阀门首页 | 短信通106短信接口验证码接口群发平台_国际短信接口验证码接口群发平台-速度网络有限公司 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 塑料脸盆批发,塑料盆生产厂家,临沂塑料广告盆,临沂家用塑料盆-临沂市永顺塑业 | 隧道窑炉,隧道窑炉厂家-山东艾瑶国际贸易 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | 常州律师事务所_常州律所_常州律师-江苏乐天律师事务所 | 达利园物流科技集团-| 山东彩钢板房,山东彩钢活动房,临沂彩钢房-临沂市贵通钢结构工程有限公司 | 木材烘干机,木炭烘干机,纸管/佛香烘干设备-河南蓝天机械制造有限公司 | 液压升降平台_剪叉式液压/导轨式升降机_传菜机定做「宁波日腾升降机厂家」 | pos机办理,智能/扫码/二维码/微信支付宝pos机-北京万汇通宝商贸有限公司 | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 | 我车网|我关心的汽车资讯_汽车图片_汽车生活! | 重庆磨床过滤机,重庆纸带过滤机,机床伸缩钣金,重庆机床钣金护罩-重庆达鸿兴精密机械制造有限公司 | 色谱柱-淋洗液罐-巴罗克试剂槽-巴氏吸管-5ml样品瓶-SBS液氮冻存管-上海希言科学仪器有限公司 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | 影合社-影视人的内容合作平台| 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 工业插头-工业插头插座【厂家】-温州罗曼电气 | 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 | 塑料脸盆批发,塑料盆生产厂家,临沂塑料广告盆,临沂家用塑料盆-临沂市永顺塑业 | 冲击式破碎机-冲击式制砂机-移动碎石机厂家_青州市富康机械有限公司 | 深圳3D打印服务-3D打印加工-手板模型加工厂-悟空打印坊 | 世纪豪门官网 世纪豪门集成吊顶加盟电话 世纪豪门售后电话 | 游泳池设备安装工程_恒温泳池设备_儿童游泳池设备厂家_游泳池水处理设备-东莞市君达泳池设备有限公司 | 流水线电子称-钰恒-上下限报警电子秤-上海宿衡实业有限公司 | 环比机械 | 云南丰泰挖掘机修理厂-挖掘机维修,翻新,再制造的大型企业-云南丰泰工程机械维修有限公司 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 便携式高压氧舱-微压氧舱-核生化洗消系统-公众洗消站-洗消帐篷-北京利盟救援 |