【Kubernetes】k8s集群之包管理器Helm

news2024/12/28 21:31:02

目录

一.Helm概述

1.Helm的简介

2.Helm的三个重要概念

3.Helm2与Helm3的的区别 

二.Helm 部署

1.安装 helm 

2.使用 helm 安装 Chart

3.Helm 自定义模板

4.Helm 仓库


每个成功的软件平台都有一个优秀的打包系统,比如Debian、Ubuntu 的 apt,RedHat、CentOS

的 yum。Helm 则是 Kubernetes上 的包管理器,方便我们更好的管理应用

一.Helm概述

1.Helm的简介

Helm本质就是让K8s的应用管理(Deployment、Service等)可配置,可以通过类似于传递环境变

量的方式能动态生成。通过动态生成K8s资源清单文件(deployment.yaml、service.yaml)。 然后

调用 Kubectl 自动执行 K8s 资源部署。

在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁

琐。 况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打

包的方式,支持发布的版本管理和控制, 很大程度上简化了 Kubernetes 应用的部署和管理。

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

Helm的官网地址:http:// https://helm.sh/

2.Helm的三个重要概念

在Helm中 有三个重要的概念,分别为:Chart 、Repository 和 Release 

  • Chart:Helm 的软件包,采用 TAR 格式。是创建一个应用的信息集合,包括各种 Kubernetes 对象的配置模板、参数定义、依赖关系、文档说明等。chart 是应用部署的自包含逻辑单元。 可以将 chart 想象成 apt、yum 中的软件安装包。
  • Release:是 chart 的运行实例,代表了一个正在运行的应用。当 chart 被安装到 Kubernetes 集群,就生成一个 release。chart 能够多次安装到同一个集群,每次安装都是一个 release。
  • Repository(仓库):Charts 仓库,用于集中存储和分发 Charts。Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。

还有一个在Helm3版本中就被移除的概念

Tiller: Helm 2.x版本中,Helm采用Client/Server的设计,Tiller就是Helm的Server部分,需要具备

集群管理员权限才能安装到K8s集群中运行。Tiller与Helm client进行交互,接收client的请求,再

与K8s API Server通信,根据传递的Charts来生成Release。而在最新的Helm 3.x中,据说是为了

安全性考虑移除了Tiller。 

Helm在k8s集群运用中,总的来讲其作用过程:Helm 安装 charts 到 Kubernetes 集群中,每次安

装都会创建一个新的 release。你可以在 Helm 的 chart repositories 中寻找新的 chart

3.Helm2与Helm3的的区别 

helm2的部署方式与使用 

Helm2 是 C/S 架构,主要分为客户端 helm 和服务端 Tiller。在 Helm 2 中,Tiller 是作为一个

Deployment 部署在 kube-system 命名空间中,很多情况下,我们会为 Tiller 准备一个

ServiceAccount ,这个 ServiceAccount 通常拥有集群的所有权限。

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

间下的任意资源。

Helm3的部署与使用

在 Helm 3 中,Tiller 被移除了。新的 Helm 客户端会像 kubectl 命令一样,读取本地的 kubeconfig

文件,使用我们在 kubeconfig 中预先定义好的权限来进行一系列操作

二.Helm 部署

1.安装 helm 

上传helm-v3.6.0-linux-amd64.tar.gz
tar -zxvf helm-v3.6.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/
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 list
 
//更新 charts 列表
helm repo update          
 
//查看 stable 仓库可用的 charts 列表
helm search repo stable
 
//删除 incubator 仓库
helm repo remove incubator
 
helm search repo <仓库名称>                #查看仓库中可用的chart包列表
helm search repo <软件名>                  #在仓库列表查询中可用的chart包
helm search repo <chart包> -l              #查看仓库中指定的chart包所有可用的历史版本列表,<chart包>格式为<仓库名称/软件包>
helm show chart <chart包>                  #查看chart包的基本信息

chart包安装、卸载:
helm install -n <命名空间> <实例名称> <chart包> [--version <chart版本>]    #通过chart包安装实例,默认安装最新版本
helm ls -n <命名空间>                                                      #查看helm安装的实例
helm list -n <命名空间>                                                   
helm status -n <命名空间> <实例名称>                                       #查看实例的状态
helm uninstall -n <命名空间> <实例名称>                                    #卸载实例

3.Helm 自定义模板

chart包的管理:
helm pull <chart包>                   #从仓库下载chart包
helm create <chart包>                 #自建chart包
helm lint <chart包目录>               #检查chart包中的文件语法格式
helm package <chart包目录>            #将chart包目录打包成tar格式压缩包
vim Chart.yaml

vim values.yaml
修改此文件中的配置
 
helm lint myapp/   #检查chart包中的文件语法格式
helm package myapp/  #将chart包目录打包成tar格式压缩包
 
