自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從 Docker+Machine 到 Kubernetes:GitLab CI 遷移實(shí)錄

云計(jì)算 云原生
遷移到 Kubernetes 的過程雖然充滿挑戰(zhàn),但也帶來了擴(kuò)展性和基礎(chǔ)設(shè)施目標(biāo)的實(shí)現(xiàn)。然而,由于缺乏指導(dǎo)和頻繁的破壞性變更,這一過程變得不必要地痛苦。對于計(jì)劃進(jìn)行遷移的團(tuán)隊(duì)來說,雖然可能會(huì)遇到困難,但只要準(zhǔn)備好適應(yīng)和嘗試,遷移是可行的。

隨著 GitLab 宣布不再支持 Docker+Machine 執(zhí)行器,許多團(tuán)隊(duì)開始尋求替代方案。對于需要擴(kuò)展性和靈活性的團(tuán)隊(duì)來說,遷移到 Kubernetes 是一個(gè)自然的選擇。然而,這個(gè)過程并不像看起來那么簡單。在這篇文章中,我們將分享我們在遷移過程中遇到的挑戰(zhàn)、解決方案,以及對 GitLab 指導(dǎo)的改進(jìn)建議。

背景

GitLab 的 Docker+Machine 是 Docker Machine 的一個(gè)分支,而 Docker 已在 2021 年停止維護(hù)該技術(shù)。GitLab 計(jì)劃在 2027 年前停止 Docker+Machine 的維護(hù),促使團(tuán)隊(duì)在此之前進(jìn)行遷移。雖然 GitLab 推薦使用自動(dòng)擴(kuò)展器作為替代方案,但在實(shí)際操作中,遷移過程充滿復(fù)雜性,尤其對大型團(tuán)隊(duì)而言。

使用 GitLab SaaS 的現(xiàn)實(shí)挑戰(zhàn)

GitLab 是一個(gè)優(yōu)秀的產(chǎn)品,能夠簡化開發(fā)工作流。然而,對于使用其 SaaS 服務(wù)的團(tuán)隊(duì)來說,體驗(yàn)常常未能達(dá)到預(yù)期。作為平臺工程師,我們的目標(biāo)是通過改善工作流來賦能開發(fā)者,加快交付速度,減少摩擦。然而,我們卻花費(fèi)了大量時(shí)間在不明確的文檔上摸索配置最佳實(shí)踐,并處理頻繁的破壞性變更。尤其是大規(guī)模設(shè)置 Runner,感覺更像是試錯(cuò)而非明確的工程過程。

為什么選擇遷移

我們是一家電子商務(wù)零售商,技術(shù)部門有約 1000 名員工,其中超過 400 名是活躍的 GitLab 用戶。每月運(yùn)行近 100 萬個(gè) CI 任務(wù)。雖然我們的規(guī)模不算特別大,但工具和工作流中的低效問題對我們影響顯著。Docker+Machine 執(zhí)行器曾經(jīng)很好用,但隨著其被棄用,我們轉(zhuǎn)向 Kubernetes,尤其是因?yàn)槲覀兊幕A(chǔ)設(shè)施已經(jīng)以 Kubernetes 為中心。

核心挑戰(zhàn)

遷移過程中,我們面臨幾個(gè)關(guān)鍵挑戰(zhàn):

1. Runner 注冊和管理:Docker+Machine 中 Runner 是自動(dòng)注冊的,但 GitLab 的最近更新增加了復(fù)雜性。我們需要探索多種配置才能找到適合我們的方案。

2. 處理 Runner 令牌:Kubernetes 需要 Helm charts 來部署 Runner,但如何安全地存儲和檢索注冊令牌卻沒有明確的指導(dǎo)。我們最終選擇使用 AWS Systems Manager (SSM) Parameter Store。

3. Helm Chart 更新:每次 GitLab 升級都會(huì)破壞我們的 Helm 部署流程,迫使我們在每次版本更新后重寫部分管道。

confusion diagramconfusion diagram

我們的方法

我們采用了以下方法來解決這些挑戰(zhàn):

1. 動(dòng)態(tài) Runner 配置:設(shè)計(jì)了一個(gè)系統(tǒng),讓 GitLab CI 檢查現(xiàn)有的 Runner 管理器,并在必要時(shí)注冊新的 Runner。

2. 令牌檢索工作流:在部署過程中動(dòng)態(tài)從 AWS SSM 獲取令牌,確保安全存儲和重用。

3. 管道韌性:將 Helm chart 邏輯封裝在腳本中,驗(yàn)證配置變更后再應(yīng)用,并進(jìn)行全面的端到端測試。

4. 自定義輔助鏡像:創(chuàng)建定制的 GitLab 輔助鏡像,以增強(qiáng) CI/CD 管道的安全性和效率。

GitLab 的改進(jìn)建議

1. 提供遷移專用的文檔。

2. 提供清晰的 Kubernetes 工作流示例。

3. 確保版本升級不會(huì)不必要地破壞 Runner 注冊和其他工作流。

結(jié)論

遷移到 Kubernetes 的過程雖然充滿挑戰(zhàn),但也帶來了擴(kuò)展性和基礎(chǔ)設(shè)施目標(biāo)的實(shí)現(xiàn)。然而,由于缺乏指導(dǎo)和頻繁的破壞性變更,這一過程變得不必要地痛苦。對于計(jì)劃進(jìn)行遷移的團(tuán)隊(duì)來說,雖然可能會(huì)遇到困難,但只要準(zhǔn)備好適應(yīng)和嘗試,遷移是可行的。

GitLab 需要更加關(guān)注開發(fā)者體驗(yàn),提供更清晰的文檔和更少的破壞性變更,幫助團(tuán)隊(duì)更好地完成工作流。

責(zé)任編輯:武曉燕 來源: 云原生SRE
相關(guān)推薦

2021-11-10 08:20:20

GitLab KubernetesDocker

2023-08-28 16:10:00

容器化DockerKubernetes

2021-01-18 09:35:17

Travis-CGithub ActiLinux

2020-10-21 14:10:28

工具測試開發(fā)

2023-12-27 06:48:49

KubernetesDevOpsHTTP

2010-11-22 09:36:37

Perl腳本SolarisLinux

2024-05-14 08:19:54

2015-12-18 16:19:47

私有云從VMwareOpenStack

2022-05-18 09:48:07

ArmGitHubGitLab

2023-05-04 16:03:50

KubernetesCI/CD集成

2023-08-18 10:24:52

GitLabCI 流水線

2016-05-09 10:27:36

MySQLHive數(shù)據(jù)遷移

2024-11-11 09:39:11

Cloudflare遷移Go

2023-11-29 09:53:29

數(shù)據(jù)庫遷移SQL Server

2023-07-17 13:44:23

2024-07-08 08:11:15

2020-08-13 17:18:20

Kubernetes邊緣容器

2023-04-18 08:17:11

GitLab持續(xù)集成

2023-04-27 08:18:25

GitLab開源

2019-04-10 09:00:23

AWSOracle數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號