成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

拉勾網(wǎng)基于 UK8S平臺的容器化改造實踐

CoorChice / 1730人閱讀

摘要:宋體本文從拉勾網(wǎng)的業(yè)務架構(gòu)日志采集監(jiān)控服務暴露調(diào)用等方面介紹了其基于的容器化改造實踐。宋體此外,拉勾網(wǎng)還有一套自研的環(huán)境的業(yè)務發(fā)布系統(tǒng),不過這套發(fā)布系統(tǒng)未適配容器環(huán)境。

寫在前面

拉勾網(wǎng)于 2019 年 3 月份開始嘗試將生產(chǎn)環(huán)境的業(yè)務從 UHost 遷移到 UK8S,截至 2019 年 9 月份,QA 環(huán)境的大部分業(yè)務模塊已經(jīng)完成容器化改造,生產(chǎn)環(huán)境中,后臺管理服務已全部遷移到 UK8S,部分業(yè)務模塊也已完成容器化。遷移過程遇到很多問題,也積累了一些實踐經(jīng)驗,同時深刻體會到 K8S 給企業(yè)帶來的好處,像資源使用率的提升,運維效率的提升,以及由于環(huán)境一致性帶來的業(yè)務迭代的加速。

本文從拉勾網(wǎng)的業(yè)務架構(gòu)、日志采集、監(jiān)控、服務暴露 / 調(diào)用等方面介紹了其基于 UK8S 的容器化改造實踐。

業(yè)務架構(gòu)

如上圖所示,拉勾網(wǎng)目前遷移到 UK8S 中的業(yè)務以后臺管理服務為主,不過其依賴的基礎(chǔ)組件部分依然部署在 UHost,得益于 UK8S 扁平化的網(wǎng)絡(luò)架構(gòu),Pod 與 VM 可互聯(lián)互通,因此在將業(yè)務遷移到 UK8S 的過程中并不需要對業(yè)務架構(gòu)做改動。

所有容器化的業(yè)務,均采用 StatefulSet 的方式來管理,而沒有使用 Deployment,一是因為 StatefulSet 的 Pod 名稱固定,通過配置中心做配置文件的下發(fā)容易處理,而基于 Deployment 做配置下發(fā)的話,不好做有狀態(tài)發(fā)布。二是 StatefulSet 調(diào)用鏈條非常固定,通過調(diào)用鏈監(jiān)控可以快速排查出是哪個 Pod 出現(xiàn)問題,清晰明了。

日志采集

在容器化之前,拉勾網(wǎng)的業(yè)務日志都是分別寫入到 VM 本地的日志文件。但隨著業(yè)務遷移至 UK8S,由于 Pod(應用)與 VM 的關(guān)系并非固定,一旦 Pod 被調(diào)度到其他 VM,則會導致應用日志也隨之散落在不同的 VM,不便于統(tǒng)一采集,因此容器化部分的應用日志選擇輸出到統(tǒng)一的日志平臺系統(tǒng),不保留在 VM 本地。

日志的收集方案,拉勾網(wǎng)選擇的是 Sidecar 模式,每個業(yè)務 pod 中建一個 filebeat 容器,應用容器與 filebeat 容器共享 emptyDir 日志目錄,filebeat 容器負責收集主容器日志并傳輸?shù)?Kafka。

選擇這個方案的原因是應用程序的日志依然可以輸出到文件,不需要改造成 stdout 和 stderr,減小業(yè)務遷移到 UK8S 的負擔,而 filebeat 作為一個輕量級的采集工具,也不會消耗太多的資源。另外 SideCar 方式相對于 DaemonSet 方式靈活性也更高,適合于大型、混合集群,且可以做到租戶隔離,不同應用程序的日志可以輸出到不同日志系統(tǒng)。

監(jiān)控方案

在監(jiān)控方案的選擇上,拉勾網(wǎng)根據(jù)自身的情況,針對集群和業(yè)務使用了兩套不同的方案,分別是由 UCloud 搭建的 Prometheus 監(jiān)控系統(tǒng)和用戶自研的監(jiān)控系統(tǒng)。

