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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

初探云原生应用管理(一): Helm 与 App Hub

發布時間:2025/3/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初探云原生应用管理(一): Helm 与 App Hub 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

系列介紹:初探云原生應用管理系列是介紹如何用云原生技術來構建、測試、部署、和管理應用的內容專輯。做這個系列的初衷是為了推廣云原生應用管理的最佳實踐,以及傳播開源標準和知識。通過這個系列,希望幫助大家學到 Kubernetes、Helm、Gitops、Kustomize 等新知識。

這是大廠程序員小張普普通通的一個早晨,大家好像在討論著什么:

“什么?聽說隔壁公司在用 K8s 發布應用了?”

“據說在用 Helm !”

像往常,小張根本不關心這些無聊的討論。他穩穩的坐在辦公桌前,打開公司內部自研的、魔改 Gitlab 打造的項目管理系統,點擊了好幾個 Button 之后,開始一天辛勤的勞作。

但這一次不知道為何,小張的內心居然有點慌:
“ Helm?啥是 Helm ?”

------ 分割線 ------

Helm: K8s 應用部署與打包工具

如果一個用戶想要部署起來一個K8s 應用,最快捷的方法是什么呢?

我們知道,Kubernetes (簡稱 k8s ) 是一個能夠部署和管理容器的平臺。然而,在 k8s 里還沒有抽象到“應用”這一層概念。一個應用往往由多個 k8s 資源 ( Deployment、Service、ConfigMap )組成。所以,我們需要一個工具在 k8s 之上來部署和管理一個應用所包含的資源( K8s API Resource ),這就是 Helm 所做的事情。

除此以外,Helm 定義了一套 Chart 格式來描述一個應用。怎么理解 Chart 呢?打個比方,一個安卓程序打包成 APK 格式,就可以安裝到任意一臺運行安卓系統的手機上。如果我們把 k8s 比做安卓系統,K8s 應用比做安卓程序,那么 Chart 就可以比做 APK。這也意味著,K8s 應用只要打包成 Chart ,就可以通過 Helm 部署到任意一個 k8s 集群上。

通常來說,我們可以直接使用別人已經做好的 Helm Chart ,就跟使用 Docker 鏡像一樣。所以,Helm 社區已經維護了一個官方 Helm Hub,這個 Hub 里包含的應用非常豐富,是目前云原生開發者搜索和下載應用的主要站點。

AppHub: Helm Hub 的中國小站

不過,遺憾的是,在國內使用 Helm Hub,對于絕大多數開發者來說都是很痛苦的一件事情。

原因很簡單,隨便打開一個 Charts 文件,你就會看到這個文件里充斥著大量的不可訪問的鏡像 URL :


或者是依賴根本訪問不到的 Charts 庫:

咱們軟件工程師的時間這么寶貴(少),根本不想花時間解決這些無聊的網絡問題上(大霧)!

可是,看著國外的程序員們通過一條 helm install 命令就把應用部署起來,咱們怎么感覺還是有點酸呢 ……

所以在正式開始探索云原生應用管理之前,我們首先要為你介紹一個叫做“開放云原生應用中心” ( Cloud Native App Hub,簡稱 AppHub ) 的服務,它的主頁是:https://developer.aliyun.com/hub。

AppHub 是一個托管在國內公有云上、全公益性的 Helm Hub “中國站”,它的后端由阿里云容器平臺團隊的三位工程師利用 20% 時間開發完成。

而這個站點的一個重要職責,就是把所有 Helm 官方 Hub 托管的應用自動同步到國內;同時,自動將 Charts 文件中的 gcr.io 等所有有網絡訪問問題的 URL 替換成為穩定的國內鏡像 URL 。

這樣,國內的開發者也可以自由的使用 helm install 來安裝應用了!

接下來,我們就進入喜聞樂見的實踐環節!

實例:用最快的速度部署 Guestbook

首先,當然是安裝 Helm 。

在這里我們強烈推薦你使用 Helm v3 版本。

Helm v3 跟 Helm v2 的區別就像 Python 2 和 3 那么大,而且還比 Helm v2 要好用的多(比如:不需要安裝服務端組件 Tiller)。我們下周的《為什么你必須盡快轉向 Helm v3 》文章,會為你解釋這個事情。

