K8S--Kubernetes--Helm
创始人
2025-05-29 05:43:21
0

文章目录

  • 一、Helm简介、架构、及其相关术语
    • 1.简介、架构
    • 2.Helm组件及其相关术语
  • 二、部署helm
    • 1.下载软件包、添加第三方repo源
    • 2.拉取应用
    • 3.部署应用
    • 4.更新应用、回滚应用
  • 三、封装chart包


一、Helm简介、架构、及其相关术语

1.简介、架构

  • Helm是Kubernetes 应用包的管理工具,主要用来管理 Charts,类似Linux系统的yum。
  • Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。
  • 对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
  • 对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。
  • Helm 是 kubernetes 的包管理器,helm 仓库里面只有配置清单文件,而没有镜像,镜像还是由镜像仓库来提供,比如 hub.docker.com、私有仓库。
  • 官方网址:https://helm.sh/zh/docs/intro/quickstart/
    https://github.com/helm/helm/releases
    在这里插入图片描述在这里插入图片描述
    Helm 针对 Kubernetes 的 Helm 包管理器。Helm 的一般操作:
    helm search:    搜索 chart
    helm pull:     下载 chart 到本地目录查看
    helm install:    上传 chart 到 Kubernetes
    helm list:      列出已发布的 chart
    helm --help   查看帮助

Helm架构
在这里插入图片描述在这里插入图片描述

2.Helm组件及其相关术语

  • Helm——Helm 是一个命令行下的客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。
  • Chart——Chart 代表着 Helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。你可以把它看作是 Homebrew formula,Apt dpkg,或 Yum RPM 在 Kubernetes 中的等价物。
  • Release——Release 是运行在 Kubernetes 集群中的 chart 的实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release。
  • Repoistory——Repository(仓库) 是用来存放和共享 charts 的地方。它就像 Perl 的 CPAN 档案库网络 或是 Fedora 的 软件包仓库,只不过它是供 Kubernetes 包所使用的。
    在这里插入图片描述

二、部署helm

  • 官方网址:https://helm.sh/zh/docs/intro/quickstart/
    https://github.com/helm/helm/releases

1.下载软件包、添加第三方repo源

下载软件包:helm-v3.1.1-linux-amd64.tar.gz
[root@k8s2 ~]# tar zxf helm-v3.11.0-linux-amd64.tar.gz
[root@k8s2 ~]# cd linux-amd64/
[root@k8s2 linux-amd64]# mv helm  /usr/local/bin/     ##移动二进制命令配置helm命令补齐
[root@k8s2 ~]# echo "source <(helm completion bash)" >> ~/.bashrc
[root@k8s2 ~]# source ~/.bashrc
[root@k8s2 ~]# helm version查询官方应用中心
[root@k8s2 ~]# helm search hub nginx添加第三方repo源
[root@k8s2 ~]# helm repo add my-repo https://charts.bitnami.com/bitnami
"my-repo" has been added to your repositories[root@k8s2 ~]# helm  repo  list
NAME    URL
my-repo https://charts.bitnami.com/bitnami

官方页面和# helm search hub nginx效果一致:
在这里插入图片描述

在这里插入图片描述

2.拉取应用

[root@k8s2 ~]# mkdir helm
[root@k8s2 ~]# cd helm
[root@k8s2 helm]# helm pull my-repo/nginx
[root@k8s2 helm]# tar zxf nginx-13.2.29.tgz
[root@k8s2 helm]# cd nginx/
按需修改
[root@k8s2 nginx]# vim values.yaml
默认仓库:(也可以加入scerets)
在这里插入图片描述
暴露方式:在这里插入图片描述
ingress方式暴露
在这里插入图片描述在这里插入图片描述
上图由来见下图
在这里插入图片描述

上传对应的镜像
[root@k8s1 ~]# docker pull bitnami/nginx:1.23.3-debian-11-r33
[root@k8s1 ~]# docker tag bitnami/nginx:1.23.3-debian-11-r33 reg.westos.org/bitnami/nginx:1.23.3-debian-11-r33
[root@k8s1 ~]# docker push reg.westos.org/bitnami/nginx:1.23.3-debian-11-r33
在这里插入图片描述

3.部署应用

[root@k8s2 nginx]# helm install myapp .
myapp是要安装的名称,“.”表示从当前目录读取
在这里插入图片描述
测试
在这里插入图片描述
再次修改配置
[root@k8s2 nginx]# vim values.yaml

资源定义:
在这里插入图片描述
激活hpa
在这里插入图片描述

4.更新应用、回滚应用

[root@k8s2 nginx]# helm upgrade myapp .
在这里插入图片描述在这里插入图片描述

查看应用
[root@k8s2 nginx]# helm list
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
myapp   default         1               2023-03-15 16:28:30.915305415 +0800 CST deployed        nginx-13.2.29   1.23.3查看应用历史
[root@k8s2 helm]# helm  history myapp
REVISION        UPDATED                         STATUS          CHART           APP VERSION     DESCRIPTION                                                    
1               Wed Mar 15 16:28:30 2023        superseded      nginx-13.2.29   1.23.3          Install complete                                               
2               Wed Mar 15 16:36:59 2023        deployed        nginx-13.2.29   1.23.3         upgrade complete 回滚应用
[root@k8s2 nginx]# helm  rollback myapp 1回收
[root@k8s2 helm]# helm uninstall myapp

三、封装chart包

[root@k8s2 helm]# helm create mychart
tree命令yum命令安装即可:显示目录结构
在这里插入图片描述

charts:目录里存放这个 chart 依赖的所有子 chart。
Chart.yaml:用于描述这个 Chart 的基本信息,包括名字、描述信息以及版本等。
values.yaml:用于存储 templates 目录中模板文件中用到变量的值。
Templates:目录里面存放所有 yaml 模板文件。
NOTES.txt :用于介绍 Chart 帮助信息,helm install 部署后展示给用户。例如:如何使用这个 Chart、 列出缺省的设置等。
_helpers.tpl:放置模板助手的地方,可以在整个 chart 中重复使用。

[root@k8s2 mychart]# vim Chart.yaml
v1是应用版本
在这里插入图片描述
[root@k8s2 mychart]# vim values.yaml
在这里插入图片描述
在这里插入图片描述

检测语法
[root@k8s2 helm]# helm lint mychart/
==> Linting mychart/
[INFO] Chart.yaml: icon is recommended1 chart(s) linted, 0 chart(s) failed打包
[root@k8s2 helm]# helm package mychart/
Successfully packaged chart and saved it to: /root/helm/mychart-0.1.0.tgz
[root@server2 ~]# du -sh mychart-0.1.0.tgz 
4.0K	mychart-0.1.0.tgz			chart的封装是非常小的部署应用
[root@k8s2 helm]# helm install  myapp mychart-0.1.0.tgz[root@k8s2 helm]# helm  list
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
myapp   default         1               2023-03-15 16:51:35.456139491 +0800 CST deployed        mychart-0.1.0   v1回收
[root@k8s2 helm]# helm uninstall myapp

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...