【kubernetes】k8s中包管理工具-----Helm 超详细解读

目录

一、Helm

1.1什么是 Helm

1.2Helm 有三个重要的概念

1.2.1Chart

1.2.2Repository(仓库)

1.2.3Release

1.3Helm3 与 Helm2 的区别

二、Helm 部署

2.1安装 helm

2.2命令补全 

2.3使用 helm 安装 Chart

2.3.1添加常用的 chart 仓库

2.3.2更新 charts 列表

2.3.3查看 stable 仓库可用的 charts 列表

2.3.4删除 incubator 仓库

2.3.5搜索Bitnami官方Helm仓库中关于Nginx的chart 

2.3.6查看 chart 信息 

2.3.6.1查看指定 chart 的基本信息

2.3.6.2获取指定 chart 的所有信息 

2.3.7安装 chart 

2.3.8查看所有 release

2.3.9查看指定的 release 状态

2.3.10删除指定的 release

三、Helm 自定义模板

3.1拉取 chart

3.2查看Chart结构

3.2.1   Helm Chart结构

3.2.1.1Chart.yaml

3.2.1.2模板

3.2.1.3具体模板文件

3.3创建自定义的 chart

3.4修改 chart 

3.5打包chart和部署chart 

3.6部署 ingress

3.7升级Helm Chart 

3.8回滚 

3.8.1回滚Helm Release

 3.8.2使用-set参数部署或升级Release

四、Helm 仓库

4.1安装 harbor

4.2安装 push 插件 

4.2.1在线安装

4.2.2离线安装

4.3配置Helm仓库 

4.3.1登录 Harbor WEB UI 界面,创建一个新项目

4.3.2添加仓库 

4.5推送 chart 到 harbor 中

4.6查看 chart_repo 项目中的 Helm Charts 

五  理解加总结 

1,命令

2, 理解

 


一、Helm

1.1什么是 Helm

在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。 况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本管理和控制, 很大程度上简化了 Kubernetes 应用的部署和管理。

Helm 本质就是让 K8s 的应用管理(Deployment、Service 等)可配置,可以通过类似于传递环境变量的方式能动态生成。通过动态生成 K8s 资源清单文件(deployment.yaml、service.yaml)。然后调用 Kubectl 自动执行 K8s 资源部署。

Helm 是官方提供的类似于 YUM 的包管理器,是部署环境的流程封装

1.2Helm 有三个重要的概念

Helm 有三个重要的概念:Chart 、Repository 和 Release

1.2.1Chart

Chart:Helm 的软件包,采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件。

1.2.2Repository(仓库)

Helm 的软件仓库,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository

1.2.3Release

使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release。可以理解为 Helm 使用 Chart 包部署的一个应用实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release

以 MySQL chart 为例,如果你想在你的集群中运行两个数据库,你可以安装该 chart 两次。每一个数据库都会拥有它自己的 release 和 release name。可以将 release 想象成应用程序发布的版本号。

总结:

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

1.3Helm3 与 Helm2 的区别

Helm2 是 C/S 架构,主要分为客户端 helm 和服务端 Tiller。在 Helm 2 中,Tiller 是作为一个 Deployment 部署在 kube-system 命名空间中,很多情况下,我们会为 Tiller 准备一个 ServiceAccount ,这个 ServiceAccount 通常拥有集群的所有权限。

用户可以使用本地 Helm 命令,自由地连接到 Tiller 中并通过 Tiller 创建、修改、删除任意命名空间下的任意资源。

在 Helm 3 中,Tiller 被移除了新的 Helm 客户端会像 kubectl 命令一样,读取本地的 kubeconfig 文件,使用我们在 kubeconfig 中预先定义好的权限来进行一系列操作。

heml3的兼容性更好,一般使用heml3

Helm 的官方网站 https://helm.sh/

二、Helm 部署

2.1安装 helm

下载二进制 Helm client 安装包

Tags · helm/helm · GitHub

tar zxvf  helm-v3.6.0-linux-amd64.tar.gz
 
mv linux-amd64/helm /usr/local/bin/helm
 