而為了方便國內開發者使用,我們已經自動同步了 Helm v3 二進制文件的下載鏈接到國內(一定要試,真的是秒下):

  • MacOS amd64 tar.gz
  • MacOS amd64 zip
  • Linux 386
  • Linux amd64
  • Linux arm64
  • Windows amd64

下載到 Helm 二進制文件直接解壓到 $PATH 下就可以使用了。

接下來,我們使用 Helm 快速部署一個 guestbook 應用。這里假設你有一個阿里云 Kubernetes 服務在運行了(如果沒有的話也沒關系,下面還有自建 K8s 集群的例子)。

第一步是添加 apphub 作為你的 Helm Hub Repo:

$ helm repo add apphub https://apphub.aliyuncs.com

可以直接在命令行搜索 guestbook:

$ helm search guestbook NAME CHART VERSION APP VERSION DESCRIPTION apphub/guestbook 0.2.0 1.0.0 A Helm chart to deploy Guestbook three tier web...

然后,只需一行命令即可:

$ helm install guestbook apphub/guestbook

訪問 Guestbook 服務

部署完成后,運行以下命令來查詢并等待 pods 啟動完畢 ( Running ):

$ kubectl get pod NAME READY STATUS RESTARTS AGE guestbook-d85895895-5mdx6 1/1 Running 0 5m59s guestbook-d85895895-zh4l4 1/1 Running 0 5m59s redis-master-7b5cc58fc8-2wjmn 1/1 Running 0 5m59s redis-slave-859585ff7f-4v9hj 1/1 Running 0 5m59s redis-slave-859585ff7f-fppqn 1/1 Running 0 5m59s

查詢服務地址:

$kubectl get service -l app.kubernetes.io/name=guestbook NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE guestbook LoadBalancer 172.21.1.213 47.95.136.189 3000:32244/TCP 11m

通過 External IP 即可訪問 guestbook 服務:

使用 Minikube 或者自建 K8s 集群?

實際上,K8s 本身是不區分云上服務還是自建集群的。只不過在沒有云提供的負載均衡服務的話,Service 的訪問方式會稍微麻煩一些,比如使用 NodePort :

$ helm install guestbook apphub/guestbook --set service.type=NodePort

這條命令執行完之后,應用會自動提示你接下來的訪問方式。而通過–set 這種方式設置應用參數到底是怎么回事,我們后面的文章會細聊。

如果是 Minikube 的話,還需要把這個 NodePort Service 從 Minikube 里映射出來才能訪問:

$ minikube service guestbook

試用“一鍵安裝” (體驗功能)

除了正常的部署方法, AppHub 上也可以通過網頁 UI 來體驗一鍵部署 Chart 到任何云的 k8s 上。

舉個例子,只需打開 guestbook 應用詳情頁面,點擊 “一鍵安裝”:

然后在”安裝參數“彈窗里填寫相應的服務器 URL 和 base64 編碼的證書數據后,點擊“確認”,AppHub 就會嘗試安裝 guestbook chart 到對應 k8s 集群上,成功后會彈窗通知。

不過,這個功能目前只是“體驗”,因為你現在還沒辦法在 AppHub 上直接修改應用的配置參數。在線進行“應用定制”的功能就在 AppHub 的 Roadmap 里,預計下個月會上線。

不過,說起 Roadmap 的話:

AppHub 6 個月內的 Roadmap ,都在 Github 上開源!

是的,你可以通過 Github 來隨時對這個 Helm Hub 中國小站點提出你的改進思路。比如:如何更好的做“應用定制”?如何對接和托管你自己的 Charts Repo ?等等。

我們的口號是:每一位中國開發者,都是我們的 PM !(認真臉)

遠不止 Helm !


可以看到,通過 Helm 快速部署起來K8s 應用的過程,使用門檻和心智負擔都是非常低的。而相比于傳統的應用構建、編排和發布的流程,Helm + K8s 的自動化組合正在迅速成為云時代提升開發者效率的不二法寶。

而這里介紹到的所有同步自官方 Hub Repo 的應用 Charts ,全都托管在這個 Github 上: cloudnativeapp/charts。大家有對 AppHub 相關的任何吐槽,都歡迎來這個 Repo 提 issue ;也歡迎來通過提交 pull requests 把你的 Charts 和 Repo 加入到 AppHub 上。

