组成部分:
Helm客户端
Charts:Helm程序包
Repository:Charts仓库,集中存储和分发Chart
1、安装Helm客户端
Helm安装指导:https://helm.sh/docs/using_helm/#quickstart-guide
客户端Helm下载地址:https://get.helm.sh/helm-v2.14.2-linux-amd64.tar.gz
$ curl -O https://get.helm.sh/helm-v2.14.2-linux-amd64.tar.gz
$ tar -zxvf helm-v2.14.2-linux-amd64.tar.gz #将可执行的文件移动到相应目录下
$ mv linux-amd64/helm /usr/local/bin
$ helm version Client: &version.Version{SemVer:"v2.14.2", GitCommit:"a8b13cc5ab6a7dbef0a58f5061bcc7c0c61598e7", GitTreeState:"clean"} Error: could not find tiller
2、安装Tiller Server
$ vim tiller-rbac.yaml #创建tiller的资源账户
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
$ kubectl apply -f tiller-rbac.yaml #部署tiller资源账户
$ helm init --service-account tiller --skip-refresh #初始化helm,部署tiller的Pod
[root@master ~]# kubectl get pod -n kube-system -l app=helm #查看状态
NAME READY STATUS RESTARTS AGE
tiller-deploy-767d9b9584-zmk92 1/1 ImagePullBackOff 0 52s
#这里加上--skip-refresh是因为需要加的一个地址在google上,网络无法连接上
安装时其他的一些参数:
–canary-image : 安装canary分支,即项目Master 的分支。
–tiller-image :安装指定版本的镜像,默认同Helm 版本。
–kube-context :安装至指定的Kubernetes 集群。
–tiller-namespace : 安装至指定的名称空间,默认为kube- system。
ImagePullBackOff :这里下载镜像失败了,这个地址的镜像下载不下来,我们自己到node02上去手动下载
Warning Failed 38s (x3 over 112s) kubelet, node02 Error: ErrImagePull
Normal BackOff 10s (x6 over 110s) kubelet, node02 Back-off pulling image "gcr.io/kubernetes-helm/tiller:v2.14.2"
Warning Failed 10s (x6 over 110s) kubelet, node02 Error: ImagePullBackOff
[root@node02 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.2
[root@node02 ~]#
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.2 gcr.io/kubernetes-helm/tiller:v2.14.2
3、在节点验证helm
[root@master ~]# helm version
Client: &version.Version{SemVer:"v2.14.2", GitCommit:"a8b13cc5ab6a7dbef0a58f5061bcc7c0c61598e7", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.2", GitCommit:"a8b13cc5ab6a7dbef0a58f5061bcc7c0c61598e7", GitTreeState:"clean"}
在主节点添加helm仓库
[root@master ~]# helm repo add stable http://mirror.azure.cn/kubernetes/charts
"stable" has been added to your repositories
[root@master ~]# helm repo list
NAME URL
stable http://mirror.azure.cn/kubernetes/charts
local http://127.0.0.1:8879/charts
helm repo remove <REPO_NAME> #移除某个repo仓库
注意由于某些原因需要网络可以访问gcr.io和kubernetes-charts.storage.googleapis.com,如果无法访问可以通过helm init --service-account tiller --tiller-image /tiller:v2.13.1 --skip-refresh使用私有镜像仓库中的tiller镜像
[root@master k8s-log]# helm repo update #更新仓库
[root@master k8s-log]# helm install stable/redis -n redis 安装redis测试
[root@master k8s-log]# helm list
NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
redis 1 Wed Jul 31 12:54:04 2019 DEPLOYED redis-9.0.1 5.0.5 default
其他常用操作:
helm search #列出仓库中所有的软件
helm search redis #搜索特定的软件
helm inspect stable/redis #产看软件的详细信息
helm status redis-test #查看Release的相关状态信息
4、卸载Tiller Server
Tiller 将数据存储于ConfigMap 资源中,因此卸载后重新安装并不会导致数据丢
失,必要时,管理员尽可放心重新安装或升级。卸载Tiller 的方法常用的有两种方式。
[root@master ~]# kubectl get deploy -n kube-system
NAME READY UP-TO-DATE AVAILABLE AGE
coredns 2/2 2 2 10h
kibana 1/1 1 1 10h
kubernetes-dashboard 1/1 1 1 10h
tiller-deploy 1/1 1 1 8m6s
1 ) kubectl delete deployment tiller-deploy --namespace kube-system
2 ) helm reset --force