k8s之安装配置Helm工具

发布时间:2020-05-29 02:56:29 作者:warrent
来源:网络 阅读:1048

一、helm介绍

在Kubernetes中部署容器云的应用也是一项有挑战性的工作,Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具。通过helm能够帮助开发者定义、安装和升级Kubernetes中的容器云应用,同时,也可以通过helm进行容器云应用的分享。在Kubeapps Hub中提供了包括RedisMySQL和Jenkins等常见的应用,通过helm可以使用一条命令就能够将其部署安装在自己的Kubernetes集群中。

1、helm架构

helm的整体架构如下图所示,Helm架构由Helm客户端、Tiller服务器端和Chart仓库所组成;Tiller部署在Kubernetes中,Helm客户端从Chart仓库中获取Chart安装包,并将其安装部署到Kubernetes集群中。

k8s之安装配置Helm工具

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

2、helm的重要概念

在Helm中,有以下三个重要概念需要了解:

在同一个集群中,一个Charts可以使用不同的config重复安装多次,每次安装都会创建一个新的Release。

3、helm组件

在Helm中有两个主要的组件,即Helm客户端和Tiller服务器:

Helm客户端:是一个供终端用户使用的命令行工具。

客户端负责如下的工作:

Tiller服务器: Tiller服务部署在Kubernetes集群中,Helm客户端通过与Tiller服务器进行交互,并最终与Kubernetes API服务器进行交互。

Tiller服务器负责如下的工作:

二、部署helm

1、安装helm客户端

#从github下载helm
[root@master ~]# wget https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz
 #解包,只需要包中的一个命令
[root@master ~]# tar zxf helm-v2.14.3-linux-amd64.tar.gz    
[root@master ~]# mv linux-amd64/helm /usr/local/bin/
[root@master ~]# chmod +x /usr/local/bin/helm 
#设置命令自动补全
[root@master ~]# echo 'source <(helm completion bash)' >> /etc/profile
[root@master ~]# . /etc/profile    #重载环境变量

2、安装Tiller server(需要创建授权用户)

[root@master ~]# vim tiller-rbac.yaml   #创建授权用户
apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
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
[root@master ~]# kubectl apply -f tiller-rbac.yaml    #执行yaml文件
[root@master ~]# helm init --service-account=tiller   #Tiller server的环境初始化
#helm的服务端就是Tiller
[root@master ~]# kubectl get pod -n kube-system |  grep tiller   #查看tiller的pod名称
tiller-deploy-8557598fbc-tvfsj   0/1     ContainerCreating   0          2m16s
[root@master ~]# kubectl edit pod tiller-deploy-8557598fbc-tvfsj -n kube-system
#编辑pod的yaml文件,将其使用的镜像改为国内阿里云的,默认是Google的镜像,下载不下来
#修改spec字段的image指定的镜像,如下:
    image: gcr.io/kubernetes-helm/tiller:v2.14.3
#修改如下:
    image: registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.3
#修改后,保存退出即可,它会去自动下载新镜像(如果没有自动下载,就想办法吧,比如说在tiller容器所在的节点手动下载下来镜像,然后重启该节点的kubelet,或重启该容器)
[root@master ~]# kubectl get pod -n kube-system | grep tiller
#只要保证tiller的pod正常运行即可
tiller-deploy-8557598fbc-m986t   1/1     Running   0          7m54s

3、配置helm仓库

[root@master ~]# helm repo list      #查看其仓库信息
NAME    URL                                             
stable  https://kubernetes-charts.storage.googleapis.com
#如上,默认是Google,在国外,速度特别慢
local   http://127.0.0.1:8879/charts    
#执行下面命令,更改为国内阿里云的仓库
[root@master ~]# helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
[root@master ~]# helm repo list   #再次查看,可以发现更改生效了
NAME    URL                                                   
stable  https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
local   http://127.0.0.1:8879/charts        
[root@master ~]# helm repo update      #更新一下helm仓库
[root@master ~]# helm version     #查看helm版本信息,必须保证可以查看出来client和server,才可正常使用helm
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}

4、测试helm是否可以正常使用

[root@master ~]# helm search mysql      #搜索MySQL
#查看到的是charts包文件,查出来的版本是helm的Charts包的版本
[root@master ~]# helm inspect stable/mysql    #查看其详细信息
[root@master ~]# helm fetch stable/mysql        #下载搜索到的包到本地
[root@master templates]# helm install stable/mysql       #在线安装这个MySQL

如果上述测试命令都可以正常执行,则表示helm配置无误。

———————— 本文至此结束,感谢阅读 ————————

推荐阅读:
  1. 玩K8S不得不会的HELM
  2. k8s实践(九):Helm and Kubeapps UI

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

k8s之helm部署 he

上一篇:软件测试基础知识整理三----白盒测试

下一篇:工业防火墙架构与技术【第二节:硬件架构④】

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》