部署traefik ingress controller
什么是helm
helm是k8s资源清单的管理工具,它就像Linux下的包管理器,比如centos的yum,ubuntu的apt。
helm有以下几个术语:
helm:
命令行工具,主要用于k8s的chart的创建,打包,发布和管理。
chart:
应用描述,一系列用于描述k8s资源相关文件的集合。
release:
基于chart的部署实体,一个chart被helm运行后会生成一个release实体。
这个release实体会在k8s集群中创建对应的资源对象。
1.2 为什么需要helm
部署服务面临很多的挑战:
(1)资源清单过多,不容易管理,如何将这些资源清单当成一个整体的服务进行管理?
- deploy,ds,rs,...
- cm,secret
- pv,pvc,sc
- ...
(2)如何实现应用的版本管理,比如发布,回滚到指定版本?
(3)如何实现资源清单文件到高效复用?

如上图所示,Helm目前有两个版本,即V2和V3。
2019年11月Helm团队发布V3版本,相比v2版本最大变化是将Tiller删除,并大部分代码重构。
helm v3相比helm v2还做了很多优化,比如不同命名空间资源同名的情况在v3版本是允许的,我们在生产环境中使用建议大家使用v3版本,不仅仅是因为它版本功能较强,而且相对来说也更加稳定了。
官方地址:
https://helm.sh/docs/intro/install/
github地址:
https://github.com/helm/helm/releases
部署helm
1.下载软件包
新版本:
https://get.helm.sh/helm-v3.17.1-linux-amd64.tar.gz
旧版本
wget https://get.helm.sh/helm-v3.9.4-linux-amd64.tar.gz
2.解压软件包
tar xf helm-v3.9.4-linux-amd64.tar.gz
3.将软件包拷贝到PATH
mv linux-amd64/helm /usr/local/sbin/
4.清理软件包
rm -rf linux-amd64/
5.验证helm是否安装成功
helm -h

helm v3 是默认用的 /root/.kube/config 的权限来访问k8s 的。

常用命令:
1-列出仓库
helm repo ls
2-添加仓库
helm repo add stable https://charts.helm.sh/stable
然后验证:
helm repo ls
移除仓库:
helm repo remove
被墙了
helm repo add bitnami https://charts.bitnami.com/bitnami
这个是官方推荐的也是维护的仓库
add bitnami 是指定仓库名,后边是仓库地址

其他仓库:
helm repo add azure http://mirror.azure.cn/kubernetes/charts/
此处我们将微软云的仓库添加到咱们的helm客户端仓库
其他仓库:
| 仓库名称/提供方 | 仓库地址 (URL) | 备注 |
|---|---|---|
| 阿里云 (Aliyun) | https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts |
覆盖主流应用,CDN 加速,非常稳定。 |
| 微软 Azure (Azure) | http://mirror.azure.cn/kubernetes/charts |
微软提供的镜像,同步较及时,推荐使用。 |
| 开源社 (KaiyuanShe) | http://mirror.kaiyuanshe.cn/kubernetes/charts |
社区维护的镜像源。 |
| 网易 Lofter (Netease) | http://mirrors.lofter.com/chartsv2/ |
网易提供的镜像服务。 |
3-看看指定仓库下的chart包
helm search repo stable
# Helm 搜索使用模糊字符串匹配算法,所以你可以只输入名字的一部分#

APP version: 实际应用程序的 nginx 版本
chartversion: 自定义的
/root/.cache/helm/repository 存放一些 包索引信息
安装 chart 案例:
因为 Helm Chart 通常包含镜像拉取逻辑,所以有些仓库是需要科学的。
更新一下;
helm repo update
helm show values stable/tomcat
helm install stable/tomcat --generate-name
-generate-name 自动生成一个名字
helm list
也是分名称空间的 helm list -n default
检验安装:

查看信息:
helm show chart stable/tomcat
查看所有信息:
helm show all stable/tomcat

卸载应用
helm uninstall tomcat-1769064090
#
可以加一个参数 保留历史版本: --keep-history

三大概念:
一、helm search : 查找 charts
1-用于在 Helm Hub(https://hub.helm.sh)上搜索 Helm charts
官方公开的所有都去搜索
helm search hub wordpress
2-用于在配置的 Helm 仓库中搜索 Helm charts,~/.config/helm/repositories.yaml 中被定义
持久化 (本地仓库中搜)
helm search repo wordpress
( Helm 搜索使用模糊字符串匹配算法,所以你可以只输入名字的一部分)

二、helm install :安装一个helm包
helm install stable/tomcat --generate-name
安装资源对象顺序:
Namespace > NetworkPolicy > ResourceQuota > LimitRange >
PodSecurityPolicy > PodDisruptionBudget > ServiceAccount > Secret >
SecretList > ConfigMap > StorageClass
PersistentVolume > PersistentVolumeClaim > CustomResourceDefinition
> ClusterRole
ClusterRoleList > ClusterRoleBinding > ClusterRoleBindingList > Role
> RoleList
RoleBinding > RoleBindingList > Service > DaemonSet > Pod >
ReplicationController > ReplicaSet > Deployment >
HorizontalPodAutoscaler > StatefulSet > Job > CronJob > Ingress >
APIService
三、安装前 自定义chart
第一步:查看chart中的可配置选项:
helm show values stable/tomcat
四、helm install 命令可以从多个来源进行安装:
chart 的仓库(如上所述)
本地 chart 压缩包( helm install foo foo-0.1.1.tgz )
解压后的 chart 目录( helm install foo path/to/foo )
完整的 URL( helm install foo https://example.com/charts/foo-1.2.3.tgz )
安装前 自定义chart : 连接
可用命令(Available Commands)概述
completion:
生成命令补全的功能。使用"source <(helm completion bash)"
create:
创建一个chart并指定名称。
dependency:
管理chart依赖关系。
env:
查看当前客户端的helm环境变量信息。
get:
下载指定版本的扩展信息。
help:
查看帮助信息。
history:
获取发布历史记录。
install:
安装chart。
lint:
检查chart中可能出现的问题。
list:
列出releases信息。
package:
将chart目录打包到chart存档文件中。
plugin:
安装、列出或卸载Helm插件。
pull:
从存储库下载chart并将其解包到本地目录。
repo:
添加、列出、删除、更新和索引chart存储库。
rollback:
将版本回滚到以前的版本。
search:
在chart中搜索关键字。
show:
显示chart详细信息。
status:
显示已有的"RELEASE_NAME"状态。
template:
本地渲染模板。
test:
运行版本测试。
uninstall:
卸载版本。
upgrade:
升级版本。
verify:
验证给定路径上的chart是否已签名且有效
version:
查看客户端版本。
欢迎来撩 : 汇总all