K8S 集群層面選擇使用了 Prometheus。集群層面的監(jiān)控又分為 Node、K8S 基礎(chǔ)組件、K8S 資源對象三大類。

  • 對于 Node 的監(jiān)控,Prometheus 提供了 node-exporter,可采集到 CPU、內(nèi)存、磁盤 IO、磁盤使用率、網(wǎng)絡(luò)包量、帶寬等數(shù)據(jù);
  • ?
  • K8S 基礎(chǔ)組件類的 kubelet、kube-apiserver、kube-controller-manager 和 kube-scheduler 等,都提供了 metrics 接口暴露自身的運行時的監(jiān)控數(shù)據(jù),這些數(shù)據(jù)都可被部署在 K8S 集群中的 Prometheus 直接拉取到;
  • ?
  • 另外結(jié)合 cadvisor 和 kube-state-metrics ,可直接采集到 K8S 中 Pod 的 CPU、內(nèi)存、磁盤 IO、網(wǎng)絡(luò) IO 等數(shù)據(jù)。這里值得提一下由 CoreOS 開源的 Kube-Prometheus 項目,極大簡化了 Prometheus 的安裝部署運維工作,UCloud 也提供了適配 UK8S 的分支版本。
  • ?

而業(yè)務監(jiān)控層面,拉勾網(wǎng)沿用了一套之前自研的監(jiān)控系統(tǒng),除了負責采集自定義的監(jiān)控數(shù)據(jù)外,還負責監(jiān)控整體調(diào)用鏈的健康情況。其原理跟 Prometheus 類似,應用程序需嵌入 SDK,通過 UDP 協(xié)議上報給收集端,收集端將數(shù)據(jù)直接存入 OpenTSDB,然后有一個展示模塊(類似 Grafana)來展現(xiàn) OpenTSDB 數(shù)據(jù)。另外告警模塊,如果發(fā)現(xiàn)監(jiān)控項高于閾值,展示模塊就給告警模塊發(fā)送告警,并生成事件單 push 給對應的負責人。

服務暴露 / 調(diào)用

K8S 的服務暴露以及服務間的調(diào)用是一個很重要的問題,特別是拉勾網(wǎng)這種 VM 和 K8S 混合部署的架構(gòu),針對此問題,社區(qū)也有很多方案,類似 LoadBalancer、Ingress 等,這里拉勾網(wǎng)直接使用了 UK8S 的自帶 LoadBalancer 方案,通過 UCloud 的內(nèi)網(wǎng) ULB4 對內(nèi)暴露服務,操作簡單,穩(wěn)定性也較高。

而集群內(nèi)部的服務間調(diào)用則是基于 ZK/Eureka 的服務注冊與發(fā)現(xiàn),與之前在 VM 環(huán)境一致,未做改造。

另外拉勾網(wǎng)還有大量的基礎(chǔ)服務像 zk、Kafka、Redis、MySQL,為了提升服務間調(diào)用的可靠性,由于應用程序都是通過域名來連接這些服務的,因此拉勾網(wǎng)在 UHost 環(huán)境下基于 CoreDNS 部署了一套 DNS 服務。容器化的服務以及 VM 內(nèi)的服務,都通過這套 DNS 服務實現(xiàn)域名統(tǒng)一解析,從而解決了服務間調(diào)用的可靠性問題。

配置中心

配置文件的管理和下發(fā),拉勾網(wǎng)采用的統(tǒng)一配置中心,基于百度 Disconf 做了二次開發(fā),這樣就可以將 db 等連接信息等做一次隔離,根據(jù)不同的主機名及 namespace 做下發(fā),這也就是 K8S 資源類型使用 StatefulSet 的原因了。

版本發(fā)布的配置文件通過 Git 來統(tǒng)一管理,并沒有使用 ConfigMap,這個一方面是考慮到 ConfigMap 過大對集群的性能造成影響,另一方面也是與 VM 環(huán)境保持一致。

