日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

6张图,带你深入理解GitOps,真硬核!

發(fā)布時(shí)間:2023/12/4 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6张图,带你深入理解GitOps,真硬核! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

大家好,我是小碗湯,今天分享一篇6張圖深入理解GitOps,內(nèi)容硬核,建議兄弟們收藏~

在使用 K8s 的云原生應(yīng)用中,Serverless,Devops 工具以及大量其他云技術(shù)。通常,基礎(chǔ)設(shè)施代碼和應(yīng)用程序代碼是分開和單獨(dú)部署的,從而會(huì)導(dǎo)致系統(tǒng)狀態(tài)和配置漂移、不穩(wěn)定、錯(cuò)誤配置變更等問題。

GitOps 將 Git 與 GitOps Operator 工具結(jié)合在一起,它們通常都在 K8s 中,使 Git 為開發(fā)人員提供更高效、更安全、更集中的版本控制,是 K8s 的集中式操作模型、可以更快發(fā)布版本。


今天,容器化已經(jīng)成為在開發(fā)、測(cè)試和生產(chǎn)環(huán)境中運(yùn)行應(yīng)用程序的標(biāo)準(zhǔn)方式。因此,容器編排已經(jīng)成為部署過程中不可或缺的一部分。

容器在一個(gè)獨(dú)立的實(shí)例中運(yùn)行應(yīng)用程序及其所有依賴項(xiàng),類似于 VM,但更輕量。它們與運(yùn)行它們的主機(jī)共享操作系統(tǒng)內(nèi)核存儲(chǔ)和網(wǎng)絡(luò)。容器可以在持續(xù)集成和持續(xù)部署過程中,保證操作系統(tǒng)、依賴項(xiàng)和應(yīng)用程序不變。

目前為止,Docker 仍是最流行的容器運(yùn)行時(shí)。當(dāng)多個(gè)容器同時(shí)運(yùn)行時(shí),我們需要編排。可以在單個(gè)或少量 docker 服務(wù)器上部署許多容器,但管理網(wǎng)絡(luò),存儲(chǔ),容器編排,這就是 K8s 發(fā)揮作用的地方。

K8s 是一種編排解決方案,它抽象了運(yùn)行多個(gè)容器的復(fù)雜性,甚至是在多個(gè)集群中運(yùn)行這些容器的復(fù)雜性。它接管了成百上千個(gè)容器的計(jì)算、網(wǎng)絡(luò)和存儲(chǔ),但它依賴這些底層基礎(chǔ)設(shè)施。

對(duì) CI/CD 流程的理解

在進(jìn)入GitOps的核心概念之前,先了解一下容器和k8s是如何兼容CI/CD Pipeline的。

標(biāo)準(zhǔn)CI/ CD流程

