Helm Chart 部署 Redis 的完美指南
- 一、Helm介紹
- 二、安裝Helm
- 三、配置Helm的repository
-
四、部署chart(以部署redis為例)
- 1. 搜索chart
- 2. 拉取chart
- 3. 修改values.yaml的一些配置(簡單演示一下基本的配置)
- 4. 啟動chart
-
5. 升級和回滾
- a. 升級
- b. 回滾
一、Helm介紹
Helm是一個Kubernetes的包管理工具,就像Linux下的包管理器,如yum/apt等,可以很方便的將之前已經(jīng)打包好的yaml文件部署到kubernetes上。
三個基本概念:
- Chart:Chart 代表著 helm 包。它包含在 Kubernetes 集群內(nèi)部運行應(yīng)用程序,工具或服務(wù)所需的所有資源定義。
- Repository:是 chart 的存儲庫。例如:https://charts.bitnami.com/bitnami
- Release:Release 是運行在 Kubernetes 集群中的 chart 的實例。一個 chart 通常可以在同一個集群中安裝多次。每一次安裝都會創(chuàng)建一個新的 release。以 MySQL chart為例,如果你想在你的集群中運行兩個數(shù)據(jù)庫,你可以安裝該chart兩次。每一個數(shù)據(jù)庫都會擁有它自己的 release 和 release name。
二、安裝Helm
wget https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz
tar -xvf helm-v3.13.2-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
安裝完后可以使用 helm version 查看版本
三、配置Helm的repository
# 添加倉庫
helm repo add bitnami https://charts.bitnami.com/bitnami
# 也可以添加國內(nèi)的一些庫(阿里云等)
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
添加完成后可以使用 helm list 查看repo列表:
四、部署chart(以部署redis為例)
1. 搜索chart
# 查找redis
helm search repo redis
搜索出來可以看到有單機的redis或者集群的redis-cluster,APP VERSION表示redis的版本。
2. 拉取chart
# 拉取redis
helm pull bitnami/redis
拉取下來是一個tgz的壓縮包,需要進行解壓 tar -xvf redis-18.5.0.tgz ,解壓后會得到一個redis目錄,里面包含了redis的各種配置文件和啟動文件。
Chart.yaml # 包含了chart的一些基本信息
charts # 該目錄保存其他依賴的 chart
templates # chart 配置模板,用于渲染最終的 Kubernetes YAML 文件
NOTES.txt # 用戶運行 helm install 時候的提示信息
values.yaml # 定義 chart 模板中的自定義配置的默認值,可以在執(zhí)行 helm install 或 helm update 的
3. 修改values.yaml的一些配置(簡單演示一下基本的配置)
- global部分修改redis密碼,如果有動態(tài)存儲可以加上你提前建好的storgeClass,保證數(shù)據(jù)持久性;
?
-
architecture部分表示這個redis是集群還是單節(jié)點運行,如果集群改為replication,單節(jié)點改為standalone
-
service部分修改redis的服務(wù),包括端口,是否對外訪問,這里我們不對外,就改為ClusterIP
4. 啟動chart
helm install redis-cluster ./redis/ -n redis
# redis-cluster表示部署的名稱
# ./redis/ 表示chart的本地路徑,這里為當前目錄下的reids
# -n redis 表示命名空間,可以提前創(chuàng)建一個redis的命令空間
啟動后會有一些提示,包括告訴你如何進入redis容器內(nèi),對外暴露端口等一些操作。
# 查看redis是否啟動成功
kubectl get all -n redis
可以看到redis這個chart的所有狀態(tài)都為running,一主三從,進入redis終端內(nèi)驗證,使用剛剛配置的密碼登錄redis:
kubectl exec -it redis-master-0 -n redis bash
創(chuàng)建一些數(shù)據(jù) set name kubernetes ,然后在從節(jié)點驗證數(shù)據(jù)是否存在。
可以看到從節(jié)點已經(jīng)獲取到剛剛創(chuàng)建的name,但是在從節(jié)點創(chuàng)建數(shù)據(jù)是不行的,從節(jié)點只能讀取數(shù)據(jù)。
5. 升級和回滾
a. 升級
我們在剛剛已經(jīng)創(chuàng)建了一個redis的chart,實際生產(chǎn)環(huán)境中,可能需要修改一些配置,然后基于這個chart對我們應(yīng)用進行升級。
例如,我們這里修改一些redis的密碼,然后升級這個chart,我們編輯一下values.yaml把開頭創(chuàng)建的密碼“redis123”改成“redis456”。
# 升級redis
helm upgrade redis-cluster ./redis/ -n redis
# redis-cluster表示部署的名稱
# ./redis/ 表示chart的本地路徑,這里為當前目錄下的reids
# -n redis 表示命名空間,可以提前創(chuàng)建一個redis的命令空間
可以從時間看到我們的pod剛剛進行了更新,并且狀態(tài)都處于running狀態(tài),然后進入容器進行驗證,當我們輸入之前的密碼“redis123”,會報錯說密碼不正確,輸入更新后的密碼“redis456”,正常進入redis,如果一開始使用了數(shù)據(jù)持久化,這時候創(chuàng)建的數(shù)據(jù)應(yīng)該也不會丟失。
b. 回滾
# 先看看我們歷史的chart
helm history redis -n redis
可以看到第一個狀態(tài)為superseded是我們最開始創(chuàng)建的chart,第二個狀態(tài)為deployed是我們剛剛升級的chart,就是正在運行的,我們將版本回滾到第一個版本。
helm rollback redis 1 -n redis
可以看到我們已經(jīng)回滾到第一個版本,并且pod正在更新中,等到創(chuàng)建成功,可以驗證一下輸入“redis123”是否能進入到redis。
驗證成功,已經(jīng)回滾到版本1,使用舊密碼成功登錄redis。
當我們深入探索 Helm Chart 部署 Redis 的過程時,不僅僅是學(xué)習(xí)了如何利用 Helm 簡化復(fù)雜的部署任務(wù),更是領(lǐng)略到了在容器化世界中管理和維護應(yīng)用的便捷之處。通過 Helm Chart,我們可以輕松地定義、配置和部署復(fù)雜的應(yīng)用程序,使得整個過程更加靈活、可維護性更高。
在未來,我們可以繼續(xù)深入學(xué)習(xí) Helm 的更多高級功能,探索更多復(fù)雜應(yīng)用場景下的部署和管理方法。通過不斷學(xué)習(xí)和實踐,我們能夠更好地應(yīng)對日益復(fù)雜的容器化環(huán)境,提高工作效率,確保應(yīng)用的可靠性和穩(wěn)定性。
希望這篇博客能夠幫助你更好地理解 Helm Chart 部署 Redis,并在你的容器化旅程中提供一些有益的經(jīng)驗。讓我們一起迎接技術(shù)的挑戰(zhàn),不斷進步,探索更多的可能性。感謝你的閱讀,期待在未來的技術(shù)探索中再次相遇!
總結(jié)
以上是生活随笔為你收集整理的Helm Chart 部署 Redis 的完美指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 恒大汽车概念股票龙头一览表,恒大汽车相关
- 下一篇: Flash如何制作敌人穷追不舍的追逐动画