【Linux39-20】k8s包管理工具Helm(部署nginx、构建并管理上传 Charts)

发布于:2021-11-28 19:55:26



文章目录
一、Helm简介二、安装和配置Helm三、Helm使用3.1 三大概念3.2 常用命令
四、部署nginx4.1 准备工作4.2 部署4.3 更新并回滚
五、构建一个 Helm Chart5.1 创建Chart5.2 安装push插件并上传Chart5.3 部署chart应用到集群5.4 创建新版本Chart并管理




一、Helm简介


【Helm官网:https://helm.sh/docs/intro/】


Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的
yum。


Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。


对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。


对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。




二、安装和配置Helm


1)创建归类目录


[root@server2 ~]# mkdir helm
[root@server2 ~]# cd helm/



2)安装


安装包下载位置:https://github.com/helm/helm/releases

1.解压
tar zxf helm-v3.4.1-linux-amd64.tar.gz

2.移动到可执行目录
cd linux-amd64/
mv helm /usr/local/bin/



3)设置helm命令补齐,设置后重新打开终端即可使用


echo "source <(helm completion bash)" >> ~/.bashrc

source ~/.bashrc



三、Helm使用


Helm 安装 charts 到 Kubernetes 集群中,每次安装都会创建一个新的 release。你可以在 Helm 的 chart repositories 中寻找新的 chart。


3.1 三大概念

Chart 代表着 Helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。你可以把它看作是 Homebrew formula,Apt dpkg,或 Yum RPM 在Kubernetes 中的等价物。


Repository(仓库) 是用来存放和共享 charts 的地方。它就像 Perl 的 CPAN 档案库网络 或是 Fedora 的 软件包仓库,只不过它是供 Kubernetes 包所使用的。


Release 是运行在 Kubernetes 集群中的 chart 的实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release。以 MySQL chart为例,如果你想在你的集群中运行两个数据库,你可以安装该chart两次。每一个数据库都会拥有它自己的 release 和 release name。


3.2 常用命令


helm search:查找 Charts


helm search hub:从 Artifact Hub 中查找并列出 helm charts。 Artifact Hub中存放了大量不同的仓库。helm search repo:从你所添加的仓库中查找chart的名字。该命令基于本地数据进行搜索,无需连接互联网


从官方search:nginx


helm install:安装一个 helm 包


helm status:追踪 release 的状态,或是重新读取配置信息


helm upgrade:升级版本。只会更新自上次发布以来发生了更改的内容。


helm rollback:回滚


helm uninstall:卸载


helm get values:看配置值是否真的生效


helm repo:使用仓库


helm repo list:查看配置的仓库helm repo add:添加第三方 Chart 库helm repo remove:命令来移除仓库


helm create:创建Charts


helm package:将chart 打包


四、部署nginx


4.1 准备工作


1)helm添加第三方chart


添加:
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
helm repo add bitnami https://charts.bitnami.com/bitnami

删除:
helm repo remove stable



2)第三方repo搜索


helm search repo nginx



3)准备镜像


1.在Harbor仓库中新建公开项目:bitnami

2.拉取镜像
docker pull bitnami/nginx:1.19.7-debian-10-r1

3.上传镜像到Harbor仓库
docker push zy.westos.org/bitnami/nginx:1.19.7-debian-10-r1



4.2 部署


1)下载nginx的Chart包


helm pull bitnami/nginx --version 8.7.0



2)解压


tar zxf nginx-8.7.0.tgz
cd nginx



3)修改配置文件vim values.yaml


# 指定Harbor仓库
global:
imageRegistry: zy.westos.org
# 镜像标签
tag: 1.19.7-debian-10-r1
#服务类型
#type: LoadBalancer
type: ClusterIP






4)安装


helm install webserver .



5)查看详细信息




6)测试





4.3 更新并回滚


1)修改副本数vim values.yaml


replicaCount: 2



2)更新


helm upgrade webserver .



3)查看历史版本


helm history webserver



4)回滚


helm rollback webserver 版本号



5)卸载


helm uninstall webserver



五、构建一个 Helm Chart


5.1 创建Chart


1)创建


cd helm/
helm create mychart



2)创建后会在目录创建一个mychart目录


目录结构如下:
cd mychart/
[root@server2 mychart]# tree .
.
├── charts
├── Chart.yaml # 应用描述信息
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── hpa.yaml
│ ├── ingress.yaml
│ ├── NOTES.txt
│ ├── serviceaccount.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml # 应用部署信息

3 directories, 10 files



3)编写部署信息 vim values.yaml


repository: myapp
tag: "v1"




4)检查依赖和模板配置是否正确


helm lint .




5)打包


helm package mychart/



6)添加Harbor仓库(提前在Harbor仓库新建项目charts)


1.复制证书
cp /etc/docker/certs.d/zy.westos.org/ca.crt /etc/pki/ca-trust/source/anchors/
2.更新证书信任
update-ca-trust
# 没有部署TLS,直接添加仓库即可
3.添加仓库
helm repo add mychart https://zy.westos.org/chartrepo/charts



5.2 安装push插件并上传Chart


//在线安装
helm plugin install https://github.com/chartmuseum/helm-push



1)离线安装


1.获取插件目录
helm env

2.创建插件目录
mkdir -p /root/.local/share/helm/plugins/push

3.解压tar包到插件目录下
tar zxf helm-push_0.9.0_linux_amd64.tar.gz -C /root/.local/share/helm/plugins/push/



2)上传


helm push mychart-0.1.0.tgz mychart -u admin -p westos --insecure



3)更新repo,发现可以search到刚上传的chart


helm repo update



4)在Harbor仓库web界面中也可以看到Chart


5.3 部署chart应用到集群


helm install webserver mychart/mychart



5.4 创建新版本Chart并管理


1)修改vim mychart/Chart.yaml


appVersion: v2
version: 0.2.0

2)修改vim mychart/values.yaml


tag: "v2"

3)打包


helm package mychart

4)上传


helm push mychart-0.2.0.tgz mychart -u admin -p westos --insecure

5)更新repo


helm repo update



6)搜索全部版本


helm search repo mychart -l



7)更新部署的Chart版本


helm upgrade webserver mychart/mychart



8)回滚


helm rollback webserver 1



9)卸载


helm uninstall webserver

相关推荐

最新更新

猜你喜欢