helm version

 

2.2命令补全 

source <(helm completion bash)

2.3使用 helm 安装 Chart

2.3.1添加常用的 chart 仓库

 添加常用的 chart 仓库

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add stable http://mirror.azure.cn/kubernetes/charts
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo add incubator https://charts.helm.sh/incubator

 

2.3.2更新 charts 列表

repo 是一个子命令,用于管理 Helm 的图表仓库(chart repositories)。Helm 使用仓库的概念来存储和分发预配置的 Kubernetes 资源包,这些包称为 charts。repo 子命令允许用户添加、列出、删除仓库,以及更新仓库中的 charts 索引。

helm repo update
 
helm repo list

 

2.3.3查看 stable 仓库可用的 charts 列表
helm search repo stable

2.3.4删除 incubator 仓库
helm repo remove incubator

如果不想用,可以移除它 helm repo remove 加名字

示例:删除aliyun仓库

helm repo remove aliyun  #清除aliyun

2.3.5搜索Bitnami官方Helm仓库中关于Nginx的chart 
helm search repo bitnami/nginx

 

搜索Bitnami官方Helm仓库中关于redis的chart

helm search repo bitnami/redis

2.3.6查看 chart 信息 
2.3.6.1查看指定 chart 的基本信息
helm show chart stable/mysql  

2.3.6.2获取指定 chart 的所有信息 
helm show all stable/mysql	

查看redis的chart 的基本信息

2.3.7安装 chart 
helm install my-redis bitnami/redis -n default  #指定 release 的名字为 my-redis,-n 指定部署到 k8s 的 namespace
 
helm install bitnami/redis --generate-name    #不指定 release 的名字时,需使用 –generate-name 随机生成一个名字

2.3.8查看所有 release
helm ls 
 
helm list

2.3.9查看指定的 release 状态
helm status my-redis      
 
2.3.10删除指定的 release
helm uninstall my-redis 

三、Helm 自定义模板

Helm Chart 是 Helm 用来部署 Kubernetes 应用的包。一个 Chart 包含一系列的 Kubernetes 资源定义文件(YAML 格式),以及一个描述 Chart 的 Chart.yaml 文件和一个用于配置的 values.yaml 文件。自定义 Helm Chart 允许根据具体需求来创建和部署 Kubernetes 应用。

 charts 除了可以在 repo 中下载,还可以自己自定义,创建完成后通过 helm 部署到 k8s

1、安装helm
cd /opt
tar -zxvf helm-v3.6.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
helm version
 
#命令补全
source <(helm completion bash)
 
2、使用 helm 安装 Chart
#添加常用的 chart 仓库,
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add stable http://mirror.azure.cn/kubernetes/charts
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo add incubator https://charts.helm.sh/incubator
 
#更新 charts 列表
helm repo update          
helm repo list

3.1拉取 chart
mkdir /opt/helm
cd /opt/helm/
 
helm pull stable/mysql
 
ls
 
tar xf mysql-1.6.9.tgz
 
yum install -y tree
 
tree mysql
  • 创建一个目录用于存放 Helm charts,例如 /opt/helm

  • 使用 helm pull 命令从 Helm 仓库拉取特定的 chart,例如 stable/mysql

  • 查看拉取的 chart 文件,确认文件存在。

3.2查看Chart结构
  • 安装 tree 命令(如果尚未安装),以便更好地查看文件和目录结构。

  • 使用 tree 命令查看 chart 的详细结构,包括所有文件和子目录。

tree mysql
 
