Helm概念


Helm部署

- 将helm的tar包解压,解压后将其目录下的命令cp到/usr/local/bin/下 方便使用

- 分配权限


- 创建yaml,将内容复制进去,创建name为tiller的ServiceAccount并且多此ServiceAccount赋予管理员权限

- 初始化helm

- 查看tiller pod已经创建

- helm version 查看helm版本信息

Helm定义模板案例
- 创建Chart.yaml 文件 属性有name和version

- 创建templates目录,并且在templates目录下面创建deployment.yaml文件,将deployment配置复制进去

- 在templates目录下同时创建service.yaml文件,并且将内容写入

- 使用命令
helm install .命令即可安装,并且查看到创建了deployment,pod,service

- 使用
heml list即可查看到helm的chart的相关信息

helm status helm名称即可查看这个heml下面相关的所有组件及状态

- 通过变量动态更新helm创建的组件,在目录下创建values.yaml文件,将内容写入

- 修改deployment.yaml文件,将image字段改为变量

- 更新helm
helm upgeade helm名称 .

- 查看使用heml创建的pod已经正常运行

- 或者使用
heml updrade helm名称 --set key=value .设置变量方式也可以更新

- 使用
helm delete helm名称即可删除helm,使用helm list --deleted即可查看到已经被删除的helm

- 使用
helm rollback helm名称 版本号即可回滚已经操作的helm,使用helm查看到helm已经重新被部署

Helm dashboard组件下载
helm repo update将helm镜像仓库更新
helm repo list查看helm绑定的仓库一个是远程的,一个是本地仓库

helm fetch 镜像即可查看到镜像从远程仓库下载下来,使用tar -zxvf tgz包即可将下载的包解压

- 进入目录中即可查看到对应的Chart.yaml,templates目录values.yaml文件

- 创建kubernets-dashboard.yaml文件

helm install . -n dashboard名称 --namespace dashboard命名空间 -f kubernetes-dashboard.yaml创建dashboard

- 将dashboard镜像上传到所有k8s节点

- 修改kubernete-dashboard的svc改为Nodeport类型



- 查看secret里面的token信息


- 将token粘贴到浏览器的令牌中

- 即可查看helm的dashboard

部署prometheus

- git clone下载prometheus项目,进入manifests目录,可以看到有很多yaml文件


- 修改grafana-service.yaml 文件,将service改为NodePort类型,指定宿主机端口为30100


- 修改prometheus-service.yaml文件,也使用NodePort宿主机木事nodePort为30200


- 修改alertmanager-service.yaml文件,nodePort映射为30300


5. 传上prometheus.tar.gz并且解压,相关插件的tar包都在prometheus目录下

6. 查看load-images.sh 脚本,里面使用的docker load -i docker镜像tar名字生产镜像到本地docker仓库

7. 将目录和脚本移到脚本对应的/root目录下,执行脚本生成镜像,并且将所有镜像加载到k8s集群中的其他节点中

8. kubectl apply -f ../manifests 加载manifests目录下所有yaml

9. kubectl get pod -n monitoring 查看所有监控创建的pod

10. kubectl top node和kubectl top pod 查看pod和node使用cpu内存情况

11. kubectl get svc -A 查看所有namespace下面的svc

12. 访问prometheus管理页面,使用前面svc设置的30200端口,使用prometheus语法查询


13. 访问前面设置的30100端口即可查看grafana页面并且进行配置,并且可以看到相关node或者其他k8s集群中相关信息的收集显示信息


部署Hpa和使用案例
1.上传hpa的tar包,并且上传加载到所有k8s的其他node上面

2. kube run 一个镜像

3. kubectl top pod pod名称查看pod使用资源

4. kubectl autoscale deployment deployment名称 --cpu-percent=50 --min=1 --max=10命令指定自动扩缩容cpu使用到50%就创建新的pod最少1个,最多10个,kubectl get hpa查看hpa创建情况,过一段时间kubectl get hpa即可查看到检测到pod使用cpu情况


5.新建pod,进入pod中,死循环执行命令请求php-apache.default.svc.cluster.local,通过请求svc压测请求到刚刚创建的pod上,使之前创建的podcpu使用率上升

5. kubectl get hpa -w 监控查询hpa情况pod使用到了419%

6. 查看hpa deployment创建的pod的cpu压力情况,并且查看pod自动创建了


1081



被折叠的 条评论
为什么被折叠?



