Helm 包管理
流程
业务升级流程
做一些环境变量
shell
export NAMESPACE="xxx" # 命名空间 `kubectl get ns` 获取
export REPO_NAME="xxx" # 仓库名 `helm repo list` 获取
export CHART_NAME="xxx" # chart 包名
export CHART_VERSION="xxx" # chart 版本
shell
function INFO { echo -e " - [INFO] \033[00;32m${$1}\033[0m"; }
INFO "NAMESPACE: ${NAMESPACE}${DEFAULT}"
INFO "REPO_NAME: ${REPO_NAME}${DEFAULT}"
INFO "CHART_NAME: ${CHART_NAME}${DEFAULT}"
获取 helm 包
shell
helm repo add ${REPO_NAME} <repo-url> # 添加 helm 仓库
helm repo list # 查看 helm 仓库列表
helm repo update # 更新 helm 仓库
下载 helm 包(可指定版本)
shell
helm pull ${REPO_NAME}/${CHART_NAME} [--version ${CHART_VERSION} ]
解压并进入 helm 包目录
shell
tar -xvf ${CHART_NAME}.tgz
cd ${CHART_NAME}
查看在线的 pod
shell
kubectl get pods -n ${NAMESPACE}
kubectl get pods -n ${NAMESPACE} | grep ${CHART_NAME}
# 记录下 pod 的 id
获取在线 pod 的配置文件,保存在当前目录
shell
POD_ID="xxxx" #
helm get values ${CHART_NAME} -a -n ${NAMESPACE} > ${CHART_NAME}.values.yaml
使用保存的配置文件,更新 helm 包
shell
# helm upgrade [RELEASE] [CHART] [VERSION] [flags]
helm upgrade ${CHART_NAME} . \
-n ${NAMESPACE} \
-f ${CHART_NAME}.values.yaml
查看更新后的 pod
shell
kubectl get pods -n ${NAMESPACE} | grep ${CHART_NAME}
如果产生报错,需要根据日志信息进行排查,可以通过 kubectl logs
命令查看 pod 的日志信息
shell
POD_ID="xxxx" # id 是新 pod 的 id
kubectl logs ${CHART_NAME}-${POD_ID} -n ${NAMESPACE}