mysql
├── Chart.yaml                                 #包含 chart 的元数据
├── README.md                                  #提供关于 chart 的信息和使用说明
├── templates                                  #包含 chart 的模板文件
│   ├── configurationFiles-configmap.yaml      #配置文件的 ConfigMap 模板
│   ├── deployment.yaml                        #Deployment 资源的模板
│   ├── _helpers.tpl                           #辅助模板文件
│   ├── initializationFiles-configmap.yaml     #初始化文件的 ConfigMap 模板
│   ├── NOTES.txt                              #安装后的说明和注意事项
│   ├── pvc.yaml                               #PersistentVolumeClaim 资源的模板
│   ├── secrets.yaml                           #Secret 资源的模板
│   ├── serviceaccount.yaml                    #ServiceAccount 资源的模板
│   ├── servicemonitor.yaml                    #ServiceMonitor 资源的模板
│   ├── service.yaml                           #Service 资源的模板
│   ├── ingress.yaml                           #Ingress 资源的模板
│   └── tests                                  #包含测试相关的模板文件
│       ├── test-configmap.yaml
│       └── test.yaml
└── values.yaml                                #包含 chart 的默认配置值
 
#通过这个结构,我们可以看到 Helm chart 是如何组织和管理 Kubernetes 应用程序的部署配置的。用户可以根据需要编辑这些文件,以自定义应用程序的行为和配置。

可以看到,一个 chart 包就是一个文件夹的集合,文件夹名称就是 chart 包的名称。

#chart 是包含至少两项内容的helm软件包:
(1)软件包自描述文件 Chart.yaml,这个文件必须有 name 和 version(chart版本) 的定义
(2)一个或多个模板,其中包含 Kubernetes 清单文件:
●NOTES.txt:chart 的“帮助文本”,在用户运行 helm install 时显示给用户
●deployment.yaml:创建 deployment 的资源清单文件
●service.yaml:为 deployment 创建 service 的资源清单文件
●ingress.yaml: 创建 ingress 对象的资源清单文件
●_helpers.tpl:放置模板助手的地方,可以在整个 chart 中重复使用

 

 

3.2.1   Helm Chart结构

Helm chart 的关键组成部分的详细说明

3.2.1.1Chart.yaml

这是 Helm chart 的自描述文件,它包含了 chart 的基本信息。

必须包含 name 字段,用于指定 chart 的名称。

必须包含 version 字段,用于指定 chart 的版本号。

还可以包含其他元数据,如描述、图标、维护者信息等。

3.2.1.2模板

Helm chart 包含一个或多个模板,这些模板是 Kubernetes 资源清单文件的文本模板。
模板中可以包含 Go 模板 语法,用于动态生成 Kubernetes 清单文件。
模板会根据 values.yaml 文件中的值进行填充和处理,生成最终的 Kubernetes 资源清单。

3.2.1.3具体模板文件

NOTES.txt:这是一个文本文件,包含安装 chart 后显示给用户的信息,通常包括配置提示、使用说明等。
deployment.yaml:这个模板定义了一个 Kubernetes Deployment 资源,用于指定如何部署应用程序的副本。
service.yaml:这个模板定义了一个 Kubernetes Service 资源,通常用于提供对 Deployment 的网络访问。
ingress.yaml:这个模板定义了一个 Kubernetes Ingress 资源,用于管理外部访问到 Service 的路由。
_helpers.tpl:这个文件包含可重用的模板助手函数,可以在 chart 的其他模板中调用。
通过这些组件,Helm charts 为 Kubernetes 应用程序的部署提供了一种标准化和自动化的方法。用户可以通过修改 values.yaml 文件和模板来定制应用程序的部署,然后使用 Helm 命令进行部署和管理。

3.3创建自定义的 chart
helm create nginx
 
tree nginx

 

cat nginx/templates/deployment.yaml
 
#在 templates 目录下 yaml 文件模板中的变量(go template语法)的值默认是在 nginx/values.yaml 中定义的,只需要修改 nginx/values.yaml 的内容,也就完成了 templates 目录下 yaml 文件的配置。
比如在 deployment.yaml 中定义的容器镜像:
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
 
cat nginx/values.yaml | grep repository
  repository: nginx
 
#以上变量值是在 create chart 的时候就自动生成的默认值,你可以根据实际情况进行修改。

cat nginx/values.yaml |grep repository
 
#以上变量值是在 create chart 的时候就自动生成的默认值,你可以根据实际情况进行修改。

 

  • repository 是你要在 values.yaml 文件中搜索的关键词。在 Helm 的上下文中,repository 可能指的是 Docker 镜像仓库的地址,这是定义容器镜像来源的重要配置项之一。