helm install -n xy101 myapp-1 myapp-1.0.0.tgz  #部署
升级:修改配置文件后重新生成chart包
helm upgrade -n <命名空间> <实例名称> <chart包>                            #升级实例
helm history -n <命名空间> <实例名称>                                      #查看实例的历史版本列表
helm rollback -n <命名空间> <实例名称> <REVISION>                          #回滚实例到指定的chart历史版本

4.Helm 仓库

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

//安装 harbor
#上传 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
 
tar zxf harbor-offline-installer-v1.9.1.tgz
cd harbor/
 
vim harbor.yml
hostname: 192.168.80.13
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
 
//安装 push 插件
#在线安装
helm plugin install https://github.com/chartmuseum/helm-push
 
#离线安装
wget https://github.com/chartmuseum/helm-push/releases/download/v0.8.1/helm-push_0.8.1_linux_amd64.tar.gz
 
mkdir -p ~/.local/share/helm/plugins/helm-push
tar -zxvf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/helm-push

#登录 Harbor WEB UI 界面,创建一个新项目
浏览器访问:http://192.168.80.101 ,默认的管理员用户名和密码是 admin/Harbor12345
点击 “+新建项目” 按钮
填写项目名称为 “chart_repo”,访问级别勾选 “公开”,点击 “确定” 按钮,创建新项目
 
#添加仓库
helm repo add harbor http://192.168.80.13/chartrepo/chart_repo --username=admin --password=Harbor12345
#注:这里的 repo 的地址是<Harbor URL>/chartrepo/<项目名称>,Harbor 中每个项目是分开的 repo。如果不提供项目名称,则默认使用 library 这个项目。
 
helm repo ls
 
#推送 chart 到 harbor 中
cd /opt/helm
helm push nginx harbor
 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

医疗器械5G智能制造工厂物联数字孪生平台,推进制造业数字化转型

在当今这个日新月异的数字时代&#xff0c;医疗器械行业正经历着前所未有的变革与升级。随着5G技术的迅猛发展和智能制造的深入应用&#xff0c;医疗器械5G智能制造工厂物联数字孪生平台应运而生&#xff0c;它不仅为传统制造业注入了新的活力&#xff0c;更以其独特的优势引领…

C++图像识别、图像识别接口、ocr api

如果您在找工作并且在找内容审核编辑的工作&#xff0c;那么不难发现&#xff0c;快手在全国多个招聘网站发布了关于“内容审核编辑”岗位的招聘信息&#xff0c;据悉&#xff0c;此次的“内容审核编辑”岗位招聘的规模达3000人。因为快手上面“低龄妈妈”内容的炒作&#xff0…

Linux 与 Windows 服务器操作系统 | 全面对比

在服务器操作系统的领域&#xff0c;Linux 和 Windows 一直是两个备受关注的选择。 首先来看 Windows 操作系统。它由 Microsoft Corporation 开发&#xff0c;在桌面领域占据显著份额&#xff0c;其中 Windows 10 是使用最广泛的版本&#xff0c;广泛应用于个人计算机和企业桌…

8月16日笔记

只有DNS协议出网场景 DNS 协议是一种请求、应答协议&#xff0c;也是一种可用于应用层的隧道技术。DNS 隧道的工作原理很简单&#xff0c;在进行 DNS 查询时&#xff0c;如果查询的域名不在 DNS 服务器本机缓存中&#xff0c;就会访问互联网进行查询&#xff0c;然后返回结果。…

ELK整合实战,filebeat和logstash采集SpringBoot项目日志发送至ES

文章目录 ELK整合实战使用FileBeats将日志发送到Logstash配置Logstash接收FileBeat收集的数据并打印Logstash输出数据到Elasticsearch利用Logstash过滤器解析日志Grok插件Grok语法用法 输出到Elasticsearch指定索引 前文&#xff1a;FileBeats详解 前文&#xff1a;logstash详解…

pdf翻译软件哪个好用?多语言轻松转

想知道怎么用pdf翻译器在线翻译吗&#xff1f;无需复杂操作&#xff0c;一键即可解锁语言障碍。 在这个全球化日益加深的时代&#xff0c;掌握pdf文件的快速翻译技巧尤为重要。 无论是学习、工作还是国际交流&#xff0c;以下4个免费pdf翻译技巧都将是你不可或缺的得力助手。…

Apollo9.0 PNC源码学习之Planning模块—— Lattice规划(一):笛卡尔和Frenet坐标系

参考文章:Frenet坐标系 or Cartesian坐标系? 1 Lattice规划算法框架结构 2 Frenet坐标系 // 跟据匹配点,计算Frenet坐标系的S-L值// 3. according to the matched point, comp

十九、中介者模式

