标签:hub 动态插入 使用 准备 wget redis 清单 通过 这一
在没使用helm之前,向kubernetes
部署应用,我们要依次部署deployment
,service
,configMap
等,步骤较繁琐。况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂.
helm
通过打包的方式,支持发布的版本管理和控制,很大程度上简化了Kubernetes
应用的部署和管理
Helm
可以理解为Kubernetes
的包管理工具,可以方便地发现、共享和使用为Kubernetes
构建的应用,它包含几个基本概念
可以理解为docker的image
Kubernetes
集群上运行的 Chart
的一个实例。在同一个集群上,一个 Chart
可以安装很多次。每次安装都会创建一个新的release
可以理解为docker的container实例
做为Kubernetes
的一个包管理工具,Helm具有如下功能:
chart
chart
打包成tgz
格式chart
到chart
仓库或从仓库中下载 chart
chart
仓库是: https://hub.helm.shKubernetes
集群中安装或卸载chart
Helm
管理安装的chart
的发布周期helm v3.2.4
,如需下载更新的版本,可以至github官方repo选择# 如无需更换版本,直接执行下载
wget https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz
# 解压
tar -zxvf helm-v3.2.4-linux-amd64.tar.gz
# 进入到解压后的目录
cd linux-amd64/
# 赋予权限
chmod a+x /usr/local/bin/helm
# 查看版本
helm version
Helm v3
,因为v3
版本和v2
某些命令方面差距蛮大的,不完全兼容!!所以针对v2
的操作这里就不赘述了可以直接使用官方的chart仓库或者其他仓库来安装一些chart
# 添加仓库
helm repo add choerodon https://openchart.choerodon.com.cn/choerodon/c7n
# 安装
helm install choerodon/redis --version 0.2.5
安装完成! 有没有很简单!!
这一节介绍以下如何自定义一个chart,并应用与平时项目中
.
├── Chart.yaml
├── templates
| ├── deployment.yaml
| └── service.yaml
├── values.yaml
一个基本的自定义chart的文件目录结构大概是如上:
chart
的基本metadata, 比如name,tag啥的变量模版语法
template
下的yaml资源清单使用第一步: 准备自定义chart相关文件
# 1. 新建一个文件夹demo存放chart
mkdir demo && cd demo && mkdir templates
# 2. 新建Chart.yaml
cat << EOF > Chart.yaml
name: hello-world
version: 1.0.0
EOF
# 3. 新建./templates/deployment.yaml
# 注意image部分使用了变量的模板语法,可以动态插入
cat << EOF > ./templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: tocgenerator-deploy
labels:
app: tocgenerator-deploy
spec:
replicas: 1
selector:
matchLabels:
app: tocgenerator-server
template:
metadata:
labels:
app: tocgenerator-server
spec:
containers:
- name: tocgenerator
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
EOF
# 4. 新建./templates/service.yaml
cat << EOF > ./templates/service.yaml
apiVersion: v1
kind: Service
metadata:
name: tocgenerator-svc
spec:
type: NodePort
selector:
app: tocgenerator-server
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30075
EOF
# 5. 新建values.yaml
cat << EOF > values.yaml
image:
repository: lzw5399/tocgenerator
tag: ‘951‘
EOF
第二步: 使用上面的自定义chart
# 将chart实例化成release
# 格式:helm install [RELEASE-NAME] [CHART-PATH]
helm install testname .
# 查看release
helm ls
# 安装成功!!
# 列出已经部署的Release
helm ls
# 查询一个特定的Release的状态
helm status <RELEASE_NAME>
# 查看被移除了,但保留了历史记录的release
helm ls --uninstalled
# 安装
helm install <RELEASE-NAME> <CHART-PATH>
# 命令行指定变量
helm install --set image.tag=233 <RELEASE-NAME> <CHART-PATH>
# 更新操作, flag是可选操作
helm upgrade [FLAG] <RELEASE> <CHART-PATH>
# 指定文件更新
helm upgrade -f myvalues.yaml -f override.yaml <RELEASE-NAME> <CHART-PATH>
# 命令行指定变量
helm upgrade --set foo=bar --set foo=newbar redis ./redis
# 移除Release
helm uninstall <RELEASE_NAME>
# 移除Release,但保留历史记录
# 可以通过以下查看:helm ls --uninstalled
# 可以通过以下回滚:helm rollback <RELEASE> [REVISION]
helm uninstall <RELEASE_NAME> --keep-history
# 更新操作, flag是可选操作
helm upgrade [FLAG] <RELEASE> <CHART-PATH>
标签:hub 动态插入 使用 准备 wget redis 清单 通过 这一
原文地址:https://www.cnblogs.com/baoshu/p/13296659.html