3.4修改 chart 
vim nginx/Chart.yaml
apiVersion: v2
name: nginx      #chart名字
description: A Helm chart for Kubernetes
 
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application    #chart类型,application或library
 
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0     #chart版本
 
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.16.0"      #application部署版本
 

vim nginx/values.yaml

 

 

3.5打包chart和部署chart 
helm lint nginx
#检查依赖和模版配置是否正确
 
helm package nginx
#打包 chart,会在当前目录下生成压缩包 nginx-0.1.0.tgz
 
#部署 chart
helm install nginx ./nginx --dry-run --debug
#使用 --dry-run 参数验证 Chart 的配置,并不执行安装
 
helm install nginx ./nginx -n default
#部署 chart,release 版本默认为 1
或者
helm install nginx ./nginx-0.1.0.tgz
 
#可根据不同的配置来 install,默认是 values.yaml
helm install nginx ./nginx -f ./nginx/values.yaml
 
helm ls
 
kubectl get pod,svc

helm install nginx ./nginx --dry-run --debug  
#使用 --dry-run 参数验证 Chart 的配置,并不执行安装
 
helm install nginx ./nginx -n default   部署 chart,release 版本默认为 1

#可根据不同的配置来 install,默认是 values.yaml

​
#可根据不同的配置来 install,默认是 values.yaml
helm install nginx ./nginx -f ./nginx/values-prod.yaml
 
helm ls
 
kubectl get pod,svc
 
 

 

3.6部署 ingress
​#部署 ingress
 
wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/mandatory.yaml
wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml
#下载 Ingress-Nginx 的配置文件 mandatory.yaml 和 service-nodeport.yaml
 
kubectl apply -f mandatory.yaml
kubectl apply -f service-nodeport.yaml
#使用 kubectl apply 命令应用这些配置文件,以部署 Ingress 控制器和 NodePort 类型的 Service
 
kubectl get pod,svc -n ingress-nginx
 
kubectl get ingress
 
vim /etc/hosts
.....
192.168.246.12 node02 www.zzz.com
 
curl http://www.zzz.com:端口

 

3.7升级Helm Chart 

修改为 NodePort 访问后,升级

vim nginx/values.yaml
service:
  type: NodePort
  #修改 values.yaml 文件以更改 Service 类型为 NodePort 并设置 nodePort
  port: 80
  nodePort: 30080
 
ingress:
  enabled: false

vim nginx/templates/service.yaml
apiVersion: v1   #模板以反映 Service 类型的变化
kind: Service
metadata:
  name: {{ include "nginx.fullname" . }}
  labels:
    {{- include "nginx.labels" . | nindent 4 }}
spec:
  type: {{ .Values.service.type }}
  ports:
    - port: {{ .Values.service.port }}
      targetPort: http
      protocol: TCP
      name: http
      nodePort: {{ .Values.service.nodePort }}  #指定 nodePort
  selector:
    {{- include "nginx.selectorLabels" . | nindent 4 }}

升级 release,release 版本加 1

helm upgrade nginx nginx 
 
kubectl get svc
 
curl 192.168.246.11:30080
# node的IP加端口

3.8回滚 

#根据 release 版本回滚

helm history nginx              #查看 release 版本历史
 
helm rollback nginx 1           #回滚 release 到版本1
3.8.1回滚Helm Release

helm rollback nginx 1
#使用 helm rollback 命令加上 release 名称和要回滚到的版本号来执行回滚操作。
helm history nginx
#执行回滚后,可以再次使用 helm history 命令确认 release 是否已经成功回滚到指定版本

 

#通常情况下,在配置好 templates 目录下的 kubernetes 清单文件后,后续维护一般只需要修改 Chart.yaml 和 values.yaml 即可。 

  • Chart.yaml:更新 chart 的元数据,如版本号、描述等。
  • values.yaml:调整或添加配置参数,这些参数将应用于模板中,以定制 Kubernetes 资源的行

 3.8.2使用-set参数部署或升级Release

