您的位置 首页 k8s

helm 安装

部署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

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章