持續(xù)交付

拉勾網(wǎng)的 CI/CD 運轉(zhuǎn)在 4 套不同的環(huán)境下,分別是研發(fā)環(huán)境、測試環(huán)境、 預發(fā)布環(huán)境(線上驗證環(huán)境) 、正式環(huán)境。預發(fā)布和正式環(huán)境都運行在 UCloud 的 UK8S 中,通過 Namespace 隔離,確保了環(huán)境的一致性。

此外,拉勾網(wǎng)還有一套自研的 VM 環(huán)境的業(yè)務發(fā)布系統(tǒng),不過這套發(fā)布系統(tǒng)未適配容器環(huán)境。而在 K8S 環(huán)境下,采用 Jenkins 做過渡,統(tǒng)一使用 pipeline 做發(fā)布流水線。目前正在改造老的業(yè)務發(fā)布系統(tǒng),兼容 K8S 環(huán)境,統(tǒng)一全公司的業(yè)務發(fā)布流程。

下一步計劃

目前拉勾網(wǎng)正在測試 HPA(Horizontal Pod Autoscaler)和 CA(Cluster Autoscaler),計劃在生產(chǎn)環(huán)境逐步引入自動伸縮,減少人工的伸縮容行為,希望借此能降低 IT 成本,并減少重復性的工作。另外除了基礎(chǔ)組件類的服務,像 MySQL、Kafka、大數(shù)據(jù)集群等會繼續(xù)使用 UHost 外,其他服務拉勾網(wǎng)計劃都將逐步遷移到 UK8S 中。

關(guān)于 UK8S

UK8S 是一項基于 Kubernetes 的容器管理服務,用戶可以在 UK8S 上部署、管理、擴展容器化應用,而無需關(guān)心 Kubernetes 集群自身的搭建及維護等運維類工作。UK8S 完全兼容原生的 Kubernetes API,以 UCloud 私有網(wǎng)絡(luò)為基礎(chǔ),并整合了 ULB、UDisk、EIP、VPC 等云產(chǎn)品。歡迎點擊 “http://systransis.cn/site/product/uk8s.html” 了解 UK8S 產(chǎn)品詳情。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/117607.html

相關(guān)文章

  • 區(qū)塊鏈招聘信息爬取與分析

    摘要:最近在研究區(qū)塊鏈,閑來無事抓取了拉勾網(wǎng)上條區(qū)塊鏈相關(guān)的招聘信息。拉勾網(wǎng)的反爬蟲做的還是比較好的,畢竟自己也知道這種做招聘信息聚合的網(wǎng)站很容易被爬,而且比起妹子圖這種網(wǎng)站,開發(fā)的技術(shù)水平應該高不少。 最近在研究區(qū)塊鏈,閑來無事抓取了拉勾網(wǎng)上450條區(qū)塊鏈相關(guān)的招聘信息。過程及結(jié)果如下。 拉勾網(wǎng)爬取 首先是從拉勾網(wǎng)爬取數(shù)據(jù),用的requests庫。拉勾網(wǎng)的反爬蟲做的還是比較好的,畢竟自己也...

    kelvinlee 評論0 收藏0
  • 新手向-爬取分析勾網(wǎng)招聘信息

    摘要:愛寫作者愛寫前言看了很多網(wǎng)站,只發(fā)現(xiàn)獲取拉勾網(wǎng)招聘信息是只用方式就可以得到,應當是非常簡單了。在環(huán)境下運行通過數(shù)據(jù)爬取篇偽造瀏覽器訪問拉勾網(wǎng)打開瀏覽器,進入拉勾網(wǎng)官網(wǎng),右鍵檢查,調(diào)出開發(fā)者模式。 [TOC] 愛寫bug(ID:icodebugs)作者:愛寫bug 前言: ? 看了很多網(wǎng)站,只發(fā)現(xiàn)獲取拉勾網(wǎng)招聘信息是只用post方式就可以得到,應當是非常簡單了。推薦剛接觸數(shù)據(jù)分析...

    yimo 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<