在命令行使用 --set 指定参数来部署(install,upgrade)release
#注:此参数值会覆盖掉在 values.yaml 中的值,如需了解其它的预定义变量参数,可查看 helm 官方文档。

#例如,要将 Nginx chart 的镜像标签升级到 1.15,可以使用以下命令
 
helm upgrade nginx nginx --set image.tag='1.15'
 
#这个命令会更新 Nginx chart 的镜像标签,而无需修改 values.yaml 文件。这种快捷方式在需要快速更改配置或在没有访问 values.yaml 文件的情况下非常有用。

总结来说,Helm 提供了灵活的方式来管理和维护 Kubernetes 应用程序的部署。通过回滚功能,可以轻松撤销更改;通过 --set 参数,可以在部署或升级时动态调整配置。这些功能使得 Helm 成为 Kubernetes 集群中应用程序部署和维护的强有力工具。 

四、Helm 仓库

helm 可以使用 harbor 作为本地仓库,将自定义的 chart 推送至 harbor 仓库

4.1安装 harbor

  • 准备 Harbor 的离线安装包 harbor-offline-installer-v1.9.1.tgz 和 docker-compose 文件。
  • 配置 harbor.yml 文件,设置 Harbor 的主机名、管理员密码、数据存储路径等。
  • 使用 ./install.sh --with-clair --with-chartmuseum 命令安装 Harbor,并启用 Clair 服务和 chart 仓库服务。

新开启一台机器(192.168.246.9),做harbor仓库,先安装docker,接着进行配置

systemctl stop firewalld
setenforce 0
 
yum install -y yum-utils device-mapper-persistent-data lvm2 
 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
yum install -y docker-ce-20.10.18 docker-ce-cli-20.10.18 containerd.io ##安装20版本
 
systemctl start docker.service
systemctl enable docker.service
 
docker version

#上传 harbor-offline-installer-v1.9.1.tgz 和 docker-compose 文件到 /opt 目录
cd /opt
cp docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-compose
 
curl -SL https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
#如果安装最新版的Docker需要安装高版本的Docker-Compose
 
wget https://storage.googleapis.com/harbor-releases/release-1.9.0/harbor-offline-installer-v1.9.1.tgz
tar zxf harbor-offline-installer-v1.9.1.tgz
cd harbor/
 
vim harbor.yml
hostname: 192.168.241.9
harbor_admin_password: Harbor12345     #admin用户初始密码
data_volume: /data                     #数据存储路径,自动创建
chart:
  absolute_url: enabled                #在chart中启用绝对url
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor          #日志路径
 
#安装带有 Clair service 和 chart 仓库服务的 Harbor
./install.sh --with-clair --with-chartmuseum

 

#安装带有 Clair service 和 chart 仓库服务的 Harbor

./install.sh --with-clair --with-chartmuseum

 

命令 ./install.sh --with-clair --with-chartmuseum 通常用于安装一套软件系统,可能是容器 registry、CI/CD 环境或者类似 Kubernetes 集群的应用部署栈的一部分。这个命令是通过执行名为 install.sh 的脚本文件来实现特定功能的安装配置。下面是两个主要选项的解释:

  • --with-clair:此选项指示安装脚本同时也安装和配置 Clair。Clair 是一个开源的漏洞扫描器,特别为容器镜像设计。它能够分析存储在容器 registry 中的镜像,检查是否存在已知的安全漏洞,包括操作系统包和应用层的漏洞。这对于提升容器部署的安全性非常关键,因为它可以帮助提前发现和修复潜在的安全风险。

  • --with-chartmuseum:此选项告诉安装脚本一并安装 ChartMuseum。ChartMuseum 是一个开源的 Helm Chart 仓库服务器,用于存储和管理 Helm 包(Charts)。Helm 是 Kubernetes 的一个包管理工具,它允许用户以声明式的方式定义、安装和升级复杂的 Kubernetes 应用。有了 ChartMuseum,团队可以拥有自己的私有 Helm Chart 仓库,便于分享和复用内部开发的 Kubernetes 应用配置。

