中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

個推在Kubernetes的效率提升舉措揭秘及最佳實踐解析-創(chuàng)新互聯(lián)

一、如何提升Kubernetes研發(fā)效率

成都創(chuàng)新互聯(lián)公司是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,專業(yè)領(lǐng)域包括成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、電商網(wǎng)站制作開發(fā)、微信平臺小程序開發(fā)、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!

本文將從三方面闡述如何提升Kubernetes研發(fā)效率:

微服務(wù)與CI開發(fā)(提升開發(fā)效率)

研發(fā)網(wǎng)絡(luò)與Kubernetes互通(提升調(diào)試效率)

服務(wù)端軟件管理平臺建設(shè)(提升運維效率)

01


開發(fā)效率:微服務(wù)與CI 開發(fā)

微服務(wù)目前已成為主流的容器編排技術(shù),然而不少開發(fā)者在使用過中或多或少會遇到一些問題,主要在于以下四點:

1)Kubernetes涉及較多專業(yè)知識,而研發(fā)掌握有關(guān)知識有一定的門檻。

2)Kubernetes鏡像常常沒有充分利用 Build Cache,導(dǎo)致占用構(gòu)建存儲大,傳輸慢。

3)不同的業(yè)務(wù)其鏡像差異大,運維在對鏡像進(jìn)行維護(hù)時操作過程非常復(fù)雜。

4)Kubernetes安全更新后,不僅要確保程序沒有漏洞,還要確保編程語言、基礎(chǔ)鏡像、業(yè)務(wù)本身都沒有安全漏洞。如果研發(fā)人員要維護(hù)全部的更新內(nèi)容,負(fù)擔(dān)比較重,一定程度上會影響其研發(fā)效率。

開發(fā)一個新的微服務(wù)涉及諸多環(huán)節(jié),比如Dockerfile的編寫、安全更新的維護(hù)、緩存層的設(shè)計,監(jiān)控指標(biāo)的接入等。而這些環(huán)節(jié)會出現(xiàn)一些問題,主要包括容器體系重復(fù)建設(shè)、安全更新需求需要在各個服務(wù)重復(fù)實現(xiàn)、Build Cache難以跨服務(wù)復(fù)用等。

為解決以上問題,我們采用了以下措施:

1)在容器體系統(tǒng)一建設(shè)的同時,做到允許自定義,降低門檻;

2)將鏡像統(tǒng)一為公用幾類(Node.js/Java/Golang),統(tǒng)一維護(hù)安全更新;

3) 跨服務(wù)共用Build Cache;

4) 統(tǒng)一置入工具鏈、依賴、ARM適配、監(jiān)控指標(biāo)等。這樣一來,對于ARM問題,在構(gòu)建鏡像時,我們會先構(gòu)建完X86,再構(gòu)建統(tǒng)一的ARM。這些步驟都在統(tǒng)一的CI腳本中完成,從而節(jié)省時間。

02


調(diào)試效率:開發(fā)集群網(wǎng)絡(luò)

在調(diào)試效率上,Kubernetes的痛點在于debug流程復(fù)雜耗時長,因為微服務(wù)通常需要依賴服務(wù)進(jìn)行調(diào)試,但是開發(fā)機(jī)無法連接集群內(nèi)Kubernetes Service 進(jìn)行調(diào)試,且服務(wù)可能不位于流量入口位置,需要將中間環(huán)節(jié)的流量轉(zhuǎn)發(fā)。

怎么樣才能縮短debug流程,讓調(diào)試完的代碼能夠秒級生效呢?

個推在 Kubernetes 的效率提升舉措揭秘及最佳實踐解析

 

來看上面左邊這張圖。左圖上半部分由開發(fā)機(jī)與DNS組成。下半部分是k8s集群,包含它的CoreDNS以及service B。為縮短調(diào)試流程,我們在開發(fā)區(qū)的網(wǎng)絡(luò)拓?fù)渲胁渴鹆薔ginx,用于把所有的 k8s cluster的域名解析到 k8s服務(wù)上。

