K8s系列之:部署helm3

K8s系列之:部署helm3

  • 一、helm3下载地址
  • 二、解压安装helm3
  • 三、helm3添加仓库
  • 四、helm3命令汇总
  • 五、创建helm chrt
  • 六、helm实现高可用

一、helm3下载地址

https://get.helm.sh/helm-v3.5.3-linux-amd64.tar.gz

二、解压安装helm3

tar zxf helm-v3.5.3-linux-amd64.tar.gz
cp -pr linux-amd64/helm /usr/local/bin/
helm --help

三、helm3添加仓库

helm repo add 仓库名称 仓库地址
$ helm repo add azure http://mirror.azure.cn/kubernetes/charts
$ helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts 

helm repo list

四、helm3命令汇总

chart install: 部署

chart upgrade: 升级

chart rollback: 回滚

helm repo remove aliyun
helm install 安装之后名称  搜索到名称

五、创建helm chrt

  • chart.yaml:当前chart属性配置信息
  • templates:编写yaml文件放到这个目录中
  • values.yaml:yaml文件可以使用全局变量
kubectl create mychart


$ cd ~/lesson/helm/
$ helm create mychart
$ tree mychart/
mychart/
├── charts                             #目录里存放这个chart依赖的所有子chart。
├── Chart.yaml                         #用于描述这个 Chart的基本信息,包括名字、描述信息以及版本等。
├── templates                          #目录里面存放所有yaml模板文件。
│   ├── deployment.yaml
│   ├── _helpers.tpl                   #放置模板助手的地方,可以在整个 chart 中重复使用
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── NOTES.txt                      #用于介绍Chart帮助信息, helm install 部署后展示给用户。例如:如何使用这个 Chart、列出缺省的设置等。
│   ├── serviceaccount.yaml
│   ├── service.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml                        #用于存储 templates 目录中模板文件中用到变量的值。

$ helm install web1 mychart           #直接部署

kubectl create deployment web --image=nginx --dry-run -o yaml > deployment.yaml

kubectl expose deployment web --port=80 --target-port=80 --type=NodePort --dry-run -o yaml > service.yaml

helm install web mychaart/

helm upgrade web mychart/

六、helm实现高可用

实现yaml高效复用,通过传递参数,动态渲染模板,yaml内容动态传入参数生成。
在chart有values.yaml文件,定义yaml文件全局变量

  • 在values.yaml定义变量和值
  • 在具体yaml文件,获取定义变量值

镜像 image
标签 tag
副本数 replicas
资源限制 resource
环境变量 env
端口 port
资源名称 name

replicas: 1
image: nginx
tag: 1.16
label: nginx
port: 80

{{ .Values.变量名称}}

{{ 。Release.Name }}
$ cd ~/lesson/helm/
$ helm create mychart
$ tree mychart/
mychart/
├── charts                             #目录里存放这个chart依赖的所有子chart。
├── Chart.yaml                         #用于描述这个 Chart的基本信息,包括名字、描述信息以及版本等。
├── templates                          #目录里面存放所有yaml模板文件。
│   ├── deployment.yaml
│   ├── _helpers.tpl                   #放置模板助手的地方,可以在整个 chart 中重复使用
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── NOTES.txt                      #用于介绍Chart帮助信息, helm install 部署后展示给用户。例如:如何使用这个 Chart、列出缺省的设置等。
│   ├── serviceaccount.yaml
│   ├── service.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml                        #用于存储 templates 目录中模板文件中用到变量的值。

$ helm install web1 mychart           #直接部署

你可能感兴趣的:(日常分享专栏,k8s系列,部署helm3)