Helm 简单安装&使用


前言

本文主要介绍 Helm 的简单使用,及简单的配置说明。
并没有涉及到与 K8s 之间的通讯(有很多可以参考的,看其他的吧。例如:官网)。

提示:Helm 的 yaml 文件不要使用 IDEA 编辑。格式化要求不同,会导致异常。


1、前置相关知识

Docker

Kubernetes


2、Helm 是什么?

Helm 是 Kubernetes 的包管理器,类似于 Python 的 pip , centos 的 yum ,主要用来管理 Charts 。
Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序

此部分内容,参考来源地址。感觉写的非常不错。引用一下!


3、相关网站

官网

官网

文档

下载地址

中文网站

Helm中文文档

安装Helm


4、安装&使用

4.1、Windows

操作系统:Windows 11 21H2

Helm : 3.8.1

安装

安装包下载地址

文件名:helm-v3.8.1-windows-amd64.zip

将压缩文件进行解压

将解压的文件夹添加到环境变量 Path 中(Windows 11 此电脑 -》 鼠标右键 -》 高级系统设置 -》 环境变量 -》 Path -》编辑 -》新建 -》 文件夹路径)

检查是否配置正常: Windows 徽标 + R 打开运行窗口 -》 输入 cmd -》 显示命令行窗口

# 查看 helm 版本
C:\Users\xyz>helm version
version.BuildInfo{Version:"v3.8.1", GitCommit:"***", GitTreeState:"clean", GoVersion:"go1.17.5"}

使用

示例:

# 创建 myapp chart 包
helm create myapp

# lint 命令可检验语法错误
helm lint .\myapp

# 打包
helm package .\myapp
# 打包结果放到 K8s 集群即可使用

5、文件及参数说明

myapp chart 包结构如下:

Chart.yaml:当前 Charts 的描述信息,yaml 格式的文件。
values.yaml:当前 Charts 用到的默认配置值。
templates/:目录,存放当前 Charts 用到的模板文件,可应用于 Charts 生成有效的Kuber-netes 清单文件。

Template 中文件的作用

说明:Template 文件夹中的文件名不重要,重要的是文件内容中 kind 对应的内容。

  1. kind : Deployment 。 创建 Kubernetes Deployment 脚本以启动 Pod。
  2. kind : Service 。 创建 Kubernetes Service 脚本以定义容器与外界之间的通信接。
  3. kind : Ingress 。 编写 Kubernetes Ingress 脚本来定义与外界的通信。

Service

创建 Kubernetes Service 脚本以定义容器与外界之间的通信接

spec.type (ClusterIP、NodePort、ExternalName)
  • ClusterIP : 默认模式,仅用于集群内通信。
  • NodePort : 服务对外的端口,如果不指定固定端口,默认自动分配。
  • ExternalName : 会被绑定在一个实际的域名上。

Deployment

kind: StatefulSet

statefulset 是为了解决有状态服务的问题,而产生的一种资源类型( deployment 和 replicaSets 是解决无状态服务而设计的)。

变量名

kind: Deploy 文件中,env 中的变量名

1、含有符号 . 配置环境变量的时候需要转换为 _

# 示例
security.users.admin
SECURITY_USERS_ADMIN

2、变量名中的 - 符号去掉

原因:代码中会把后面的首字母改为大写。

# 示例
security.oauth2-auth.enabled
SECURITY_OAUTH2AUTH_ENABLED

Ingress

Ingress 如果配置了域名,需要注意:

  1. 如没有域名服务器,则需要客户端,本地配置 host ,然后通过 host 访问配置中的域名地址;
  2. 只有通过 host 访问,Ingress 配置才能生效;
  3. 通过 IP 进行访问,Ingress 配置不生效。

6、错误处理

Deploy

错误信息

failed to install app test. Error: release test failed: StatefulSet in version "v1" cannot be handled as a StatefulSet: v1.StatefulSet.Spec: v1.StatefulSetSpec.Template: v1.PodTemplateSpec.Spec: v1.PodSpec.Containers: []v1.Container: v1.Container.Env: []v1.EnvVar: v1.EnvVar.Value: ReadString: expects " or n, but found t, error found in #10 byte of ...|,"value":true},{"nam|..., bigger context ...|name":"ENABLED","value":true}

错误中的重点

ReadString: expects " or n, but found t, error found in

原因

env label value只支持string

解决方法

yaml文件中 spec.template.spec.containers.env 里面的 value 加上双引号(“true”)


总结

主要内容为简单的使用以及参数说明。
使用过程中,发现部分内容比较难找,因此总结记录一下。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值