Ubuntu18安装Helm2.14.0

Helm简介

此文章取自官网 https://helm.sh/,并加入了自己的理解

Kubernetes的包管理器,类似于CentOS的yum和Ubuntu的apt,每个包称为一个Chart,一个Chart是一个目录,一般情况下会将目录进行打包压缩,形成name-version.tgz格式的单一文件,方便传输和存储

对应用发布者而言,Helm可以打包应用,管理应用依赖关系,管理应用版本并发布到软件仓库。
对使用者而言,不再需要了解Kubernetes的Yaml语法并编写应用部署文件,可以通过Helm下载并在kubernetes上安装需要的应用。

Helm Charts可降低管理复杂性,可定义、安装和升级应用程序,容易在公有云或私有云创建、版本、共享、发布、回滚

词义:

Tiller:Tiller 是 Helm 的服务端,部署在 Kubernetes 集群中。用于接收 Helm 的请求
Chart:Helm 的软件包,采用 TAR 格式。其包含一组k8s的YAML资源文件
Repoistory:Helm 的软件仓库,用来保存Chart的软件包,Helm可管理多个Repoistory
Release:使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release。

先决条件

成功且正确安全地使用Helm需要满足以下先决条件。

  • Kubernetes集群
  • 确定要应用于安装的安全配置(如果有)
  • 安装和配置集群端服务Helm和Tiller。

注意1:作者此处是虚拟机内安装了kubernetes单master节点,若是生产安装请移步官方文档:Helm安全安装
注意2:默认情况下,安装Tiller时,未启用身份验证。要了解有关为Tiller配置强TLS身份验证的更多信息,请参阅 Tiller TLS指南

作者Machine 为Ubuntu 18.04具体信息如下:

root@master:/home/hzz# lsb_release -a

Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:    18.04
Codename:   bionic

docker版本为18.06.3-ce,小版本没有太大差别
Kubernetes版本为1.15.3:

root@master:/home/hzz# kubectl version

Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:13:54Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}

打开可以查看版本,后面拼接系统对应版本就可以下载了,linux直接wget就可以
谷歌镜像地址:https://storage.googleapis.com/kubernetes-helm/
微软镜像地址:https://mirror.azure.cn/kubernetes/helm/
如:

root@master:/home/hzz# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz
--2019-09-01 17:09:32--  https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz
Resolving storage.googleapis.com (storage.googleapis.com)... 172.217.160.80, 2404:6800:4008:802::2010
Connecting to storage.googleapis.com (storage.googleapis.com)|172.217.160.80|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9160761 (8.7M) [application/x-tar]
Saving to: ‘helm-v2.9.1-linux-amd64.tar.gz’

helm-v2.9.1-linux-amd64.tar.gz                100%[==============================================================================================>]   8.74M  9.03MB/s    in 1.0s    

2019-09-01 17:09:34 (9.03 MB/s) - ‘helm-v2.9.1-linux-amd64.tar.gz’ saved [9160761/9160761]

一、安装

注:这里作者安装的是稳定的2.14.0版本

1、解压包,复制helm到/usr/local/bin/ 客户端

我这里用的是root用户,所以直接拷贝到了/usr/bin/目录下

root@master:/home/hzz# tar -zxvf helm-v2.14.0-linux-amd64.tar.gz 
linux-amd64/
linux-amd64/tiller
linux-amd64/README.md
linux-amd64/LICENSE
linux-amd64/helm
root@master:/home/hzz# cp linux-amd64/helm /usr/bin/
root@master:/home/hzz# helm
The Kubernetes package manager

To begin working with Helm, run the 'helm init' command:

    $ helm init

This will install Tiller to your running Kubernetes cluster.
It will also set up any necessary local configuration.

此时运行helm version已经可以看到helm客户端的版本了,但是连接不到服务端

root@master:/home/hzz# helm version
Client: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
Error: could not find a ready tiller pod

2、初始化Helm 服务端

注:此处k8s会去仓库拉镜像,谷歌被墙所以这里需要指定--stable-repo-url参数

helm init \
    --history-max=3 \
    --tiller-image=gcr.azk8s.cn/kubernetes-helm/tiller:v2.14.0 \
    --stable-repo-url=https://mirror.azure.cn/kubernetes/charts/ \
    --service-account=helm-tiller
2.1、创建account并赋权

注意3:1.6之前的Kubernetes版本对基于角色的访问控制(RBAC)的支持有限或不支持。1.6之后的默认开启

我这里k8s集群开启了RBAC认证,所以需要多处理一步,没开启RBAC的可忽略

# 创建账号、绑定角色
kubectl create serviceaccount --namespace kube-system helm-tiller
kubectl create clusterrolebinding helm-tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:helm-tiller

# 给tiller设置角色
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"helm-tiller"}}}}' deployment.extensions "tiller-deploy" patched

# 查看授权
kubectl get deploy --namespace kube-system   tiller-deploy  --output yaml|grep  serviceAccount
      serviceAccount: helm-tiller
      serviceAccountName: helm-tiller

如果这里的权限问题没有处理好,安装完成后会发现命令没有权限,

root@master:/home/hzz# helm ls
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list resource "configmaps" in API group "" in the namespace "kube-system"

可以通过helm reset -f或者helm reset --force强制删除tiller容器后,使用正确的参数重新进行helm init操作

3、验证安装

出现helm client 和server之后helm便安装完成

root@master:/home/hzz# kubectl -n kube-system get pods|grep tiller-deploy
tiller-deploy-7d49974877-w78nz          1/1     Running   0          4h46m

root@master:/home/hzz# helm version
Client: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.0", GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}

可执行helm list查看K8S中已安装的charts 。

二、使用

1、更换仓库

# 先移除原先的仓库
root@master:/home/hzz# helm repo remove stable
"stable" has been removed from your repositories

# 添加新的仓库地址
root@master:/home/hzz# helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
"stable" has been added to your repositories

# 更新仓库
root@master:/home/hzz# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "stable" chart repository
Update Complete.

2、查看可获取的Chart

root@master:/home/hzz# helm search
NAME                            CHART VERSION   APP VERSION     DESCRIPTION                     
stable/acs-engine-autoscaler    2.1.3           2.1.1           Scales worker nodes within agent pools                      
stable/aerospike                0.1.7           v3.14.1.2       A Helm chart for Aerospike in Kubernetes                    
stable/anchore-engine           0.1.3           0.1.6           Anchore container analysis and policy evaluation engine s...
stable/artifactory              7.0.3           5.8.4           Universal Repository Manager supporting all major packagi...
stable/artifactory-ha           0.1.0           5.8.4           Universal Repository Manager supporting all major packagi...
stable/aws-cluster-autoscaler   0.3.2                           Scales worker nodes within autoscaling groups.              
stable/bitcoind                 0.1.0           0.15.1          Bitcoin is an innovative payment network and a new kind o...
..................

这里有一篇思路更清晰的文章
参考:https://blog.csdn.net/bbwangj/article/details/81087911

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容