[Helm](http://helm.sh/)是一个kubernetes应用的包管理工具,用来管理[charts](https://github.com/kubernetes/charts)——预先配置好的安装包资源,有点类似于Ubuntu的APT和CentOS中的yum。
## 安装依赖
```
yum -y install socat
```
> 所有节点都安装
## 下载所需文件
- 下载helm包
```
wget https://storage.googleapis.com/kubernetes-helm/helm-v2.13.1-linux-amd64.tar.gz
```
如果你没有科学上网可能无法下载,可通过下面的方法下载
```
wget https://source-82722.oss-cn-beijing.aliyuncs.com/helm/helm-v2.13.1-linux-amd64.tar.gz
tar zxf helm-v2.13.1-linux-amd64.tar.gz
mv linux-amd64 /usr/local/bin/helm
```
- 下载tiller镜像
如果你使用了科学上网可忽略该步骤,一位大牛提供了针对国外镜像的下载,有兴趣的可以看下[https://github.com/zhangguanzhang/gcr.io](https://github.com/zhangguanzhang/gcr.io)
```
curl -s https://zhangguanzhang.github.io/bash/pull.sh | bash -s --  gcr.io/kubernetes-helm/tiller:v2.13.1
v2.13.1: Pulling from zhangguanzhang/gcr.io.kubernetes-helm.tiller
5d20c808ce19: Pull complete
43339c468bb6: Pull complete
d6d696e230df: Pull complete
9cf2c942cf64: Pull complete
Digest: sha256:d52b34a9f9aeec1cf74155ca51fcbb5d872a705914565c782be4531790a4ee0e
`
```
## 初始化helm
```
helm init
```
## 验证
tiller运行正常
```
kubectl -n kube-system get pod -l app=helm
NAME                            READY   STATUS    RESTARTS   AGE
tiller-deploy-c48485567-shwp5   1/1     Running   0          50m
```
```
helm version
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
```
## 修改repo
```
 $ helm repo list
NAME  	URL
stable	https://kubernetes-charts.storage.googleapis.com
local 	http://127.0.0.1:8879/charts
$ helm repo remove stable
"stable" has been removed from your repositories
$ helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
"stable" has been added to your repositories
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈ Happy Helming!⎈
$ helm repo list
NAME  	URL
local 	http://127.0.0.1:8879/charts
stable	https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
```
## 创建rabc
```
kubectl create serviceaccount --namespace=kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace=kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
```
## 部署mysql
```
helm install stable/mysql
kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
dull-snail-mysql-5d4b968dff-w57l5   1/1     Running   0          96s
```
                    
        - kubernetes基础
 - 安装kubernetes
 - kubeadm平滑升级群集
 - Taint和Toleration
 - 使用HostAliases向Pod /etc/hosts 文件添加条目
 - ConfigMap
 - 插件
 - 支持外部dns
 - 安装helm
 - HPA
 - 存储
 - 本地存储
 - 网络存储
 - Secret
 - ConfigMap
 - QA
 - k8s使用时需要注意的坑点
 - 容器中的JVM资源该如何被安全的限制
 - 项目实践
 - eureka集群
 - Traefik ingress服务发现与负载均衡
 - etcd数据备份与恢复
 - deployment滚动升级与回滚
 - 监控
 - prometheus operator初体验
 - prometheus-operator监控
 - metrics-server监控kubernetes资源
 - weave scope可视化监控
 
