雲原生時代,Kubernetes 讓應用落地的 N 種招式(附 PPT)

放眼望去,容器、Kubernetes 和雲原生技術正在被越來越多的企業青睞,Kubernetes 已經爲一種大規模部署容器化應用程序的標準。隨着它不斷的快速迭代發展, 企業在實際的應用部署過程中也面臨着各種複雜的問題和挑戰。如何克服 K8S 技術難關,使其更好的服務於容器化應用成爲大家關注的重點。

8 月 17 日 UCan 下午茶上海站 ——《雲原生 Kubernetes 的開發和運維》技術沙龍現場,六位資深技術專家圍繞 K8S 的落地實踐進行了充分的探討。

雲原生時代,Kubernetes 讓應用落地的 N 種招式(附 PPT)

張苗磊:Kubernetes 集羣在雲平臺的實踐與應用

K8S 自 2014 年推出,目的就是作爲集羣內容器管理調度的平臺,用戶只需關心將內容放進容器,而把調度和運行交給 K8S。爲了讓 K8S 在生產環境上運行得更加順暢和完善,UCloud 作爲公有云廠商推出的 UK8S,除了通用性,還提供了很多拓展能力。

例如 Pod 的網絡方案上,藉助雲廠商的底層網絡能力,通過提供 SecondIP 的方式,和雲上其它產品打通,避免採用封包方案造成的性能損失。又如在服務接入上,公有云的 UK8S 能通過插件很好地提供,用戶在集羣內部創建一個 loadbalancer 類型的 service,就能自動化地和 ULB 產品關聯並使用。同時還支持非 SNAT 形式的 loadbalancer,讓 Pod 可以直接拿到源 IP 地址。

存儲方面,K8S 原生態裏 PV 需要集羣管理員或第三方來實現。UK8S 也結合 UCloud 存儲產品提供了自動化的實現,有塊存儲和文件存儲兩種形式。用戶只需要在集羣內創建一個 PVC,預設好的 StorageClass 就會自動創建相應 PV 並關聯到 UDisk/UFS 上,實現快速接入。

雲原生時代,Kubernetes 讓應用落地的 N 種招式(附 PPT)

張鵬波:UK8S 打造穩定易用的 Kubernetes 服務

K8S 本質上是弱租戶概念,要通過 namespace 做隔離。但 UCloud 在 2018 年推出的 UK8S,作爲公有云 K8S 服務,面臨着租戶隔離的強需求,否則用戶是不接受的。爲此我們提出 K8S 中所有資源對用戶應該是專享的想法。

這個首先體現在 VPC 網絡,不同用戶的 K8S 集羣分佈在不同的 VPC 裏,網絡是完全強制性隔離。其次是資源的租戶隔離,包括 UHost 等計算資源隔離,Node 和 Master 隔離,以及存儲插件包括塊存儲、文件存儲的完全隔離。UK8S 爲了提升易用性和可維護性,也針對性的給出瞭解決方案,例如提供一鍵創建 / 刪除集羣功能,支持集羣規模自動拓展,支持 API Service 通過外網訪問,提供跨可用區健壯性等。集羣管理高可用架構如圖所示:

雲原生時代,Kubernetes 讓應用落地的 N 種招式(附 PPT)

此外,還介紹了 UK8S 和 UCloud 裸金屬產品金翼物理機的結合。物理機租賃的 TCO 非常有競爭力,而如果用戶想運行 K8S,上面能提供預裝好的 K8S 服務,存儲和負載均衡也可以配套部署好。UK8S 下半年預計將服務擴展到 30 多個可用區,並提供新版應用商店等功能。

樂心醫療 韋飛龍:Kubernetes 在樂心健康的探索與實踐

樂心醫療的一個主要產品樂心手環,其後端服務通過 App 和用戶交互。該服務自 2016 年起就已經全面運行在 K8S 上,當時是自建的集羣。自建過程中遇到很多問題,比如要在測試、開發、生產三個環境中運行同一個鏡像,按傳統方式把服務配置打包成鏡像是個問題。此外安裝過程中,早先是手動依次安裝二進制文件,需要逐個下載軟件包並配置驗證,非常耗費時間,近期開始使用 kubeadm 工具實現了快速安裝。自建 K8S 集羣時 kubernetes-sigs 工具的鏡像下載不到,需要修改鏡像地址再安裝。