上圖顯示了一個(gè)標(biāo)準(zhǔn)的持續(xù)集成和交付過程。這個(gè)過程可能相當(dāng)復(fù)雜,便于理解,我們盡量保持簡單。

  • 這里首先由開發(fā)人員提交代碼并將其推送到版本控制系統(tǒng)(通常是 git)。

  • 創(chuàng)建一個(gè) pull 請(qǐng)求合并到主分支。一旦代碼被合并,它就會(huì)觸發(fā)自動(dòng)構(gòu)建,將這些提交的更改合并到一起。

  • 構(gòu)建發(fā)生在 CI 服務(wù)器上,如果構(gòu)建和測(cè)試一切順利,則構(gòu)建應(yīng)用程序的容器鏡像,并將其推送到容器注冊(cè)中心。這個(gè)過程被稱為持續(xù)集成。

  • 代表應(yīng)用程序不同版本的容器鏡像存儲(chǔ)在注冊(cè)表中,以便部署在不同的環(huán)境中進(jìn)行測(cè)試。作為持續(xù)集成的擴(kuò)展,這些步驟被稱為持續(xù)交付。

  • 當(dāng)測(cè)試通過時(shí),可以觸發(fā)應(yīng)用程序新版本的自動(dòng)化生產(chǎn)部署。

  • CI/CD 過程中可能涉及多個(gè)手動(dòng)步驟,但是當(dāng)隨著時(shí)間推移,開發(fā)過程變得成熟時(shí),可能會(huì)取消手動(dòng)干預(yù),這稱為持續(xù)部署。

    在持續(xù)交付過程中,在k8s中設(shè)置預(yù)期的狀態(tài),然后根據(jù)鏡像創(chuàng)建單個(gè)容器。但是容器鏡像在本質(zhì)上是不可變的,所以當(dāng)我們需要更新已部署的應(yīng)用程序時(shí),需要使用新代碼和所有依賴項(xiàng)創(chuàng)建一個(gè)新的容器鏡像。

    為了獲得所需的狀態(tài),k8s從遠(yuǎn)程注冊(cè)表獲取鏡像并達(dá)到期望狀態(tài)。我們需要為它提供一組k8s配置清單,這些配置清單描述應(yīng)用程序?qū)⑷绾芜\(yùn)行。這些YAML清單引用容器鏡像來標(biāo)識(shí)部署的應(yīng)用程序版本,還包含其他配置,如:副本實(shí)例數(shù)、健康檢查、安全和自動(dòng)伸縮等。

    配置漂移問題

    K8s 將嘗試根據(jù)YAML中的定義,向期望狀態(tài)接近,它也將響應(yīng)之后的用戶請(qǐng)求來更改所需狀態(tài)。

    這可以使用不依賴于YAML清單的命令(kubectl 命令)來完成。這些命令會(huì)改變期望狀態(tài),配置開始偏離YAML清單中已經(jīng)定義的內(nèi)容。

    讓我們用一個(gè)例子來理解它:

    這里簡化了 CI/CD 過程,以關(guān)注在一段時(shí)間內(nèi)配置漂移問題是如何發(fā)生的。

    從v1版本的應(yīng)用程序部署到k8s集群開始。

    我們已經(jīng)定義的 CI/CD 流程,用于按照我們預(yù)期的狀態(tài)(DSC 1)將配置應(yīng)用到集群。

    現(xiàn)在,應(yīng)用程序在集群中以定義的期望狀態(tài)(DSC 1)運(yùn)行了一段時(shí)間,但最終出現(xiàn)了一些操作問題。

    例如:由于流量突然增加,應(yīng)用數(shù)量需要在節(jié)點(diǎn)級(jí)擴(kuò)容,或一些安全配置需要立即應(yīng)用到集群。為此,需使用必要的命令改變配置,改變已部署的應(yīng)用程序。如下面所示圖:

    最終,在生產(chǎn)環(huán)境中長時(shí)間運(yùn)行應(yīng)用程序后,應(yīng)用程序的版本 2 (App Version 2)已經(jīng)準(zhǔn)備好了新特性,并上傳工作負(fù)載清單以引用較新的鏡像。

    同樣,我們的 CI/CD 將負(fù)責(zé)應(yīng)用更新后的YAML清單,并且我們將依賴 K8s 在期望的狀態(tài)下優(yōu)雅地處理更改。

    但理想狀態(tài)是什么?是更新后的清單引用了新的容器鏡像嗎?

    它是我們?cè)趧?dòng)態(tài)集群中所做的必要更改和新的工作負(fù)載清單的合并嗎?

    K8s 認(rèn)為理想狀態(tài)應(yīng)該是什么?

    這個(gè)問題的答案是:K8s 會(huì)根據(jù)要求合并配置更改,但是集群的狀態(tài)將不再準(zhǔn)確反映我們開始時(shí)使用的 YAML 配置清單。

    什么是 GitOps?

    配置漂移可能是一個(gè)嚴(yán)重的問題,我們最好管理配置的完整性,以便在 K8s 中配置的內(nèi)容準(zhǔn)確地反映預(yù)期。

    GitOps 就為了解決這個(gè)問題。它可以用來有效地管理配置,并幫助實(shí)現(xiàn)可靠和自動(dòng)化的部署。

    GITOPS是依賴于軟件自動(dòng)化建立期望狀態(tài)的云原生應(yīng)用程序的操作模型模式,其使用版本控制系統(tǒng),作為提供自動(dòng)連續(xù)交付的真實(shí)來源。

    所以 GitOps 通常描述的是期望的狀態(tài)配置,并將其存儲(chǔ)在版本控制系統(tǒng)中,它管理在期望狀態(tài)下的變化。然后通過自動(dòng)化代理(如 Flux 或 Argo CD)將這個(gè)期望的狀態(tài)應(yīng)用到目標(biāo)環(huán)境(k8s,但不一定),然后根據(jù)版本控制系統(tǒng)中可用的內(nèi)容持續(xù)監(jiān)視系統(tǒng)的實(shí)際狀態(tài)。

    自動(dòng)化代理可以是外部的,也可以在系統(tǒng)內(nèi)運(yùn)行。他們連續(xù)監(jiān)測(cè)系統(tǒng),并觀察配置漂移的行為,做一些操作(可以配置為發(fā)出警報(bào),或者以自動(dòng)化的方式進(jìn)行修復(fù))。

    GitOps 的部署策略

    GitOps 的部署策略可以用推模型或拉模型來實(shí)現(xiàn),下面我們?cè)囍ダ斫膺@兩種模型。

    Push Model

    在本文開頭,我們討論了標(biāo)準(zhǔn)的 CI/CD 過程是怎樣的,即開發(fā)人員將代碼推送到 VCS,然后通過 pull request 觸發(fā) CI 構(gòu)建。從那里產(chǎn)生的 docker 文件作為 CI 過程的結(jié)果,存儲(chǔ)在注冊(cè)表。在 CD 過程中部署到 K8s 集群,如下步驟 1,3,4,5 和 6 所示。

    Push部署策略

    Push 部署策略

    GitOps 的 Push 部署策略非常類似于 CI/CD 流程,只是清單文件包含了定義 K8 服務(wù)器需要?jiǎng)?chuàng)建對(duì)象的配置。Manifest 文件也在 VCS 中管理,可以是同一個(gè) VCS,也可以是單獨(dú)的存儲(chǔ)庫。

    正如我們上面討論的,部署和監(jiān)控應(yīng)用程序的自動(dòng)化過程可以是外部的,也可以是內(nèi)部的,對(duì)于 Push 部署策略,它是外部的,通常由同一個(gè) CI 服務(wù)器管理。CI 服務(wù)器可以執(zhí)行kubectl apply命令,將 manifest 應(yīng)用到集群中。

    Pull Model

    在GitOps Pull場(chǎng)景中,自動(dòng)化不是從集群外部操作,而是在集群內(nèi)部部署一個(gè)代理。它作為Kubernetes Operator運(yùn)行,能夠跟蹤包含 K8s 清單的 VSC 倉庫。

    Pull部署策略

    Pull 部署策略

    當(dāng)它在集群中運(yùn)行時(shí),它知道集群的實(shí)際狀態(tài)。如果它檢測(cè)到 VCS 中包含的真實(shí)源與集群中的實(shí)際狀態(tài)之間存在差異,它就會(huì)采取行動(dòng)。要么發(fā)出告警,要么試圖通過與 VCS 的內(nèi)容同步來調(diào)和差異。還可以將代理配置為以新鏡像的形式,監(jiān)視遠(yuǎn)程容器注冊(cè)表中應(yīng)用程序代碼的新版本。然后代理能夠在 VCS 中更新清單,并基于新鏡像觸發(fā)新的自動(dòng)部署。

    由于 Pull 部署策略需要K8s Operator來執(zhí)行操作,我們需要為此尋找特定的工具。雖然有多種可用的工具,但其中兩個(gè)是最受歡迎的,CNCF 也推薦了它們。例如Flux[1]和ArgoCD[2]??梢栽诠倬W(wǎng)中獲得更多細(xì)節(jié)。


    本文是對(duì) GitOps 的理解,以及它如何解決配置漂移問題,來實(shí)現(xiàn)系統(tǒng)的高級(jí)治理。深入研究 GitOps 工具,看它們是如何實(shí)現(xiàn)的,將在后續(xù)文章中做分析。



    本文翻譯自:https://reurl.cc/OpqNqX,版權(quán)歸原作者所有

    歡迎小伙伴們投稿原創(chuàng)文章~

    投稿格式:markdown格式的md文件

    投稿郵箱: pub@kubeinfo.cn

    參考資料

    [1]

    Flux: https://fluxcd.io/

    [2]

    ArgoCD: https://argo-cd.readthedocs.io/en/stable/


    點(diǎn)個(gè)在看你最好看

    總結(jié)

    以上是生活随笔為你收集整理的6张图,带你深入理解GitOps,真硬核!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 好吊视频一区二区 | 波多野结衣一本 | 中文字幕日日夜夜 | 在线91观看 | 色播视频在线 | 黄色国产在线观看 | 中文字幕一级片 | 精品久久无码视频 | 影音先锋久久 | 中国女人内谢69xxxx免费视频 | 久久久午夜精品福利内容 | 玖玖热在线视频 | 欧美一级成人 | 在线视频这里只有精品 | 一区二区三区在线视频免费观看 | 99色在线视频 | 人妻无码一区二区三区久久99 | 伊人888| 麻豆网站入口 | 日日夜夜婷婷 | 久草中文在线 | 美女被到爽高潮视频 | www色视频 | 青娱乐国产在线视频 | 多啪啪免费视频 | 中文字幕在线资源 | 欧美精品99| 久久久免费看片 | 亚洲天堂影院在线观看 | 久青草视频在线观看 | 国产天堂av在线 | 欧美xxxxx自由摘花 | 男生插女生视频在线观看 | 激情另类视频 | 在线免费av观看 | 免费在线你懂的 | 日本一区欧美 | 美女被草视频在线观看 | 亚洲av男人的天堂在线观看 | 欧美激情一区二区三区蜜桃视频 | 超碰在线播放97 | 97伦伦午夜电影理伦片 | avtt在线播放 | 啪啪免费 | 日本三级韩国三级三级a级中文 | av三级网 | 动漫av在线免费观看 | 一区二区三区精品国产 | 日本高清不卡视频 | 国产自产自拍 | 亚洲综合av一区二区三区 | 蜜桃中文字幕 | 日韩乱码人妻无码系列中文字幕 | 日韩中文字幕免费在线观看 | 欧美精品成人一区二区在线观看 | 日韩中文字幕一区二区三区四区 | 国产精品视频一区二区三 | 男人天堂久久 | 污污软件在线观看 | 国产一区二区三区四区五区六区 | 亚洲av乱码久久精品蜜桃 | 国产亚洲色婷婷久久 | 日本精品视频在线观看 | 国产成人啪免费观看软件 | 最好看十大无码av | 午夜剧场免费观看 | 日本网站在线 | 日日夜夜免费视频 | 不卡av电影在线观看 | 51国产视频 | 中日精品一色哟哟 | 亚洲乱码中文字幕 | 国产精品久久久久久网站 | 国产欧美精品 | 中文字幕 日韩 欧美 | 亚洲特黄一级片 | 黄色福利视频 | 亚洲欧美成人综合 | 日本人妻熟妇久久久久久 | 成人1区 | 香蕉久久夜色 | 欧美久久一区二区 | 日本阿v视频| 久久福利在线 | 久久超碰在线 | 全黄一级裸体片 | 成年人网站黄 | 夜夜草视频 | caoprom在线 | 理论片毛片 | 久久精品国产亚洲AV成人婷婷 | 久久午夜伦理 | 日本黄页网站免费大全 | 久草视频福利在线 | 亚洲视频免费 | 亚洲精品日韩在线 | 色网av| 国产午夜精品一区 | 免费观看一区二区三区毛片 |