文章目录 1 基本介绍2 案例2.1 Developer 抽象类2.2 FrontendDeveloper 类2.3 BackendDeveloper 类2.4 Mediator 接口2.5 ProjectManager 类2.6 Client 类2.7 Client 类的运行结果2.8 总结 3 各角色之间的关系3.1 角色3.1.1 Colleague ( 同事 )3.1.2 ConcreteColleague ( 具体的…

RabbitMQ-消息队列-centos7

一、RabbitMQ安装 1、通过官网下 官网网址&#xff1a;https://www.rabbitmq.com 首先下载erlang-23.3.4.11-1.el7.x86_64.rpm&#xff0c;其次下载rabbitmq-server-3.10.0-1.el7.noarch.rpm 注意&#xff1a;RabbitMQ是由erlang开发的&#xff0c;所以必须先安装erlang版本…

Pytorch1: Anaconda下载,安装,配置

Anaconda手册 一&#xff0c;Anconada1&#xff0c;Anconada简介 二、下载、安装、配置环境变量1&#xff0c;安装 三、anaconda创建多版本python环境四、anaconda 安装 pytorch五、Jupyter Notebook 一&#xff0c;Anconada 1&#xff0c;Anconada简介 Anaconda就是一个用于…

【多线程】JUC的常见类,Callable接口,ReentranLock,Semaphore,CountDownLatch

JUC&#xff1a;java.util.concurrent 一、Callable 接⼝ 接口方法Callablecall&#xff0c;带有返回值Runnablerun&#xff0c;void所以创建一个线程&#xff0c;希望它给你返回一个结果&#xff0c;那么使用 Callable 更加方便一些 比如&#xff0c;创建一个线程&#xff…

leetcode350. 两个数组的交集 II,哈希表

leetcode350. 两个数组的交集 II 给你两个整数数组 nums1 和 nums2 &#xff0c;请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数&#xff0c;应与元素在两个数组中都出现的次数一致&#xff08;如果出现次数不一致&#xff0c;则考虑取较小值&#xff09;。可…

导出word格式的Javadoc(可用于快速生成项目详细设计文档)

导出word格式的Javadoc ​ 最近要编写项目详细设计文档&#xff0c;作为程序员当然想看看有没有能够自动生成的办法&#xff0c;生成详细设计文档&#xff0c;然后再在生成的基础上略做修改就好了&#xff08;偷懒大法~&#xff09;&#xff0c;还真有&#xff0c;特此分享&am…

数字乡村+智慧农业数字化转型大数据平台建设方案

1. 数字农业发展趋势 数字农业正经历全环节数字技术应用、全流程生产经营再造、全方位线上线下对接和管理服务全生命周期覆盖的四大趋势&#xff0c;标志着我国农业进入高质量发展新阶段。 2. 数字乡村的战略意义 数字乡村作为数字化、网络化和信息化的产物&#xff0c;对于…

人工智能技术工程师由谁颁发?都学习哪些课程?

人工智能技术工程师是一个充满挑战和机遇的职业。他们将用自己的专业知识和技能&#xff0c;为人类带来更加美好的未来。 一、人工智能工程师发证单位是谁&#xff1f; 人工智能技术工程师证书是由工业和信息化部教育与考试中心颁发的。 工信部电子标准院的人工智能从业人员认…

基于飞腾平台的Hadoop的安装配置

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力&#xff0c;聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域&#xff0c;包含了应用使能套件、软件仓库、软件支持、软件适…

旅游卡真伪一招辨别,避免旅行陷阱!

揭秘旅游卡真伪&#xff01;一招教你识别隐藏陷阱&#xff0c;避免旅行大坑&#xff01; 对于热爱旅行的朋友们来说&#xff0c;旅游卡无疑是一种方便又实惠的选择。 然而&#xff0c;随着市场上的旅游卡种类越来越多&#xff0c;如何选择一张真实有效的旅游卡成为了大家关注…

CI/CD 自动化:最大限度地提高极狐GitLab 群组的“部署冻结”影响

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门面向中国程序员和企业提供企业级一体化 DevOps 平台&#xff0c;用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规&#xff0c;而且所有的操作都是在一个平台上进行&#xff0c;省事省心省钱。可以一键安装极狐GitL…

矩阵获客时代,如何有效管理云微客短视频矩阵?

随着短视频内容数量的快速增长&#xff0c;一站式、高效、智能化的矩阵管理模式&#xff0c;正逐渐受到各个行业的关注和喜爱。那么该如何有效地管理短视频矩阵&#xff0c;确保内容的高质量、高效率和准确投放呢&#xff1f; 当今数字化时代&#xff0c;短视频已经成为了一种极…

Oracle 用户-表空间-表之间关系常用SQL

问题&#xff1a; 当某一个表数据量特别大&#xff0c;突然插入数据一直失败&#xff0c;可能是表空间不足&#xff0c;需要查看表的使用率 用户-表空间-表之间关系&#xff1a;用户可以有多个表空间&#xff0c;表空间可以有多个表&#xff0c;表只能拥有一个表空间和用户 1.…