综上所述,执行这个命令会启动一个安装流程,不仅搭建基本的系统或服务,还会额外配置 Clair 来增强镜像安全扫描能力,并且部署 ChartMuseum 作为 Helm chart 的私有仓库,以便于管理和分发 Kubernetes 应用配置。

 

 

4.2安装 push 插件 

4.2.1在线安装
#在线安装 Helm Push 插件
helm plugin install https://github.com/chartmuseum/helm-push

4.2.2离线安装
wget https://github.com/chartmuseum/helm-push/releases/download/v0.8.1/helm-push_0.8.1_linux_amd64.tar.gz
#离线安装 Helm Push 插件:
 
mkdir ~/.local/share/helm/plugins/helm-push -p
tar -zxvf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/helm-push
 
helm repo ls
 
  • 离线安装 Helm Push 插件:

  • 下载插件压缩包 helm-push_0.8.1_linux_amd64.tar.gz

  • 解压缩并将其放置在 ~/.local/share/helm/plugins/helm-push 目录下。

4.3配置Helm仓库 

4.3.1登录 Harbor WEB UI 界面,创建一个新项目
  • 登录到 Harbor 的 Web UI 界面,并创建一个新项目 chart_repo。
  • 浏览器访问:http://192.168.246.9/ ,默认的管理员用户名和密码是 admin/Harbor12345
  • 点击 “+新建项目” 按钮 填写项目名称为 “chart_repo”,访问级别勾选 “公开”,点击 “确定” 按钮,创建新项目

 

 

4.3.2添加仓库 
helm repo add harbor http://192.168.246.9/chartrepo/chart_repo --username=admin --password=Harbor12345

#注:这里的 repo 的地址是<Harbor URL>/chartrepo/<项目名称>,Harbor 中每个项目是分开的 repo。如果不提供项目名称, 则默认使用 library 这个项v

 

4.5推送 chart 到 harbor 中

cd /opt/helm
helm push nginx harbor   #使用 helm push 命令将 chart 推送到 Harbor 仓库
  • 切换到包含 Helm chart 的目录。
  • #使用 helm push 命令将 chart 推送到 Harbor 仓库

4.6查看 chart_repo 项目中的 Helm Charts 

在 Harbor 的 Web UI 界面中查看 chart_repo 项目,确认已成功推送的 Helm Charts

通过这些步骤,可以将自定义的 Helm charts 推送到本地的 Harbor 仓库中,从而实现 Helm charts 的存储、管理和分发。Harbor 作为一个企业级的 Docker Registry 管理项目,也支持 Helm charts 的存储和分发,这使得它成为 Kubernetes 环境中管理 Helm charts 的理想选择。

五  理解加总结 

1,命令

命令含义
Completion命令补全
Create创建一个给定名称的Chart
Get获取给定Release的扩展信息
Dependency管理Chart的依赖关系
EnvHelm环境信息
Help命令帮助
History获取Release历史
Install部署Chart
Lint对Chart进行语法检查
ListRelease列表,List可简写成Ls
Package打包Chart
PluginInstall、List、UnInstall、Helm插件
Pull从Repo中下载Chart并(可选)将其解压到本地目录
Repo

ADD、List、Remove、Update、Index、Helm的Repo

RollBack回滚Release到一个以前的版本
Search查询在Charts中的关键字
Show显示Chart的信息
Status显示给定Release的状态
Template本地渲染模板
Test测试运行Release
Uninstall删除Release
Upgrade升级Release
Verify验证给定路径的Chart是否已签名且有效
Version显示Helm的版本信息

2, 理解

 

Helm:

  • Helm是专为Kubernetes设计的包管理器,它允许用户定义、共享和管理Kubernetes应用的配置。Helm使用Charts(一种打包格式)来封装相关的Kubernetes资源(如Deployments、Services等),并且支持通过Values.yaml文件来定义配置变量,使得同一Chart可以根据不同的环境或需求进行参数化部署。
  • Helm通过Chart Repository(图表仓库)来分发和管理这些Charts,类似于软件包管理器中的仓库概念,使得用户可以从中心位置发现、安装和更新应用。
  • Helm更侧重于Kubernetes应用的生命周期管理,包括安装、升级、回滚和卸载应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/708215.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构 实验 2

