Kubernetes笔记(10) - Helm
应用微服务化后虽然便于部署和扩展,实现了敏捷开发和运维,但另一方面,在将单体应用微服务化后,往往又导致了应用管理复杂度的增加,例如,在Kubernetes系统之上,每个应用基本上都有着不止一个资源,而每个应用又有不同的环境(如qa、test和prod等),这会使得配置清单数量变得非常多而且维护起来非常复杂,而借助Helm可以简化资源的管理。
Helm基础
简单来说,Helm就是Kubernetes的应用程序包管理器,类似于Linux系统之上的yum或apt-get等,可用于实现帮助用户查找、分享及使用Kubernetes应用程序。
Helm将Kubernetes应用的相关配置组织为Charts,并通过它完成应用的常规管理操作。通常来说,使用Charts管理应用的流程包括从0开始创建Charts、将Charts及其相关的文件打包为归档格式、将Charts存储于仓库(repository)中并与之交互、在Kubernetes集群中安装或卸载Charts以及管理经Helm安装的应用的版本发行周期。
Helm的核心术语
- Charts:即一个Helm程序包,它包含了运行一个Kubernetes应用所需要的镜像、依赖关系和资源定义等,必要时还会包含Service的定义;它类似于APT的dpkg文件或者yum的rpm文件;
- Repository:Charts仓库,用于集中存储和分发Charts;
- Config:应用程序实例化安装运行时使用的配置信息;
- Release:应用程序实例化配置后运行于Kubernetes集群中的一个Charts实例;在同一个集群上,一个Charts可以使用不同的Config重复安装多次,每次安装都会创建一个新的Release。
Helm架构
Helm主要由Helm客户端、Tiller服务器和Charts仓库组成:
- Helm客户端是命令行客户端工具,采用Go语言编写,基于gRPC协议与Tiller server交互,它主要完成如下任务:
- 本地Charts开发
- 管理Charts仓库
- 与Tiller服务器交互:发送Charts以安装、查询Release的相关信息以及升级或卸载已有的Release
- Tiller server是托管运行于Kubernetes集群之中的容器化服务应用,它接收来自Helm客户端的请求,并在必要时与Kubernetes API Server进行交互。它主要完成以下任务:
- 监听来自于Helm客户端的请求
- 合并Charts和配置以构建一个Release
- 向Kubernetes集群安装Charts并对相应的Release进行跟踪
- 升级和卸载Charts
- Charts仓库,既可以运行为公共托管平台,也可以是用户自建的服务器。通常用户于Helm客户端本地遵循其格式编写Charts文件,而后即可部署于Kubernetes集群之上运行为一个特定的Release。仅在有分发需求时,才需要将Charts文件打包成归档压缩格式提交到特定的Charts仓库。
安装Helm
Helm的源码位于https://github.com/helm/helm,根据文档,mac可直接使用brew安装:
~ brew install helm~ helm version
需要注意的是,Helm的运行依赖于本地安装并配置完成的kubectl方能与运行于Kubernetes集群之上的Tiller服务器进行通信,因此,运行Helm的节点也应该是可以正常使用kubectl命令的主机。
对于version 3+的版本来说,helm的安装已经完成了,如果是较低的版本,还需要进一步安装
tiller server。
安装Helm chart
首先设置chart仓库指向ArtifactHUB:
helm repo add bitnami https://charts.bitnami.com/bitnami
对应的网址为https://artifacthub.io/
Redis Chart使用示例
搜索redis
helm repo updatehelm search repo redis
安装,不指定实例名称时必须使用--generate-name
helm install bitnami/redis --generate-name或helm install redis-test bitnami/redis
安装完成后会有类似这样的提示:
NAME: redis-1625445720LAST DEPLOYED: Mon Jul 5 08:42:05 2021NAMESPACE: defaultSTATUS: deployedREVISION: 1TEST SUITE: None
此外还有详细的使用提示:
Redis(TM) can be accessed on the following DNS names from within your cluster: redis-1625531591-master.default.svc.cluster.local for read/write operations (port 6379) redis-1625531591-replicas.default.svc.cluster.local for read-only operations (port 6379)To get your password run: export REDIS_PASSWORD=$(kubectl get secret --namespace default redis-1625531591 -o jsonpath="{.data.redis-password}" | base64 --decode)To connect to your Redis(TM) server:1. Run a Redis(TM) pod that you can use as a client: kubectl run --namespace default redis-client --restart='Never' --env REDIS_PASSWORD=$REDIS_PASSWORD --image docker.io/bitnami/redis:6.2.4-debian-10-r13 --command -- sleep infinity Use the following command to attach to the pod: kubectl exec --tty -i redis-client \ --namespace default -- bash2. Connect using the Redis(TM) CLI: redis-cli -h redis-1625531591-master -a $REDIS_PASSWORD redis-cli -h redis-1625531591-replicas -a $REDIS_PASSWORDTo connect to your database from outside the cluster execute the following commands: kubectl port-forward --namespace default svc/redis-1625531591-master 6379:6379 & redis-cli -h 127.0.0.1 -p 6379 -a $REDIS_PASSWORD
删除部署的chart:
heml delete <release name>
Helm Charts
Charts是Helm使用的Kubernetes程序包打包格式,一个Charts就是一个描述一组Kubernetes资源的文件的集合。
Charts文件组织结构
一个Charts就是按特定格式组织的目录结构,目录名即为Charts名
使用helm pull bitnami/redis --untar
下载redis chart并解压到当前目录,内容如下
~ ls Chart.lock charts templatesCha......原文转载:http://www.shaoqun.com/a/884610.html
跨境电商:https://www.ikjzd.com/
巴士物流:https://www.ikjzd.com/w/2329
mav:https://www.ikjzd.com/w/2414
联动优势:https://www.ikjzd.com/w/1921
Kubernetes笔记(10)-Helm应用微服务化后虽然便于部署和扩展,实现了敏捷开发和运维,但另一方面,在将单体应用微服务化后,往往又导致了应用管理复杂度的增加,例如,在Kubernetes系统之上,每个应用基本上都有着不止一个资源,而每个应用又有不同的环境(如qa、test和prod等),这会使得配置清单数量变得非常多而且维护起来非常复杂,而借助Helm可以简化资源的管理。Helm基础简单
easel:https://www.ikjzd.com/w/1721
2021最温暖的打开方式:邀您来惠州共赴一场"暖冬之旅":http://www.30bags.com/a/435628.html
2021最新!邦涛海滩不完全攻略,带你了解普吉岛最豪华的度假区......:http://www.30bags.com/a/275368.html
2021最新版浙江温泉地图 收藏起来(组图):http://www.30bags.com/a/416766.html
2021最新出境购物旅游退税攻略_购物胜地的退税指南:http://www.30bags.com/a/414376.html
我想吃你的水蜜桃 一边吃早餐一边做:http://lady.shaoqun.com/a/247933.html
被两个黑人三明治夹在 两个人一前一后攻击:http://lady.shaoqun.com/a/248383.html
无耻公公饥渴太久要我给他一次:http://lady.shaoqun.com/m/a/41187.html
怎么从接吻中分辨出一个男人是否对你动了真情?:http://lady.shaoqun.com/a/424220.html
女人一旦有了婚外情,就会有以下表现。希望男人能尽早防范:http://lady.shaoqun.com/a/424221.html
接吻后,真正爱你的男人会交出这些"卡片":http://lady.shaoqun.com/a/424222.html
出轨的女人通常都有这些特点。你见过他们吗?:http://lady.shaoqun.com/a/424223.html
没有评论:
发表评论