不過,如果深入使用過 Helm 一段時間后,你可能會有些其他的感受:

比如: “Helm 里的 Release 的概念到底是啥意思? Helm 的 Rollback 又是咋回事兒,跟 K8s 是啥關系?”

“Helm 對 K8s 應用管理的流程,好像不是那么的 Native 啊,總感覺哪里不對啊。”

在后面的幾篇文章中,我們會和大家一起深入的分析 Helm 這套體系的優點和缺點,梳理在 K8s 架構中使用 Helm 的最佳實踐,分享和講解 Kustomize 流程和 GitOps 架構,以及更多的云原生應用管理的實例。

敬請期待吧!

作者簡介: 鄧洪超,阿里云工程師,前 CoreOS 軟件工程師、Kubernetes Operator 機制的初始作者之一、Operator 第二人(因為第一人是李響),對 K8s 應用管理體系有較多的研究和經驗。

總結

以上是生活随笔為你收集整理的初探云原生应用管理(一): Helm 与 App Hub的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 2018国产大陆天天弄 | 福利在线一区 | 韩日在线视频 | 日韩不卡在线播放 | 一二三毛片 | 99国产精品免费视频 | 人妻久久久一区二区三区 | 神秘马戏团在线观看免费高清中文 | 国产夜夜嗨 | 狠狠艹 | www.青青草.com | 亚洲精品激情视频 | www.久久精品 | 久久久久久9999 | 四虎永久在线精品免费一区二区 | 国产乱码精品一区二区三区精东 | 久久美女精品 | 夜夜躁很很躁日日躁麻豆 | 国产精品无码一区二区三 | 亚洲产国偷v产偷v自拍涩爱 | 人成免费在线视频 | 免费在线国产精品 | 亚洲第一视频在线观看 | 国产探花精品在线 | 波多野结衣一区 | 久久久久久久亚洲 | 三级五月天| 不卡视频在线观看 | 国产欧美一区二区精品忘忧草 | 欧美在线v | 国产乱国产乱300精品 | 强伦人妻一区二区三区视频18 | 日韩av一二三区 | 青青久视频 | 黑人一级 | 亚洲免费小视频 | 在线观看入口 | 久久久久久久久久一区二区 | 亚洲蜜桃精久久久久久久久久久久 | 中文字幕久久熟女蜜桃 | 黄色中文字幕在线观看 | 91成人在线免费观看 | 亚洲精品污一区二区三区 | 国产精品黄在线观看 | 黄色在线观看网址 | 大屁股一区二区三区 | 精品国产18久久久久久二百 | 熟妇人妻中文字幕无码老熟妇 | 2023毛片| 国产午夜免费福利 | 我要看一级黄色片 | 粉嫩精品久久99综合一区 | 激情视频网 | 日韩在线二区 | 毛茸茸多毛bbb毛多视频 | 受虐m奴xxx在线观看 | 国产日韩第一页 | 免播放器av | 日韩一区二区三区在线观看 | 免费在线观看你懂的 | 青娱网电信一区电信二区电信三区 | 一级福利片 | 五月激情小说网 | 欧美精彩视频 | 超碰2019| 黄色三级生活片 | 欧美乱大交xxxxx | 成人免费短视频 | 豆花视频成人 | 免费观看的av网站 | 精品国产一二 | 亚洲午夜在线播放 | 欧美久久久久久久久久久 | 欧美日韩色综合 | 91高清在线视频 | 午夜国产一区 | 狠狠操操 | 亚洲s码欧洲m码国产av | 成人午夜视频网站 | 人人射av | 四虎在线免费观看 | 丰满少妇麻豆av苏语棠 | 处破女av一区二区 | 色老头综合 | 高清欧美性猛交xxxx黑人猛交 | 日韩无套无码精品 | 成人精品视频99在线观看免费 | japan粗暴video蹂躏 | 午夜大片 | 蜜臀999 | 毛片毛片毛片毛片毛片毛片毛片毛片 | free性m.freesex欧美 | 成人一级大片 | 亚洲美女性视频 | 少妇无码av无码专区在线观看 | 香蕉国产在线观看 | 亚洲成人精品av | 精品国产va久久久久久久 | youjizzxxxxx|