题目一&#xff1a;遍历二叉树 一、实验目的 熟练掌握指针变量、链表的含义掌握二叉树的结构特性&#xff0c;以及二叉链表的存储方式的特点掌握用递归的方法处理二叉树的基本算法掌握二叉树的四种遍历方式&#xff08;先序、中序、后序、按层次&#xff09; 二、实验步骤 …

Linux C语言:字符串处理函数

一、字符串函数 1、C库中实现了很多字符串处理函数 #include <string.h> ① 求字符串长度的函数strlen② 字符串拷贝函数strcpy③ 字符串连接函数strcat④ 字符串比较函数strcmp 2、字符串长度函数strlen 格式&#xff1a;strlen(字符数组)功能&#xff1a;计算字符串…

Spring AI 接入OpenAI实现文字生成图片功能

Spring AI 框架集成的图片大模型 2022年出现的三款文生图的现象级产品&#xff0c;DALL-E、Stable Diffusion、Midjourney。 OpenAI dall-e-3dall-e-2 Auzre OpenAI dall-e-3dall-e-2 Stability stable-diffusion-v1-6 ZhiPuAI cogview-3 OpenAI 与 Auzer OpenAI 使用的图片…

接口自动化测试工程化——了解接口测试

什么是接口测试 接口测试也是一种功能测试 我理解的接口测试&#xff0c;其实也是一种功能测试&#xff0c;只是平时大家说的功能测试更多代指 UI 层面的功能测试&#xff0c;而接口测试更偏向于服务端层面的功能测试。 接口测试的目的 测试左移&#xff0c;尽早介入测试&a…

6.归并+快排

5. 归并排序 核心思想 将无序数组从中间分为左右两个部分&#xff0c;分别给左右两个部分排序&#xff0c;排序以后把两个有序区间进行合并 把数组从中间分为左右两部分分别对前后两部分进行排序将排好序的两部分合并 包含两个部分&#xff1a;拆解阶段和合并阶段 归并排序…

跨平台看抖音、哔哩哔哩、虎牙、斗鱼啦,一个app即可完成