比如我們統(tǒng)一取名為*.svc. cluster.local,并把它都統(tǒng)一解析到 k8s集群上,集群上我們調(diào)起Nginx,Nginx收到來自b.app.svc.cluster.local的請求后,直接向 k8s的CoreDNS去獲取它svc的cluster IP。獲取到IP后,它就可以知道,該項服務(wù)是 APP內(nèi)service中的B服務(wù),以及cluster的IP地址,然后Nginx便可以通過proxy pass進(jìn)行轉(zhuǎn)發(fā)。這樣我們就實現(xiàn)了在開發(fā)機(jī)內(nèi)任意地訪問開發(fā)網(wǎng)k8s內(nèi)進(jìn)行的服務(wù)的需求。

03


運維效率:Kubernetes APP平臺

在運維效率上,Kubernetes的痛點主要來自以下四方面:

1)微服務(wù)化導(dǎo)致服務(wù)數(shù)量增加,需要將服務(wù)分組及模塊化管理,而這會增加管理成本。

2)每個服務(wù)都有各自的依賴,當(dāng)我們想針對服務(wù)進(jìn)行管理的時候,存在依賴管理的問題。

3)由于服務(wù)數(shù)量眾多,服務(wù)手工升級過程也耗時耗力。

4)在私有化部署背景下,我們很難直接將應(yīng)用快速分發(fā)到客戶集群上。

為解決以上痛點,我們提出了Kubernetes APP平臺思路,并設(shè)計了如下技術(shù)架構(gòu)。

個推在 Kubernetes 的效率提升舉措揭秘及最佳實踐解析

架構(gòu)圖由四部分組成:Helm、ChartMuseum、APP Installer Container、Kubeapps。Helm是包管理器,可以管理依賴,并提供鉤子機(jī)制,幫助實現(xiàn)模板化。ChartMuseum用于包存儲。APP Installer Container執(zhí)行定制的APP結(jié)構(gòu)規(guī)范、自動升級SQL Schema、自動導(dǎo)入Consul配置以及注冊網(wǎng)關(guān)入口及插件。Kubeapps方便UI管理。

要想提升運維效率,需要將運維管理維度從服務(wù)層面轉(zhuǎn)換成APP層面。為此,我們把相近的業(yè)務(wù)合并成一個統(tǒng)一的模塊去管理,降低管理復(fù)雜度。具體來看,每個服務(wù)生成一個helm包,包含自身標(biāo)準(zhǔn)化的SQL、Consul配置等,掛在Helm Hook上由定制化的Runner執(zhí)行,并通過標(biāo)準(zhǔn)化SQL升級、Consul配置管理等,提升運維管理效率。

個推K8S最佳實踐解析

個推Kubernetes最佳實踐將從個推k8s集群概覽、使用規(guī)范制定、使用經(jīng)驗總結(jié)三方面展開,以幫助開發(fā)者在Kubernetes使用過程中根據(jù)企業(yè)自身應(yīng)用和環(huán)境特點找到適合的方案。

01


個推K8s集群概覽

個推在 Kubernetes 的效率提升舉措揭秘及最佳實踐解析

首先簡要介紹下我們的組件地圖與各組件的用途。如果用一把傘來比喻我們的組件地圖,那么傘的核心組件是Kubernetes,docker則是底層最基礎(chǔ)的運行環(huán)境,calico和fannel是網(wǎng)絡(luò)cni的選型;coreDns是k8s內(nèi)部的域名解析組件;kube-stat-metrics是主要的監(jiān)控組件,kube-stat-metrics主要用于采集pod的狀態(tài); dashboard是運維管理工具;Harbor是企業(yè)級的鏡像倉庫開源解決方案;consul/Apollo是配置中心;Ingress用于提供負(fù)載均衡功能,是我們暴露集群外到集群內(nèi)服務(wù)的http和https路由的方案之一。

02


使用規(guī)范

