成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

來自Kubernetes和CI/CD的優秀實踐

譯文
開發 前端
容器和Kubernetes已在計算界引入了一致性的新范式,為工程團隊提高了速度和敏捷性。通用聲明性語言提供了描述應用程序和操作任務的融合,使Kubernetes成為一種運行分布式工作負載的流行平臺。

[[399937]]

【51CTO.com快譯】容器和Kubernetes已在計算界引入了一致性的新范式,為工程團隊提高了速度和敏捷性。通用聲明性語言提供了描述應用程序和操作任務的融合,使Kubernetes成為一種運行分布式工作負載的流行平臺。

在聲明性YAML中指定所需狀態后,Kubernetes著手解決和實現已聲明的狀態,比如應用程序的副本數。若有任何偏差,Kubernetes會竭力解決實際狀態與聲明狀態之間的差異,比如垂死和重新啟動的pod/容器。

對于初次部署到Kubernetes的用戶來說,感覺非常快速。一旦向kubectl發出了go [apply]命令,編寫最簡部署YAML意味著您啟動并運行起來。需要更改時,Kubernetes會利用其優勢之一:滾動更新,逐步更改。觀看滾動更新進行,如果您習慣于手寫滾動更新規則的平臺,這使Kubernetes看起來輕而易舉。

盡管Kubernetes有種種好處,但擁有良好的CI/CD(持續集成/持續部署)實踐是關鍵。利用Kubernetes的優勢推動您的CI/CD旅程。

CI和Kubernetes的優秀實踐

持續集成(CI)是構建自動化的過程。比如說,Java應用程序需要內置到JAR中,然后如果進入到Kubernetes,需要進行Docker化處理,可能以Helm chart之類的格式進行打包/描述。在容器世界,由于容器不可變,需要的任何更改都將帶來新的映像,因此將頻繁調用CI過程來構建和打包新映像。

在Kubernetes上運行持續集成過程是謹慎的舉動,因為構建和打包軟件會占用大量的計算資源。每次提交啟動構建的現代方法實際上對基礎架構造成了負擔,對于容器化構建而言更是如此。利用Kubernetes構建和打包軟件是很好的用例,因為現代CI工具專注于在Kubernetes中創建臨時構建runner/節點。隨著構建請求進來,只需啟動新實例以創建構建工件,然后作業完成后關閉實例。

可以在臨時容器中輕松運行的持續集成信任建立步驟包括單元測試、集成測試和安全掃描等步驟。映像/容器掃描步驟可能是分解和驗證Docker層,計算尤其密集型,類似運行計算密集型的構建任務。由于每個構建都可能引入新的依賴項或新版本的依賴項,每次您構建新映像時,運行容器掃描很重要。

不過有些組件需要比臨時容器更持久,需要更持久的存儲。持續集成的退出步驟是將創建的工件/程序包發布到工件存儲庫,及/或將清單文件發布到相應的源代碼管理/程序包管理器解決方案。在Kubernetes界,這也可能是創建Kubernetes需要部署的所需清單文件,比如Helm chart或Kustomize/JSONNET資源。使用Kubernetes進行CI的目標是生成易于部署的工件,而程序包/配置/模板管理器允許這么做。

除非Kubernetes集群上的工作負載可以使用高可用性/持久存儲,否則將工件存儲庫作為SaaS來運行或在K8s集群上運行很明智。致命弱點是工件存儲庫本身就是存儲密集型。擁有可部署的工件/清單文件只是使您的想法落到最終用戶手里的一部分。下一步是部署。

CD和Kubernetes的優秀實踐

持續交付(CD)的目的是將變更安全地部署到生產環境。Kubernetes能夠非常快速地部署,如果使用重建策略(所有pod被殺死并被替換)更是如此,而不是借助滾動策略增量部署。但是這會導致停機。我們大多數人處理一直運行的工作負載,因此停機將是不利因素。由于Kubernetes立即可用,忍住盡快部署的沖動似乎不合常理,卻是建立信任所需要的。

在您開始使用Kubernetes之后,從應用程序在Kubernetes之前經歷的建立信任演練入手仍然很重要。比如說,仍需要測試和覆蓋需求。至于Kubernetes,可能會有更多的問題。出于可移植性的原因,運行一致性測試來驗證要部署到的Kubernetes基礎架構并不罕見。可移植性當初就是利用Kubernetes的一大賣點。