雲原生時代,Kubernetes 讓應用落地的 N 種招式(附 PPT)

考慮到種種維護的成本較高,現在已將業務全部遷移到 UK8S 上,好處是不需要再關心此前安裝的組件,網絡、存儲的管理也變得容易。韋飛龍最後還介紹了 Apollo 配置中心的使用,相比此前另一個開源配置中心,啓動時間節省十幾秒。以及運用 Jenkins 進行 Pipeline 的並行發佈,只要有一個發佈失敗就終止運行,節省了開發等待的時間。

劉拓:K8S 在 StepFlow 項目中的運用

StepFlow 全稱工作流引擎,它能把微服務 API 用流程的方式編排起來,不寫任何代碼的情況下即可構建應用。StepFlow 架構設計時採用了微服務的理念,因此自然而然想到容器化部署。但團隊在容器化道路上遇到不少挑戰,例如資源如何合理規劃、高可用如何解決、服務間怎樣互聯等。頭痛醫頭並不是個好辦法,而 UCloud 面向內部的 K8S 平臺 KUN(中文名:鯤)恰好能解決這些問題。

雲原生時代,Kubernetes 讓應用落地的 N 種招式(附 PPT)

資源管理上 KUN 可以輕鬆做到高可用和跨可用區分佈,也對業務完全透明。通過配置 service 可以讓服務互聯,此外還有配置管理、日誌監控等能力。在社區支持上也更好,CNCF 中很多雲原生的組件都可以直接使用。KUN 平臺解放了業務方的生產力,使其可以專注於上層的鏡像製作、自動化測試集、灰度系統等工作。StepFlow 整個項目都基於 KUN,短時間內就實現了一個 CI/CD 的 Pipeline,達到一鍵部署的效果,可以說是一次成功的基於雲原生標準來打造應用程序的實踐。

蔡書:基於 Kong 的服務網格方案

Kong 是目前最受歡迎的 API 網關之一。它的特點一是智能易用,可以和微服務做集成,處理動態路由,底層對微服務做細粒度的分析統計。二是簡單靈活,支持容器化的部署,且提供安裝包。管理類功能都通過插件提供,插件非常豐富,形成了社區。另外吞吐率和延遲也都不錯。

Kong 的應用場景:一是做入口,流量都可從網關進來;二是微服務的可視化;三是黑色 / 灰色流量清洗,依賴特徵識別;四是微服務支持,和服務註冊中心綁定後使用方便,此外還有流量可視化、微服務質量管理等。技術實現上底層是 Nginx,上面是 OpenResty,其上還有 Clustering,保證水平擴展時配置實時生效。再上面是 RESTful 接口,不再需要修改 Nginx 配置文件,而是通過代碼調用的方式完成。

雲原生時代,Kubernetes 讓應用落地的 N 種招式(附 PPT)

元年科技 王海峯:中小團隊的 K8S 落地之路

K8S 技術相對複雜,受限於人力時更需瞭解如何能簡單落地。王海峯認爲首先是把要點思考清楚,比如一共需要哪些基礎服務來保證大應用落地、如何構建一套簡單的外部程序、線下線上如何採用統一的 K8S 環境來保證開發測試的一致性、統一的 K8S 接口該如何設計等。

在元年科技的實踐中,首先出於實際情況使用 Windows 服務器,主要是爲了利用它賬戶憑證的特性。其次利用 Jenkins 來完成外部瀏覽器端 DevOps 流程的觸發,通過批處理和腳本簡單的搞定流程線。線下用 Rancher 在三臺物理機上部署環境,線上環境爲了減少運維人力,直接用 UCloud 鏡像庫和 UK8S,省去集羣維護精力。線上線下采用蒲公英第三方服務打通,提供 DevOps 通信。而在 K8S 集羣的通信上,採用了 REST 風格的 API,用 Curl 的 Post、Delete 等方法,可以設計部署、刪除 API 等。

雲原生時代,Kubernetes 讓應用落地的 N 種招式(附 PPT)

關於本次演講的更多技術內容,敬請關注 “UCloud 技術” 公衆號回覆 “K8S” 即可獲取講師演講 PPT。

雲原生時代,Kubernetes 讓應用落地的 N 種招式(附 PPT)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章