首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Kubernetes(k8s)-Helm介绍&安装

Kubernetes(k8s)-Helm介绍&安装

作者头像
运维小路
发布2025-01-12 13:36:42
发布2025-01-12 13:36:42
1.6K0
举报
文章被收录于专栏:运维小路运维小路

我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。

我们前面介绍了多种资源,比如一个真正的应用可能会包括多个资源(deploy,svc,cm,secret等),如果我们要创建一个应用得全部手工编写这些资源,有没有一种方式可以一键完成这些资源的创建呢?k8s给我们提供了一个资源叫做Helm,它就具有这个功能。

Helm介绍

Helm 是一个 Kubernetes 应用程序的包管理工具。它简化了Kubernetes应用的安装和管理。Helm 由客户端工具 helm 和服务端组件 tiller(仅在 Helm v2 中)组成。Helm v3 在后来的版本中移除了 Tiller 组件,以增强安全性和简化操作。它和Linux里面的yum实际上比较类似。

以下是 Helm 的一些关键特性:

应用程序包格式

  • Helm 定义了一种应用程序包格式称为“图表”(charts)。一个图表是一组描述Kubernetes资源的文件集合。
  • 图表可以简化复杂应用的安装流程,因为它们包含了应用所有必要的Kubernetes资源和配置信息。

应用程序仓库

  • Helm 允许用户从仓库中添加、更新和下载图表。
  • Helm Hub 是 Helm 官方的集中仓库,用户可以找到各种社区维护的图表。
  • 用户也可以创建和维护私有仓库。

版本控制和升级

  • Helm 管理图表的版本,使得部署的应用可以轻松升级和回滚。
  • 通过Helm,你可以升级应用到新版本,或者回滚到旧版本,而无需直接操作底层Kubernetes资源。

模板化和配置

  • 图表使用模板语言来动态配置Kubernetes资源,这为部署相同应用的不同实例(例如不同的环境或配置)提供了灵活性。
  • Helm 的模板语法允许用户重用代码,通过简单的配置改变来定制资源。

依赖管理

  • Helm 允许图表定义依赖于其他图表,这使得复杂应用的部署成为可能,因为你可以组合不同的图表来构建整个应用。

社区和生态系统

  • 由于 Helm 的流行,已经建立了一个庞大的社区和生态系统。这意味着许多常见的应用和服务都有现成的图表可以使用。
  • Helm 社区积极维护和更新图表,确保与Kubernetes的兼容性。

从 Helm v2 到 Helm v3 的主要变化:

  • 移除了 Tiller,图表的安装和管理现在完全在客户端进行,提高了操作及安全性。
  • 引入了新的图表API版本及相关改进,例如改进的版本控制和发布追踪机制。
  • 改进了对Kubernetes资源的处理,包括对CRDs(自定义资源定义)的支持。

Helm 是 Kubernetes 生态系统中的核心工具之一,它大幅简化了Kubernetes应用的部署和管理流程。

Helm安装

要在Kubernetes集群上安装Helm,你需要按照以下步骤来安装Helm客户端并初始化它:

下载Helm: 前往官方Helm发布页面来下载适合你的操作系统的Helm版本。你可以使用以下命令在Linux上下载并解压Helm(以特定版本为例,确保更换为最新版本):

代码语言:javascript
复制
curl -s https://get.helm.sh/helm-v3.16.4-linux-amd64.tar.gz | tar xz

安装Helm: 从解压后的目录中找到helm二进制文件,并移动它到某个在你的PATH中的位置,如/usr/local/bin/

代码语言:javascript
复制
mv linux-amd64/helm /usr/local/bin/helm

验证Helm安装: 确认Helm已正确安装:

代码语言:javascript
复制
helm version

你应该看到Helm的版本信息,则说明安装成功。

4.添加仓库: Helm V3不再自带默认仓库。你可以根据需要添加官方仓库或者其他仓库(不添加仓库等于yum没有对应的repo文件),比如添加Nginx Ingress仓库:

代码语言:javascript
复制
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update

5.使用Helm安装应用: 一旦Helm客户端安装并配置好,你就可以开始使用它来安装应用了。例如,你可以用Helm来安装Nginx Ingress控制器:

代码语言:javascript
复制
代码语言:javascript
复制
helm install my-nginx ingress-nginx/ingress-nginx \
  --namespace ingress-nginx \
  --create-namespace

这条命令将会在ingress-nginx命名空间中安装一个名为my-nginx的Nginx Ingress控制器实例。

当然这个对网络有一定的要求,大部分环境可能都无法安装成功,当然我也没成功。

简单来说Helm实际上只是Linux的的二进制命令,它需要配合仓库配置才能使用,类似yum命令。就可以完成当前集群一键安装升级卸载应用的功能。

历史推荐内容Docker-docker基本信息,基本命令,dockerfile,原理,仓库,存储网络日志,番外篇云计算&虚拟化-包括服务器购买,虚拟化介绍,虚拟磁盘,虚拟网络,创建虚拟机,安装虚拟机,dashboard,xml解释,克隆,快照,初始化,esxi介绍。Linux进阶-包括硬件,日常运维,基础软件,日志,进阶命令,防火墙,shell编程,内核,linux系统及初始化Linux基础-包括文件的增删改查,磁盘管理,网络配置,用户配置,权限配置

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Helm介绍
  • Helm安装
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档