與在Kubernetes上運行持續集成步驟相似,在Kubernetes上運行某些持續交付步驟也是審慎的做法。在Kubernetes集群上可以輕松地搭建和關閉測試基礎架構。視信任建立步驟的長短,可能會有編排所需的工作流程方面。是否在Kubernetes上運行長期/有狀態的工作負載的相同設計原則和決策也適用于編排。

推進旅程

由于基礎架構和應用程序之間的界限因Kubernetes而模糊,常見的系統設計悖論在Kubernetes中很容易上演。Kubernetes出現之前,開發工程師將程序直接部署到生產環境并非常態。通常,它以某種CI / CD平臺作為門面,會有不同程度的自動化,批準后才可以進入到生產環境。

如果使用Kubernetes,您可以通過命名空間分離,輕松地在同一集群上面運行構建、信任建立步驟和部署,這取決于您在隔離與擁有單個集群方面走得多遠。由于現代工具和GitOps潮流受到追捧,開發者可以強制執行標準,比如漂移檢測和部署聲明性狀態的自我愈合。

Kubernetes能做出一般的反應,比如按控制器定義來做出反應。好的方法是從基準偏離情況,關注監控/可觀察性系統。如今可以在Harness平臺上以自動化的方式將這些工具編排成判斷調用(比如,決定是否需要回滾)。隨著更多組織進一步推進Kubernetes旅程,明智的做法是在擁抱這些新范式的同時,別忘記Kubernetes之前就有的準則或理念。

原文標題:Kubernetes CI/CD Best Practices,作者:Ravi Lachhman

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:華軒 來源: 51CTO
相關推薦

2022-09-05 15:12:34

數據庫GitHub開發

2021-07-28 13:23:32

CICD管道安全漏洞

2023-05-04 16:03:50

KubernetesCI/CD集成

2019-05-21 10:45:44

Docker架構容器

2021-07-23 10:17:17

網絡攻擊存儲供應鏈

2023-01-16 08:00:00

2021-03-11 14:33:28

Kubernetes開源容器

2020-10-21 14:10:28

工具測試開發

2023-03-24 16:03:27

DevOps工具

2022-09-01 08:50:22

kubernetes容器

2024-01-22 12:46:00

KubernetesAPI接口

2021-03-01 19:24:13

Kubernetes備份容器

2021-06-08 10:26:10

云計算云計算產業云應用

2021-09-07 08:23:45

GitOpsCICD

2021-01-18 09:35:17

Travis-CGithub ActiLinux

2021-02-10 08:24:47

微服務CICD

2022-02-22 09:00:00

軟件開發CI/CD 管道工具

2020-10-12 07:00:00

JenkinsDevOps測試工具

2018-07-18 09:45:09

云服務Kubernetes實踐

2022-12-26 07:52:33

DockerfileFROM命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文字幕在线播放 | 久久久久国产精品午夜一区 | 欧美精品一区二区三区蜜桃视频 | 一级a性色生活片久久毛片波多野 | 国产精品不卡一区 | 日韩视频在线一区 | 成人高清视频在线观看 | 中文字幕在线播放第一页 | 一区二区三区日韩 | 五月香婷婷| 天天综合网天天综合 | 成人免费视屏 | 欧美a在线 | av三级| 国产a区 | 国产精品无码专区在线观看 | 国产一区久久 | 久久久久久艹 | 高清欧美性猛交xxxx黑人猛交 | 亚洲综合无码一区二区 | 精品一区二区三区中文字幕 | av中文字幕网 | 超碰在线播| 美女久久久久久久 | 一级一级毛片免费看 | 成人在线视频看看 | 国产精品久久久久久久久久免费看 | 久久综合久色欧美综合狠狠 | 久夜精品 | 午夜精品一区二区三区在线观看 | 精品一区二区三区在线观看国产 | 欧美天堂 | 九九久久精品视频 | 国产成人久久精品一区二区三区 | 亚洲视频在线一区 | hdfreexxxx中国妞 | 精品九九| 精品1区| 日韩精品一区二区三区中文字幕 | 一区二区不卡视频 | 久久综合九九 |