十六. k8s--helm安装与使用

helm介绍

helm把一系列复杂的有状态和无状态服务的部署封装起来(实际上就是对yaml文件的组织),然后你可以暴露出一些自定义参数信息供用户选择,这样部署就会变得简单很多.

核心术语

  • Helm 是一个命令行下的客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。
  • Tiller 是 Helm 的服务端,部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的请求,并根据 Chart 生成 Kubernetes 的部署文件( Helm 称为 Release ),然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。
  • Chart Helm 的软件包,采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件
  • Repoistory Helm 的软件仓库,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。
  • Release 使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release

helm安装

helm安装

wget https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz
tar xf helm-v2.14.3-linux-amd64.tar.gz
cd linux-amd64 #进入解压目录会看到两个可执行文件helm和tiller, 若采用容器化部署到kubernetes中,则可以不用管tiller,只需将helm复制到/usr/bin目录即可
cp helm /usr/bin/
echo "source <(helm completion bash)" >> /root/.bashrc # 命令自动补全

Tiller安装

创建tiller相关的rbac

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
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.3 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

因为墙, 所以指定国内tiller镜像, tiller标签和helm保持一致, 这里是v2.14.3

kubectl get pods -n kube-system -l app=helm
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

初始化后通过命令查看tiller pod创建情况

helm使用

添加chart源

由于阿里的chart源可能更新不及时, 会比较老, 所以建议替换为默认源或者微软的azure源

参考链接: https://github.com/BurdenBear/kube-charts-mirror

helm repo add stable  http://mirror.azure.cn/kubernetes/charts/
helm repo add incubator  http://mirror.azure.cn/kubernetes/charts-incubator/

基础命令

命令 作用
搜索chart helm search CHARTNAME
查看chart详细信息 helm inspect CHARTNAME
安装 helm install --name mem1 stable/memcached [--dry-run]
获取状态信息 helm status mem1
列出release helm list [-a]
删除release helm delete [--purge] mem1
下载chart helm fetch stable/redis
创建chart helm create CHARTNAME
语法检测 helm lint CHARTNAME
打包 helm package CHARTNAME

参考链接

https://www.cnblogs.com/tylerzhou/p/11100649.html
https://jimmysong.io/kubernetes-handbook/practice/helm.html

posted @ 2019-10-11 17:45  培天王  阅读(2193)  评论(0编辑  收藏  举报