helm原理
Helm:
helm就相当于Linux的包管理工具yum,但它管理的程序包是一些打包好的清单文件。
其核心术语:
Chart:一个helm程序包,它里面可理解为,包含了一下定义Pod的清单文件,这些清单包含Service,Deployment,DaemonSet,ReplicaSet,StatefulSet,HPA等配置信息,当然这些东西不一定都有,会根据应用不同,其清单内容也会有所区别,Template是模板文件,因为配置清单要能适用于各种场景,已经能够根据用户使用场景,做一些自定义配置,比如:Nginx配置清单中要配置HTTPS,那就需要配置证书,但证书不可能提前打包到Chart中,这就需要一些机制,能通过传递变量的方式来适应这些自定义需求,而template就是这样的目的而存在的,值列表就是为Template提供传递变量的文件。
Repository:就是Helm的Chart仓库,它支持HTTPS/HTTP。
Release:特定的Chart部署于目标K8s集群上的一个实例。
chart到release的过程:
Chart---》Config ---》 Release
下图为Helm整体应用框架图:
helm是作为Helm Repository的客户端工具,helm默认工作时,会从本地家目录中去获取chart,只有本地没有chart时,它才会到远端的Helm Repository上去获取Chart,当然你也可以自己在本地做一个Chart,当需要应用chart到K8s上时,就需要helm去联系K8s Cluster上部署的Tiller Server,当helm将应用Chart的请求给Tiller Server时,Tiller Server接受完helm发来的charts(可以是多个chart) 和 chart对应的Config 后,它会自动联系API Server,去请求应用chart中的配置清单文件,最终这些清单文件会被实例化为Pod或其它定义的资源,而这些通过chart创建的资源,统称为release,一个chart可被实例化多次,其中的某些参数是会根据Config规则自动更改,例如Pod的名字等。

