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

helm介绍

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

核心术语

  • 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.3git

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建立状况github

helm使用

添加chart源

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

参考连接: https://github.com/BurdenBear/kube-charts-mirrorapi

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

参考连接

http://www.javashuo.com/article/p-zkxxbnhn-kc.html
https://jimmysong.io/kubernetes-handbook/practice/helm.htmlbash

相关文章
相关标签/搜索