k8s——安装 Helm 与基本设置

Helm 架构:

Helm有两个重要概念: chart 和 release:

Chart:是创建一个应用的集合,包涵了各种kubernetes的配置模板,参数定义,依赖关系

Release:是chart运行的实例,chart能够多次安装到同一个集群,每次安装都是一个release

Helm 是包管理工具,这里的包就是指的chart。Helm能够:

1.从零创建新chart.
2.与存储chart的仓库交互,拉取、保存和更新chart.
3.在Kubernetes集群中安装和卸载re lase。
4.更新、回滚和测试release。

Helm包含两个组件: Helm 客户端和Tiller服务器。

Helm客户端是终端用户使用的命令行工具,用户可以:

1.在本地开发chart.
2.管理chart仓库。
3.与Tiller服务器交互。
4.在远程Kubernetes集群上安装chart。
5.查看release信息。
6.升级或卸载已有的release。

Tiller服务器运行在Kubernetes集”中,它会处理Helm客户端的请求,与Kubernetes API Server交互。Tiller服务器负责:

1.监听来自Helm客户端的请求。
2.通过chart构建release。
3.在Kubernetes中安装chart,并跟踪release的状态。
4.通过API Server升级或卸载已有的release。

部署 Helm:

[root@k8smaster]# wget   https://get.helm.sh/helm-v2.16.8-linux-amd64.tar.gz
[root@k8smaster]# tar  -zxf    helm-v2.16.8-linux-amd64.tar.gz
[root@k8smaster]# cd   linux-amd64/
[root@k8smaster linux-amd64]# cp   helm     /usr/local/bin/
[root@k8smaster linux-amd64]# helm    version
Client: &version.Version{SemVer:"v2.16.8", GitCommit:"145206680c1d5c28e3fcf30d6f596f0ba84fcb47", GitTreeState:"clean"}
Error: could not find tiller

我们只装了客户端 服务端还没装所以会报错

helm的命令补全:

[root@k8smaster linux-amd64]# source  <(helm completion bash)
[root@k8smaster linux-amd64]# echo "source  <(helm completion bash)" >> ~/.bashrc

安装Tiller服务器:

[root@k8smaster linux-amd64]# helm   init 

下载镜像 gcr.io/kubernetes-helm/tiller:v2.16.8:

[root@k8smaster linux-amd64]# docker   pull  sapcc/tiller:v2.16.8
[root@k8smaster linux-amd64]# docker   tag    sapcc/tiller:v2.16.8   gcr.io/kubernetes-helm/tiller:v2.16.8
[root@k8smaster linux-amd64]# docker   rmi    sapcc/tiller:v2.16.8

查看helm的版本:

[root@k8smaster linux-amd64]# helm    version
Client: &version.Version{SemVer:"v2.16.8", GitCommit:"145206680c1d5c28e3fcf30d6f596f0ba84fcb47", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.16.8", GitCommit:"145206680c1d5c28e3fcf30d6f596f0ba84fcb47", GitTreeState:"clean"}

使用 Helm:

查看当前可安装的 chart:

[root@k8smaster linux-amd64]#  helm search | more

查看仓库:

[root@k8smaster linux-amd64]# helm   repo   list 
NAME  	URL                                             
stable	https://kubernetes-charts.storage.googleapis.com
local 	http://127.0.0.1:8879/charts 

修改为国内源:

移除stable(官方仓库)

[root@k8smaster linux-amd64]# helm   repo   remove   stable
[root@k8smaster linux-amd64]# helm   repo   list 
NAME 	URL                         
local	http://127.0.0.1:8879/charts

添加国内源:

[root@k8smaster linux-amd64]# helm repo add incubator       http://mirror.azure.cn/kubernetes/charts-incubator/	
[root@k8smaster linux-amd64]# helm repo add stable          http://mirror.azure.cn/kubernetes/charts/
[root@k8smaster linux-amd64]# helm    repo   list
NAME     	URL                                                
local    	http://127.0.0.1:8879/charts                       
incubator	http://mirror.azure.cn/kubernetes/charts-incubator/
stable   	http://mirror.azure.cn/kubernetes/charts/          

安装 chart 需要设置 Tiller 服务器权限:

[root@k8smaster linux-amd64]# kubectl create serviceaccount --namespace kube-system tiller
[root@k8smaster linux-amd64]#  kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
[root@k8smaster linux-amd64]#  kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