目录结构
helm简介
Helm是一种简化kubernetes应用程序安装和管理的工具。可以把它想象成apt/yum/homebrew。
Helm有两部分:client(helm)和server(tiller),Tiller在您的Kubernetes集群内部运行,并管理chart的发布(安装)。Helm可在您的笔记本电脑,或在任何位置运行。chart是包含至少两件事的Helm包:包的描述(Chart.yaml)一个或多个模板,包含Kubernetes清单文件chart可以存储在磁盘上,也可以从远程chart存储库(如Debian或RedHat包)中获取.核心术语
Chart:一个helm程序包;Repository:Charts仓库,https/http服务器;Release:特定的Chart部署于目标集群上的一个实例;程序架构
helm:客户端,管理本地的Chart仓库,管理Chart, 与Tiller服务器交互,发送Chart,实例安装、查询、卸载等 操作;Tiller:服务端,接收helm发来的Charts与Config,合并生成relase;helm部署
helm可以部署在任何机器上,不一定要在kubernetes的服务器上,但是需要安装kubectl,也就是说用户家目录下要有kube的配置文件,因为helm需要和apiServer通信#安装kubectl yum list kubeadm --showduplicates|sort -r yum -y install kubeadm-1.16.3-0.x86_64 kubectl-1.16.3-0.x86_64 kubelet-1.16.3-0.x86_64 systemctl enable kubelet && systemctl start kubelet #拷贝admin.conf mkdir -p $HOME/.kube scp root@10.180.1.21:/etc/kubernetes/admin.conf /etc/kubernetes/admin.conf scp root@10.180.1.21:/etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile source /etc/profile
2.下载安装heml客户端
wget https://get.helm.sh/helm-v2.16.1-linux-amd64.tar.gz mkdir -p /usr/local/helm/ mv helm-v2.16.1-linux-amd64.tar.gz /usr/local/helm/ cd /usr/local/helm/ tar -zxvf helm-v2.16.1-linux-amd64.tar.gz rm -rf helm-v2.16.1-linux-amd64.tar.gz cp -s /usr/local/helm/linux-amd64/helm /usr/local/bin/
3 .配置helm的Service account及其相关角色
## 配置helm的Service account及其相关角色 ## #编辑文件helm-rbac.yml vi helm-rbac.yml #输入以下内容 --- apiVersion: v1 kind: ServiceAccount metadata: labels: k8s-app: helm name: helm-admin namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: helm-admin labels: k8s-app: helm roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: helm-admin namespace: kube-system #创建 kubectl apply -f helm-rbac.yml #检查是否创建成功 [root@216 ~]# kubectl get sa --all-namespaces | grep helm kube-system helm-admin 1 80m
4.创建tiller
#初始化时,同时设置repo为阿里镜像 [root@216 helm]# helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts $HELM_HOME has been configured at /root/.helm. Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster. Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy. To prevent this, run `helm init` with the --tiller-tls-verify flag. For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation
5 . 验证
#检查tiller是否在k8s中启动成功 [root@216 ~]# kubectl get pods -n kube-system | grep tiller tiller-deploy-6c74c8774-n7v84 1/1 Running 0 29m #检查helm的版本 [root@216 ~]# helm version Client: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}