一、简介 1、一款免费、开源、无广告、跨平台的,可以观看抖音、哔哩哔哩、虎牙、斗鱼等平台的直播内容的软件。它简单好用,支持 Windows、MacOS、Linux、Android、iOS 等平台。 二、下载 1、文末有下载链接,apk手机可直接安装,不明白可以私聊我哈(麻烦咚咚咚,动动小手给个…

详解QFileSystemModel的使用

在Qt应用程序开发中&#xff0c;QFileSystemModel是一个强大的类&#xff0c;用于展示和操作文件系统的信息。它基于标准的QAbstractItemModel&#xff0c;提供了浏览本地文件系统目录树的能力&#xff0c;并且能够自动更新以反映文件系统的变化。本文将详细讲解QFileSystemMod…

MongoDB——写入耗时

mongodb写入10万条数据的耗时差不多是1s import time import pymongo from pymongo import MongoClient# 连接到MongoDB client MongoClient(mongodb://localhost:27017/) db client[test_db] collection db[test_collection]# 生成10万条数据 documents [{"name&quo…

ThinkPHP内核在线客服系统源码多商户版 对接适用场景(PC+WAP+公众号)

源码介绍 大部分站长都了解美洽系统&#xff0c;就跟这种类似的&#xff0c;可以实现一行代码接入客服&#xff0c;非常舒服&#xff0c;支持无限客服&#xff0c;无限坐席! 私有化源码部署&#xff0c;数据可控&#xff0c;稳定可靠。可自定义版权、logo。支持网页、微信公众…

CPN tools学习——可执行的 PN

目录 1添加令牌 2.转换防护Guard 1添加令牌 左侧新建颜色集和变量的声明定义&#xff1a; 为库所分配颜色集&#xff1a;左键tab键 P1处&#xff1a;添加多重集合&#xff0c;表示添加了两个令牌&#xff0c;第一个令牌值为A&#xff0c;第二个为B。 P2处&#xff1a;表示…

docker的教程长亭

把我的常用docker写在这里 之前用 vul - hub 靶场经常用 现在docker不知道为什么挂了 开启 docker-compose up -d 关闭 docker-compose down docker ps 只是运行 docker ps -a 所有 包括停止 docker ps -q 只看id docker stop <container_name_or_id> docker 的容器…

辣椒属2个T2T基因组-文献精读23

Two telomere-to-telomere gapless genomes reveal insights into Capsicum evolution and capsaicinoid biosynthesis 两个端粒到端粒无缝基因组揭示了辣椒进化和辣椒素生物合成的相关见解 摘要 辣椒&#xff08;Capsicum&#xff09;因其果实中含有辣椒素而闻名&#xff0c…

zabbix自定义监控mysql状态和延迟

zabbix自定义监控mysql状态和延迟 文章目录 zabbix自定义监控mysql状态和延迟zabbix自定义监控mysql状态配置主从配置自定义监控添加监控项添加触发器模拟测试异常 zabbix自定义监控mysql延迟配置自定义监控添加监控项添加触发器测试 zabbix自定义监控mysql状态 配置主从 1.安…

【区间合并 差分 栈】3169. 无需开会的工作日

本文涉及知识点 区间合并 差分数组&#xff08;大约2024年7月1号发) LeetCode3169. 无需开会的工作日 给你一个正整数 days&#xff0c;表示员工可工作的总天数&#xff08;从第 1 天开始&#xff09;。另给你一个二维数组 meetings&#xff0c;长度为 n&#xff0c;其中 me…

蓝牙模块的安全性与隐私保护

蓝牙模块作为现代无线通信的重要组成部分&#xff0c;在智能家居、可穿戴设备、健康监测等多个领域得到了广泛应用。然而&#xff0c;随着蓝牙技术的普及&#xff0c;其安全性和隐私保护问题也日益凸显。本文将探讨蓝牙模块在数据传输过程中的安全性问题&#xff0c;分析隐私保…

Web应用安全测试-业务功能滥用(二)

Web应用安全测试-业务功能滥用&#xff08;二&#xff09; 7、未验证的URL跳转 漏洞描述&#xff1a;服务端未对传入的跳转url变量进行检查和控制&#xff0c;可能导致可恶意构造任意一个恶意地址&#xff0c;诱导用户跳转到恶意网站。由于是从可信的站点跳转出去的&#xff…

如何扩展自己的外部竞争力

前言 程序员是一个需要不断学习的职业&#xff0c;面对层出不穷的新技术&#xff0c;假如你不能够保持一个不断学习的热情。那么&#xff0c;在未来的就业市场中&#xff0c;可能优势会不太明显。那么&#xff0c;除了提高自己内部的技术竞争力外&#xff0c;有什么渠道可以提…

Linux下的GPIO编程

目录 一、前言 二、sysfs方式 1、sysfs简介 2、基本目录结构 3、编号计算 4、sysfs方式控制GPIO 三、libgpiod库 1、libgpiod库简介 2、API函数 四、LED灯编程 一、前言 在Linux下&#xff0c;我们通常使用 sysfs 和 libgpiod库 两种方式进行控制GPIO&#xff0c;目前…

哈喽GPT-4o——对GPT-4o Prompt的思考与看法

目录 一、提示词二、提示词的优势1、提升理解能力2、增强专注力3、提高效率 三、什么样的算无效提示词&#xff1f;1、过于宽泛2、含糊不清3、太过复杂4、没有具体上下文5、缺乏明确目标6、过于开放7、使用专业术语但未定义8、缺乏相关性&#xff1a; 四、提示词正确的编写步骤…

ofd文件预览

文件列表 <template><div><div classfile v-if$myUtils.coll.isNotEmpty(filesList)><div classfile-view><div classfile-view-item :style{justifyContent: align } v-for(item, index) in filesList :keyindex><img classfile-view-item-…