為了更好地對k8s進(jìn)行管理和維護(hù),我們制定了詳細(xì)的k8s使用規(guī)范。在個推實踐中,規(guī)范主要分為五類:參數(shù)、安全、資源、日志、YAML。參數(shù)規(guī)范主要指的是對參數(shù)命名規(guī)則的規(guī)范。常見參數(shù)主要包含dns、ulimit、kubelet insufficient pods、calico、內(nèi)核參數(shù)、xfs系統(tǒng)的d_type支持、label等。安全規(guī)范是面對網(wǎng)絡(luò)各信息安全相關(guān)的規(guī)范,主要包括業(yè)務(wù)線的隔離、資源的限制、訪問的控制以及PSP相關(guān)的設(shè)置;

資源類規(guī)范主要指的是資源可見性以及資源的控制與分配;日志規(guī)范是為了所有日志能夠被統(tǒng)一采集和管理所制定的 規(guī)范,比如日志格式、日志分類以及日志存放目錄規(guī)范;YAML的規(guī)范是為了保持線網(wǎng)環(huán)境以及測試環(huán)境的一致性,讓功能更加穩(wěn)定、發(fā)布更加高效和安全而制定的一些列規(guī)范和標(biāo)準(zhǔn)。

規(guī)范標(biāo)準(zhǔn)化是一個持續(xù)的過程。我們通過學(xué)習(xí)、思考以及經(jīng)驗汲取來制定執(zhí)行和完善這個規(guī)范的過程,就是我們在不斷提高質(zhì)量、提高管理水平、提高收益的過程,這也是k8s集群得以持續(xù)發(fā)展的原因。

03


填坑經(jīng)驗分享

在制定標(biāo)準(zhǔn)的過程中,我們踩過一些坑,以下將分享有關(guān)經(jīng)驗供參考。

問題:

我們發(fā)現(xiàn)在service轉(zhuǎn)發(fā)過程中,流量負(fù)載并不均衡,導(dǎo)致單個pod請求壓力過高。

解決方案:

1)對邊緣節(jié)點進(jìn)行了改造,在node上部署了nginx,upstream中的節(jié)點通過實時從consul中獲取服務(wù)的狀態(tài)和ip實時更新,以此繞過了service的流量分發(fā),避免了流量負(fù)載不均的問題。k8s集群內(nèi)部服務(wù)模塊之間的轉(zhuǎn)發(fā)也可以通過類似的方法予以實現(xiàn)。

2) 由于ingress抗壓能力強,故使用ingress也能實現(xiàn)流量負(fù)載均衡的需求,保證ingress到后端的流量是均衡的。

總之,k8s服務(wù)已經(jīng)逐漸成熟,但也仍存在一些問題,需要我們開發(fā)者共同去解決這些問題,讓k8s生態(tài)發(fā)展更健康,讓工作更高效。

PPT獲取方式

關(guān)注【個推技術(shù)學(xué)院】微信公眾號

(微信號:getuitech)

回復(fù)關(guān)鍵詞“ k8s”

即可領(lǐng)取Kubernetes專場完整版嘉賓分享PPT!

網(wǎng)頁題目:個推在Kubernetes的效率提升舉措揭秘及最佳實踐解析-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://m.rwnh.cn/article24/djipje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站營銷、商城網(wǎng)站、營銷型網(wǎng)站建設(shè)、軟件開發(fā)、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
肥乡县| 将乐县| 津南区| 珲春市| 沈丘县| 隆林| 鹰潭市| 建宁县| 平潭县| 湘西| 磴口县| 沁源县| 扎兰屯市| 临城县| 桦川县| 望奎县| 永城市| 霞浦县| 丰镇市| 林甸县| 新民市| 鄂托克旗| 扶沟县| 年辖:市辖区| 永州市| 遂宁市| 大足县| 武定县| 攀枝花市| 子长县| 噶尔县| 商都县| 江川县| 罗平县| 车险| 新田县| 古田县| 长岛县| 南澳县| 桓台县| 锦屏县|