<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          我在創(chuàng)業(yè)公司的 “云原生” 之旅

          共 3817字,需瀏覽 8分鐘

           ·

          2021-10-09 16:03

          原文鏈接:https://www.cnblogs.com/zisefeizhu


          前言


          IT是一座道場(chǎng)!


          2020年5月中旬本科畢業(yè)后,進(jìn)入嚴(yán)格意義上的第一家公司。當(dāng)時(shí)帶我的是阿里云的MVP,也是公司的CTO,跟著他(石老大)學(xué)到了很多很多,帶領(lǐng)我經(jīng)過了入道(機(jī)會(huì),不是人人都有,請(qǐng)感恩,給你機(jī)會(huì)和幫助的人)。三個(gè)月后他離職了,感謝石老大,正是他的離職給了我獨(dú)自闖道的機(jī)會(huì)。

          2020年9月開始進(jìn)入了闖道(孤獨(dú),痛苦和煎熬會(huì)時(shí)常與你共舞)、修道(別忘了,給風(fēng)雨中的自己一個(gè)鼓勵(lì))、悟道(認(rèn)知和思想,是拉開人與人之間的重要差距)階段??梢哉f自石老大走后,我的任務(wù)都是自我安排,技術(shù)都是自我驅(qū)動(dòng)實(shí)現(xiàn)的。

          2019年7月離開學(xué)校時(shí),告訴自己:我的路是一條追逐云原生的路。自2018年8月接觸Kubernetes時(shí)就深深愛上了這條路。

          2020年6月初進(jìn)入公司后,實(shí)實(shí)在在感受到了創(chuàng)業(yè)公司的集群環(huán)境之亂(只有前端業(yè)務(wù)Kubernetes化且測(cè)試和生產(chǎn)通過namespace區(qū)分、生產(chǎn)Kubernetes資源特別低且服務(wù)副本數(shù)只有2個(gè)、GitLab代碼倉庫是部署在Kubernetes環(huán)境上的、權(quán)限混亂等)。

          2020年6月構(gòu)建以ELFK為技術(shù)核心的日志系統(tǒng)(只收集網(wǎng)關(guān)日志即nginx-ingress日志為唯一收集源)。

          2020年7月圍繞業(yè)務(wù)全面Kubernetes化展開,主導(dǎo)了業(yè)務(wù)從一到零再到一的過程。

          2020年8月和9月忙于集群和CI/CD重構(gòu)。新增了測(cè)試環(huán)境、預(yù)發(fā)環(huán)境,將網(wǎng)關(guān)由nginx-ingress改為kong-ingress,將GitLab從Kubernetes環(huán)境中剝離出來,借助cert-manager實(shí)現(xiàn)證書的自動(dòng)申請(qǐng)和續(xù)簽,增加堡壘機(jī)更正權(quán)限混亂問題,使用gitlab-runner實(shí)現(xiàn)多Kubernetes集群的自動(dòng)化部署等。

          2020年10月專攻于“監(jiān)控預(yù)警系統(tǒng)”,實(shí)現(xiàn)三個(gè)緯度的監(jiān)控,期間第一次參與并主導(dǎo)私有化項(xiàng)目的部署。

          2020年11月以“ISTIO服務(wù)治理”為重心,在測(cè)試環(huán)境驗(yàn)證了連接、安全、流控、可視,期間開發(fā)了envoyfilter插件對(duì)接鑒權(quán)服務(wù)。

          2020年12月和1月圍繞“Kubernetes下微服務(wù)的日志系統(tǒng)”展開,實(shí)現(xiàn)了多Kubernetes集群服務(wù)和裸機(jī)服務(wù)的日志統(tǒng)一到一個(gè)管理平臺(tái)。

          2021年1月和2月實(shí)現(xiàn)了將預(yù)發(fā)環(huán)境的kong-ingress過度到istio。并對(duì)接了證書服務(wù)、監(jiān)控預(yù)警系統(tǒng)和日志系統(tǒng)。

          2021年3月忙于私有化部署和Istio準(zhǔn)備上生產(chǎn)環(huán)境的驗(yàn)證。

          2021年4月忙于舊服務(wù)器治理、私有化部署、聚石塔方面的有關(guān)工作。

          2021年5月忙于Istio生產(chǎn)啟用、聚石塔和私有化部署的工作。

          在公司近1年中創(chuàng)建了13個(gè)代碼倉庫,寫了130余篇技術(shù)文檔。

          2020年6月初經(jīng)過規(guī)劃了一張“基于Kubernetes的企業(yè)級(jí)集群架構(gòu)”,經(jīng)過和CTO及向有關(guān)人員的闡述,準(zhǔn)備實(shí)施此架構(gòu):


          此架構(gòu)規(guī)劃了三個(gè)集群環(huán)境:生產(chǎn)環(huán)境、預(yù)發(fā)環(huán)境、測(cè)試環(huán)境。

          此架構(gòu)除業(yè)務(wù)和項(xiàng)目外還增加了邊界服務(wù):統(tǒng)一日志管理平臺(tái)、監(jiān)控預(yù)警系統(tǒng)、鏈路追蹤、統(tǒng)一管理平臺(tái)、證書自動(dòng)續(xù)簽、流控等,下面將重點(diǎn)圍繞此展開。


          基于Kubernetes的企業(yè)級(jí)集群架構(gòu)重點(diǎn)部分淺解


          重構(gòu)集群架構(gòu)、業(yè)務(wù)全面容器化

          這是一個(gè)從一到零再到一的過程,剛畢業(yè)即接觸此類項(xiàng)目,實(shí)屬幸運(yùn)。

          大致重構(gòu)步驟如下:

          • 根據(jù)原有業(yè)務(wù)設(shè)計(jì)容器化架構(gòu)方案;

          • 新增堡壘機(jī)Jumpserver;

          • 制作前后端業(yè)務(wù)鏡像;

          • 新增測(cè)試環(huán)境Kubernetes集群、預(yù)發(fā)環(huán)境Kubernetes集群、改造原生產(chǎn)環(huán)境Kubernetes集群;

          • 借助Gitlab-Runner、GitLab、Kustomize等實(shí)現(xiàn)多集群的CI|CD;

          • 和有關(guān)同事一起定義前后端日志字段和輸出形式;

          • 協(xié)助后端團(tuán)隊(duì)微調(diào)原裸機(jī)業(yè)務(wù)源碼;

          • 借助Rancher實(shí)現(xiàn)對(duì)多Kubernetes集群的統(tǒng)一管理;

          • 用Cert-Manager實(shí)現(xiàn)域名證書的自動(dòng)申請(qǐng)和續(xù)期;

          • 寫Shell腳本對(duì)Gitlab備份進(jìn)行檢查、裸機(jī)服務(wù)備份進(jìn)行檢查、對(duì)域名有效期進(jìn)行檢查。


          統(tǒng)一日志管理平臺(tái)

          此項(xiàng)目應(yīng)是我近一年的最大收獲了,思想上。

          大致實(shí)現(xiàn)思路:多Kubernetes集群的namespace絕對(duì)不能重復(fù),Elasticsearch、Kibana、Logstash、Kafka獨(dú)立于集群環(huán)境外且共用一套,F(xiàn)ilebeat、Metricbeat、kube-state-metrics需要在每個(gè)Kubernetes集群中都存在一套、Metricbeat和tag需要標(biāo)準(zhǔn)清晰明了、日志以json格式輸出且不允許多行日志出現(xiàn)。

          一提之舉在:實(shí)現(xiàn)了多集群、多環(huán)境日志的統(tǒng)一化管理。

          CI/CD

          基于我司目前的研發(fā)現(xiàn)狀,選擇的自動(dòng)化部署工具為gitlab-runner。代碼倉庫創(chuàng)建規(guī)范可以參考:https://www.cnblogs.com/zisefeizhu/p/13621797.html。

          大致實(shí)現(xiàn)思路:研發(fā)提交代碼代碼到特定分支(分支區(qū)分環(huán)境,生產(chǎn)分支需要項(xiàng)目總監(jiān)merge) --> 鏡像打包(由預(yù)發(fā)Kubernetes集群的一臺(tái)特定節(jié)點(diǎn)執(zhí)行) --> 根據(jù).gitlab-ci.yml規(guī)則進(jìn)行業(yè)務(wù)Pod化。

          一提之舉在:

          • 通過分支區(qū)分環(huán)境

          • 鏡像打包只在一臺(tái)預(yù)發(fā)環(huán)境的特定節(jié)點(diǎn)執(zhí)行,減少因打包鏡像而對(duì)生產(chǎn)環(huán)境帶來的波動(dòng),且可以存在鏡像利用

          • 大量借助內(nèi)置變量通過提前寫的腳本提高Kubernetes 部署部分的資源清單的重復(fù)可用性


          監(jiān)控預(yù)警系統(tǒng)

          實(shí)現(xiàn)三個(gè)緯度(業(yè)務(wù)監(jiān)控、應(yīng)用監(jiān)控、操作系統(tǒng))的監(jiān)控預(yù)警系統(tǒng)。

          其中業(yè)務(wù)監(jiān)控主要是研發(fā)提供一些業(yè)務(wù)指標(biāo)、業(yè)務(wù)數(shù)據(jù)。對(duì)其增上率、錯(cuò)誤率等進(jìn)行告警或展示,需要提前定義規(guī)范甚至埋點(diǎn)。

          應(yīng)用程序的監(jiān)控主要有探針和內(nèi)省。其中探針主要是從外部探測(cè)應(yīng)用程序的特征,比如監(jiān)聽端口是否有響應(yīng)。內(nèi)省主要是查看應(yīng)用程序內(nèi)部的內(nèi)容,應(yīng)用程序通過檢測(cè)并返回其內(nèi)部的狀態(tài)、內(nèi)部的組件,事務(wù)和性能等度量,它可以直接將事件、日志和指標(biāo)直接發(fā)送給監(jiān)控工具。

          操作系統(tǒng)主要是監(jiān)控主要組件的使用率、飽和度以及錯(cuò)誤,比如CPU的使用率、CPU的負(fù)載等。

          一提之舉在:

          • 三個(gè)緯度

          • 裸機(jī)也進(jìn)行監(jiān)控

          • Windows也進(jìn)行監(jiān)控


          服務(wù)治理

          隨著業(yè)務(wù)的不斷微服務(wù)化、對(duì)于服務(wù)的運(yùn)行的失控感越來越強(qiáng)、且對(duì)東西向流量的管理成為了急需解決的痛點(diǎn)、而Kong網(wǎng)關(guān)的A/B test是付費(fèi)版的開箱即用功能,而我司恰恰開始需要此功能。基于上服務(wù)治理開始進(jìn)行視野。

          我司對(duì)于服務(wù)治理的使用應(yīng)算中度依賴,主要使用到如下點(diǎn):

          • 負(fù)載均衡:基礎(chǔ)服務(wù)使用最少連接策略,業(yè)務(wù)層服務(wù)使用一致性哈希負(fù)載均衡。

          • 健康檢測(cè):輸出健康檢測(cè)具體配置方案。(如:基礎(chǔ)移出時(shí)間30秒,10秒內(nèi)出現(xiàn)3次錯(cuò)誤移出,檢測(cè)時(shí)間間隔為10秒……)

          • 連接池:創(chuàng)建連接池,每個(gè)實(shí)例最大處理請(qǐng)求數(shù)為10,每個(gè)連接處理2個(gè)請(qǐng)求后關(guān)閉,重試次數(shù)為3次,連接超時(shí)時(shí)間為500ms。

          • 熔斷策略:根據(jù)健康檢測(cè)和連接池策略實(shí)現(xiàn)熔斷策略

          • 重試策略:最多重試3次,每次調(diào)用超時(shí)為2秒。

          • 限流策略:后期用戶數(shù)提高后再實(shí)行。

          • 鏈路追蹤


          一提之舉在:基于EnvoyFilter和Lua開發(fā)對(duì)接鑒權(quán)服務(wù)和Istio。

          私有化部署

          因我司主打產(chǎn)品為3D編輯器,數(shù)據(jù)保密性要求極高,大型企業(yè)更在意數(shù)據(jù)由自己掌握,所以在這近一年中做了好幾個(gè)私有化部署項(xiàng)目。

          在做私有化部署項(xiàng)目中學(xué)到了很多:

          • 業(yè)務(wù):需要知道客戶需求牽扯到的服務(wù)有那些,作出路由規(guī)劃表。

          • 集群:根據(jù)客戶的需求,估算出資源需求。

          • 溝通:需要和客戶(基本是非技術(shù)類)、我司運(yùn)營等人于啊進(jìn)行技術(shù)上的溝通,需要將繁瑣的技術(shù)通俗化。

          • 時(shí)間:根據(jù)客戶的規(guī)定時(shí)間和我司的實(shí)際現(xiàn)狀規(guī)劃出準(zhǔn)備、部署、測(cè)試、交付的時(shí)間段,考驗(yàn)項(xiàng)目時(shí)間把握度。

          • 協(xié)調(diào):在項(xiàng)目部署中難免會(huì)出現(xiàn)一些配置類的問題,需要后端人員介入。


          一提之舉在:私有化部署嚴(yán)重考驗(yàn)對(duì)業(yè)務(wù)、集群的熟悉度,是考驗(yàn)一個(gè)運(yùn)維人員的技能修養(yǎng)的。


          總結(jié)


          始終認(rèn)為IT是一座道場(chǎng),修道,修道,修一座自己的道場(chǎng)。在畢業(yè)的近1年中,經(jīng)歷了入道、闖道、修道階段,到目前的悟道階段。

          需要提升和掌握的知識(shí)還有很多,技術(shù)沒有止境,依然在路上。云原生是一條充滿機(jī)遇的路,堅(jiān)持與不斷追求才能翻過一座又一座高山。


          展望

          • 悟道(認(rèn)知和思想,是拉開人與人之間的重要差距)

          • 試道(出道下山、世界這么大)

          • 圍繞Kubernetes展開云原生的涉獵,更快的參與二開和社區(qū)。


          過手如登山,一步一重天!

          - END -

          ?推薦閱讀?

          31天拿下K8S含金量最高的CKA+CKS證書!?
          基于Nginx實(shí)現(xiàn)灰度發(fā)布與AB測(cè)試
          做到這幾點(diǎn),Kubernetes 集群穩(wěn)定性提升66%
          神器 Nginx 的學(xué)習(xí)手冊(cè) ( 建議收藏 )
          運(yùn)維必備的DevOps工具鏈大盤點(diǎn)
          Nginx配置中一個(gè)不起眼字符"/"的巨大作用,失之毫厘謬以千里
          企業(yè)級(jí)日志系統(tǒng) ELK 原理與實(shí)踐詳細(xì)介紹
          編寫 Dockerfile 最佳實(shí)踐
          運(yùn)維工程師不得不看的經(jīng)驗(yàn)教訓(xùn)和注意事項(xiàng)
          終于搞懂了服務(wù)器為啥產(chǎn)生大量的TIME_WAIT!
          搭建一套完整的企業(yè)級(jí) K8s 集群(v1.20,二進(jìn)制方式)



          點(diǎn)亮,服務(wù)器三年不宕機(jī)

          瀏覽 35
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  xx视频网站 | 免费无码做爱视频 | 国产亚洲在线观看 | 夜色综合网 | 日韩三级片在线视频 |