<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      用99元買的服務器搭一套CI/CD系統

      故事的開始是這樣的:無聊的時候在阿里云買了一個99/年的服務,上面部署了一個Git服務,用于托管自己無聊時寫的一些代碼,順便也拿它做開發服務器。為了方便應用管理,起初用docker來管理和部署應用,后來升級了一把,用上了docker-compose,畢竟跟手撕命令相比聲明式部署更顯科學,docker-compose對于依賴項目的管理更是深得我心。于是,這樣和諧的過了很久,直到不久前無聊的時候在騰訊云上領了一個體驗服務器,免費的。雖然是體驗版,但不用起來談何體驗呢,思來想去感覺應該組個集群,順便搞一套 CI/CD,這樣做不僅能大幅提升編碼幸福感,也能對K8s有個體面的認識。

      K3S

      K3s 是輕量級的、一個完全兼容的 Kubernetes 發行版。K3s 易于安裝,僅需要 Kubernetes 內存的一半,所有組件都在一個小于 100 MB 的二進制文件中(~70MB)。官方說希望安裝的 Kubernetes 只占用一半的內存。Kubernetes 是一個 10 個字母的單詞,他們只用5個,所以叫K3s。

      K3s很輕,適合2核2GB的云服務器裝著玩。雖然程序只有~70MB,但實際上包含Server和Agent兩個應用(同Master-Slave)。不僅如此,K3s 打包了所需的依賴,包括containerd、Flannel、Traefik、Service LB等等??瓷先ミ€是挺優秀的,實際上手還是有一些門檻的,由于基礎知識的缺失,單是kubectl這個工具都熟悉兩天。加上Flannel、LoadBalancer這些內容,服務器都重裝了好幾輪。好在,所有的問題都有一個標準答案,一路踩坑一路成長,總算把 K3s 給跑起來了。

      Harness(open source)

      記得它曾經叫Gitness,他們家東西挺多的,比如Drone。現在做強做大了,Gitness也改名叫Harness了,它資源消耗很小。Harness自帶Pipeline功能,這也是我比較喜歡的方式,CI的配置直接存項目里。它的服務是go寫的、ui是react、打包用webpack,或許是他們那里的網絡帶寬足夠大吧,它打包的時候沒有打壓縮包(像比較熟悉的gzip),服務上也沒做內容壓縮,部署在只有3M帶寬的服務器上加載速度著實感人,所以只能在代理層手動做 gzip 壓縮(順便還加上了http cache)。

      ArgoCD

      Argo CD是一款適用于Kubernetes 的聲明式GitOps 持續交付工具。應用程序的定義、配置和環境應該是聲明式的,并受版本控制。 應用程序的部署和生命周期管理應該是自動化的、可審計的,并易于理解。這是官方給出的介紹,簡單來說,它可以:

      1. 從Git倉庫拉取Kubernetes配置,并自動同步到集群。
      2. 提供可視化UI,支持應用管理、版本回滾等操作。
      3. 聲明式管理,所有變更都由Git驅動,保證部署一致性。

      在我的架構中,ArgoCD負責盯緊Git倉庫中的deployment.yaml,一旦檢測到更新,就會自動部署最新的版本。如果出現問題,直接在UI里點回滾,幾秒鐘搞定,優雅又高效。

      CI/CD 流程效果

      CI階段(Harness Pipeline)
      代碼push到Git倉庫后,Harness觸發Pipeline:

      1. Checkout代碼
      2. 安裝依賴 & 構建應用
      3. 構建Docker鏡像
      4. 上傳鏡像到阿里云鏡像倉庫(個人版免費)
      5. 修改deployment.yaml里的鏡像版本號。

      CI 到此結束,下一步交給 ArgoCD。

      CD階段(ArgoCD部署)

      1. 自動拉取最新配置deployment.yaml(deployment.yaml存放在Git倉庫中)。
      2. 自動同步或手動同步應用部署。

      最終,實現了代碼提交 → 自動構建 → 自動部署的完整閉環,整個過程無需手動干預,更新全自動完成!

      防坑指南

      最坑的還是AI大模型的幻覺問題,當下AI已成為生活必需品,它能快速的分析問題并給出解決方案,也正是因此被他帶著滿世界跑,兜兜轉轉還是回到了起點,下面盤點一下這次AI帶我跳過的坑。

      1、禁用Traefik
      安裝K3s時它就讓我直接把Traefik禁用,然后用Nginx或Caddy做反向代理。正好Caddy我熟,這坑跳得是無怨無悔。老實說,Caddy配置著實簡單,尤其是在開啟Let‘s Encrypt和gzip壓縮這件事上,于是果斷選擇了Caddy。起初手動部署項目的時候用著還挺順手的,直到安裝了ArgoCD要開始自動部署時,我忽然意識到了問題,程序雖自動部署了,域名綁定什么的咋整?又要上服務器嗎?哎!這才明白Ingress Controller是不可替代的。不過這一路也不虧,不僅提高了對Ingress Controller的認知,中間還因為Flannel配置導致的問題將LoadBalancer的知識也擼了不少(AI讓我把自帶的ServiceLB禁用了,自己安裝MetalLB,竟然也老老實實的跟著干了)。

      2、Harness Pipeline配置
      這個其實有點甩鍋,畢竟工具是我選的。在使用Pipeline插件構建docker鏡像這件事上,Harness自己的插件文檔給出來的代碼并不適用于Harness Pipeline。但又確實是AI胡編亂造的給我的配置文件,折騰到了幾乎要放棄的地步。好在放棄的前一刻,自己根據pipeline示例配置結合官方文檔魔改了一份,最后竟成功蒙混過關。

      最后

      從最初的99元服務器,到搭建完整的K3s + CI/CD體系,這一路踩了不少坑,但收獲也不少。Kubernetes的學習門檻確實不低,但只要愿意折騰,總能找到答案。
      如果對K3s感興趣,可以看看我的詳細筆記:https://www.aser1989.cn/docs/k3s/intro/

      posted @ 2025-04-01 22:38  ASER_1989  閱讀(1822)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 中文字幕人成无码免费视频| 精品午夜福利无人区乱码| 欧美牲交a欧美牲交aⅴ图片 | аⅴ天堂国产最新版在线中文 | 国产爆乳无码av在线播放| 激情亚洲专区一区二区三区| 亚洲精品一区二区五月天| 亚洲熟妇少妇任你躁在线观看无码| 十八禁午夜福利免费网站| 激情在线网| 国产片AV国语在线观看手机版| 国产精品自在线拍国产手青青机版 | 中文字幕有码在线第十页| 亚洲欧美综合精品成| 人妻有码av中文字幕久久琪| 国产黄色av一区二区三区| 国产精品无码成人午夜电影| 国产精品va在线观看无码不卡| 久久精品国产福利亚洲av| 亚洲国产成人AⅤ片在线观看| 成人国产乱对白在线观看| 天堂网av一区二区三区| 亚洲乱码日产精品bd在线| 国产一区二区三区在线观看免费| 久久久久久九九99精品| 亚洲国产精品日韩在线| 国产精品538一区二区在线| 被黑人巨大一区二区三区| 亚洲人成电影在线天堂色| 亚洲日韩av无码一区二区三区| 骚虎三级在线免费播放| 亚洲人午夜射精精品日韩| 中文字幕日韩精品有码| 国产一区二区三区黄色片| 日韩一区二区在线看精品| 国产在线观看91精品亚瑟| 国产精品人成视频免费播放| 日韩一区二区三区高清视频| 亚洲av日韩av中文高清性色| 国产免费无遮挡吸奶头视频 | 亚洲av永久无码精品漫画|