部署Helm:
#下载helm 二进制文件
wget -c https://get.helm.sh/helm-v2.14.2-linux-amd64.tar.gz #下载完成后,解压后,里面会有helm二进制可执行文件,只需要将helm 放到 PATH 路径下。 #参考示例:
https://github.com/helm/helm/blob/master/docs/rbac.md
#创建一个能在集群级别管理Pod资源的tiller
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system #在进行tiller server安装时,默认是从google镜像仓库中下载的,但国内很多下载不下来,这里可先从阿里云的谷歌镜像仓库下载下来,
#导入自己的harbor中,或直接使用阿里的谷歌镜像仓库也可
#下面是我提前下载了tiller的镜像,推到我的harbor了
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.2 #这是从谷歌镜像仓库下载. helm init --tiller-image harbor.zcf.com/k8s/tiller:v2.14.2 --service-account tiller --history-max #若后期需要升级tiller镜像,可直接使用下面命令
$ export TILLER_TAG=v2.0.0-beta. # Or whatever version you want
$ kubectl --namespace=kube-system set image deployments/tiller-deploy tiller=gcr.io/kubernetes-helm/tiller:$TILLER_TAG #初始化完成后,查看版本
# helm version
Client: &version.Version{SemVer:"v2.14.2", GitCommit:"a8b13cc5ab6a7dbef0a58f5061bcc7c0c61598e7", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.2", GitCommit:"a8b13cc5ab6a7dbef0a58f5061bcc7c0c61598e7", GitTreeState:"clean"} #做helm仓库更新
# helm repo update #测试安装memcached
# helm install stable/memcached #查看安装的Chart
# helm list
NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
plucking-buffalo 1 Tue Jul 30 15:55:04 2019 DEPLOYED memcached-2.9.0 1.5.12 default
#删除Chart
# helm delete --purge plucking-buffalo
#官方可用的helm仓库地址
https://hub.kubeapps.com
#这是一个很深入介绍helm的文章:
https://www.hi-linux.com/posts/21466.html
helm原理的更多相关文章
- [k8s]helm原理&私有库搭建&monocularui和kubeapp探究
运行最简单的charts示例 helm的2个chart例子: https://github.com/kubernetes/helm/tree/master/docs/examples/nginx he ...
- Helm简介
什么是Helm 微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,作为Kubernetes应用的一个包管理工具,可理解为Kuberne ...
- Helm一:简介
目录 什么是Helm Helm解决的问题 Helm原理 Helm架构 Helm功能 Helm三个重要概念 Helm组件 Helm Client Tiller Server Helm实现 什么是Helm ...
- 虚拟化原理到K8s实践经验路线总结
以下这些内容均为自行学习总结的内容,很多内容没有写概括介绍,看起来可能会有些突兀,但并不影响整体性,我自己的学习经验告诉我,这些内容还仅仅是最精简的核心部分,周边还有很多可扩展内容,主要是操作系统生态 ...
- 053.集群管理-Helm部署及使用
一 Helm概述 1.1 Helm介绍 Helm 是 Kubernetes 的软件包管理工具.包管理器类似 Ubuntu 中使用的apt.Centos中使用的yum 或者Python中的 pip 一样 ...
- k8s--发展历程、知识图谱、组件说明
kubernetes 1.发展历程 基础设施级服务infrastructure as a service 阿里云 平台设施级服务 platform as a service 新浪云 软件设施级服务 s ...
- k8s Learning Notes
Kubernetes - 组件介绍 MESOS APACHE 分布式资源管理框架 2019-5 Twitter > Kubernetes Docker Swarm 2019-07 阿里云宣布 D ...
- Kubernetes学习笔记_尚硅谷
https://www.bilibili.com/video/BV1w4411y7Go?p=1 一.K8s介绍 k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部 ...
- 十八,helm的原理及基础使用
目录 helm介绍 核心术语 helm安装 helm安装 Tiller安装 创建tiller相关的rbac helm使用 添加chart源 helm常用命令: 基础命令 自定义chart 一.char ...
随机推荐
- springboot 远程调试
首先以调试模式启动编译好的jar包,监听端口为5005 java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,addre ...
- [转帖]CHROME开发者工具的小技巧
CHROME开发者工具的小技巧 https://coolshell.cn/articles/17634.html 需要仔细学习看一看呢. 2017年01月19日 陈皓 评论 58 条评论 64,08 ...
- Prometheus 与 Alertmanager 通信
Prometheus 与 Alertmanager 通信 1.编辑Prometheus配置文件配置连接地址:vim prometheus.yml # Alertmanager configuratio ...
- 在普通网页显示正常,加Https报This request has been blocked; the content must be served over HTTPS.,https网站加载http资源时,http资源被block
解决办法 :在html头加<meta http-equiv="Content-Security-Policy" content="upgrade-insecure- ...
- 在VS2019创建WebForm程序,开个箱
现在公司用的是VS2010+ASP.NET WebForm + DevExpress控件做系统开发,好老好老了,没办法,只能在这里尝一尝新鲜的味道. TMD,还以为马上创建,谁知还有一关!!! 还是那 ...
- 阅读prettytable 一些代码、get、set 检查参数
阅读代码是因为我发现官方教程里的代码在本地不能用,所以就通过”查看定义“转到了源代码里. 通过阅读源代码,查看方法内是否有教程中所说的方法名和参数名,然后再通过”查看引用“来试图了解函数的流程,如果没 ...
- Java中关于位运算的面试题
位运算的效率是最高的,因为位位运算是直接对二进制进行操作 位运算只能应用于整型和char类型(char类型可以看做是特殊的无符号的整形) 面试题: a: 判断一个数是否是奇数 a & 1 == ...
- DjangoDRF总结
思维导图xmind文件:https://files-cdn.cnblogs.com/files/benjieming/DRF%E6%A8%A1%E5%9D%97.zip
- Astyle格式化插件
可以集成到Visual Studio.Eclipse和source insight当中.下面只介绍集成到source insight 下载地址: https://sourceforge.net/pro ...
- 源码升级SUSE openssh
1.check old opensslrpm -q opensslopenssl versionwhich opensslwhereis opensslls /etc/ssl 2.backup old ...