helm安装_K8S 容器云应用安装部署工具helm

1. Helm 介绍

在k8s 中部署容器云的应用也是一项有挑战性的工作,helm就是为了简化在k8s安装部署容器云应用的一个客户端工具,其实就是为了帮组开发者定义安装和升级k8s里面的容器应用,同时也能够讲应用打包成chart进行分享,kubeapps Hub 中提供了包括Redis mysql Jenkins等常见的应用,通过helm 可以使用一条命令能将其部署在k8s中

就下面的helm 的整体架构中:Helm 架构是由Helm客户端 Tiller服务端和chart仓库所组成,Tiller部署在k8s 中,helm客户端从chart仓库中获取chart安装包,将其安装部署在k8s集群中

131d5d6b5d05dd499e6aec3f3e3dcc82.png

Helm 是管理K8S 包的工具,helm 能够提供下面的能力:

1. 创建新的charts

2. 将charts打包成tgz文件

3. 与chart仓库交互

4. 安装和卸载k8s的应用

5. 管理使用Helm安装的charts的生命周期

在helm 中,有三个需要了解的重要概念:

1. chart:是创建k8s 应用实例的信息集合

2. Config:创建发布对象的chart的配置信息

3. Release:chart的运行实例,包含待定的config

1.1 Helm 组件

Helm 客户端和Tiller服务器

Helm 客户端:这是一个提供终端用户使用的命令行工具,客户端负责下面的工作:

1. 本地chart开发

2. 管理仓库

3. 与Tiller服务器交互

3.1 发送需求被安装的charts

3.2 请求关于版本的信息

3.3 请求跟新或者卸载已经安装的发布版本

Tiller服务器:Tiller服务器部署在K8S集群中,helm客户端通过与Tiller服务器进行交互,最终于k8s apiserver 进行交互。Tiller服务器负责如下的工作:

1. 监听来自helm客户端的请求

2. 组合chart和配置构建一个发布

3. 在k8s中安装,并跟踪后续的发布

4. 通过与k8s 交互,更新或者chart

客户端负责管理chart,服务器发展管理发布

1.2 Helm 技术实现

Helm 客户端是使用go语言编写的,它是通过grpc协议与Tiller服务器进行交互

Tiller服务器也是用的go 写的,它使用k8s 客户端类库api与K8s进行通讯

Tiller 服务器是通过k8s的configmap存储信息,因此本身并没有存储数据库

2. Helm 安装部署

Helm z安装的准备工作:

1.已有k8s集群

2.https://github.com/kubernetes/helm/releases 合适的版本

wget https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz

tar zxvf helm-v2.14.3-linux-amd64.tar.gz

mv helm /usr/local/bin/

注:

Helm init 命令通过/root/.kube/config配置文件确定K8S集群中安装Tiller服务器

此命令会将Tiller服务器安装K8S的kube-system的命名空间

2.2.2 使用service account安装

1.创建一个名为tiller 的service Account

kubectl create serviceaccount tiller --namespace kube-system

授权名为tiller的service account 集群管理员角色cluster-admin:

将tiller绑定至集群管理员角色的yaml 文件如下所示:

apiVersion: rbac.authorization.k8s.io/v1beta1

kind: ClusterRoleBinding

metadata:

name: tiller

roleRef:

apiGroup: rbac.authorization.k8s.io

kind: ClusterRole

name: cluster-admin

subjects:

- kind: ServiceAccount

name: tiller

namespace: kube-system

通过执行kubectl create -f将授予tiller集群管理员角色:

kubectl create -f rbac-config.yaml

helm init --service-account tiller --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.3

注:如果不指定镜像 默认就会去墙外拉镜像

如果出现

Faild to list:configmaps is forbidden:user “system:serviceaccount:kube-system:default”cannot list configmaps in the namespace “kube-system”

就是因为没有授权

查看已经安装好的helm+tiller

helm version

068de724ea02c850e1d7b21a89e0c392.png

跟换源:

helm repo list

b586674eeae9df5e8fdd04dd43a03360.png

helm repo remove stable #移除stable

11823c02666de75a47262dfcd79382cb.png

helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

5b6d71c485a24e76940890923da74bc2.png
8315c31e0f2d0cb973129bdd83e94564.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值