
k8s实战之理解helm
3.0访问该nginx服务 其中一个node节点ip+31190端口
##kubectl describe pod
创建一个mychart包管理模板 helm create mychart
#删除templates/目录下的文件/将之前nginx的deployment和service yaml文件拷贝过来 rm -rf /templates/* mv /root/deployment.yaml ./ mv /root/service.yaml ./
kubectl delete svc web #删除之前的nginx svc kubectl delete deployment web #删除之前的nginx pod cd /root helm install web mychart/
执行完会自动创建deployment和service #修改更新helm
通过修改helm全局变量模板
helm install web1 mychart/ 创建应用 #通过定义变量成功创建了应用
#查看helm创建的应用
发布日期:2021-05-07 07:25:06
浏览次数:15
分类:精选文章
本文共 2701 字,大约阅读时间需要 9 分钟。
helm V3的特性:
- 架构改变,去掉Tiller,直接helm通过kubeconfig连接apiserver
- release名称可以在不同命令空间重用
- chart支持放到docker镜像仓库
K8S部署一个应用的流程如下
编写 yaml :deployment service ingress
1.0创建 deployment模板
kubectl create deployment nginx --image=nginx --dry-run -o yaml > deployment.yaml
1.1启动nginx pod
kubectl apply -f deployment.yaml
1.2检查pod服务
kubectl get pods
kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort --dry-run -o yaml > service.yaml
2.1.启动service服务
kubectl apply -f service.yaml
2.2检查service端口
kubectl get svc

web-dc77dd8db-7r8k5
有问题查看构建镜像的构建 helm 解决了如下管理应用的问题1. 如何将这些yaml作为一个整体管理?2. 这些yanl文件如何高效复用?3. 不支持应用级别的版本管理
开始实战
wget http://120.78.77.38/file/helm-v3.0.0-linux-amd64.tar.gz#也可以去官网下载 tar -xf helm-v3.0.0-linux-amd64.tar.gz && cd linux-amd64 mv helm /usr/bin/ #将helm二进制文件拷贝到宿主机/bin下
通过helm安装一个k8s-ui
1.通过helm安装软件
helm search repo weave #去仓库中查找weave的程序包
helm install ui stable/weave-scope #安装
kubectl get pods 检查

2.修改配置文件,并访问
ClusterIP改成 NodePort
kubectl edit svc ui-weave-scope
kubectl get svc #可以看到暴露的端口





helm upgrade web mychart
helm list 检测服务

通过修改helm全局变量模板deployment/service
关键信息创建应用
vim values.yaml
replicaCount: 1image: zhangfan5391621/java-demotag: latestlabel: java-demoport: 8080
修改deployment.yaml(关键信息为变量定义信息)
vim deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: { { .Release.Name }}-dpspec: replicas: { { .Values.replicas }} selector: matchLabels: app: { { .Values.label }} template: metadata: labels: app: { { .Values.label }} spec: containers: - image: { { .Values.image }}:{ { .Values.tag }} name: nginx
修改service.yaml(关键信息为变量定义信息)
vim service.yamlapiVersion: v1kind: Servicemetadata: name: { { .Release.Name }}-svcspec: ports: - port: 80 protocol: TCP targetPort: { { .Values.port }} selector: app: { { .Values.label }} type: NodePort
helm install --dry-run web1 mychart/ #检测配置变量是否正确生效



#helm 扩容
helm upgraded web1 --set replicas=3 mychart/ #扩容副本3个
#回滚
helm rollback web1 1 #将web1回滚到第一个版本
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月17日 20时54分19秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【Mycat】Mycat核心开发者带你看尽Mycat三大核心配置文件
2019-03-06
元旦在家撸了两天Seata源码,你们是咋度过的呢?
2019-03-06
高并发场景下如何优化服务器的性能?
2019-03-06
数据结构与算法系列之目录
2019-03-06
【计算机网络】应用层
2019-03-06
【英语】小作文
2019-03-06
【Markdown】公式指导手册
2019-03-06
【Maven】POM基本概念
2019-03-06
【Java思考】Java 中的实参与形参之间的传递到底是值传递还是引用传递呢?
2021-05-09
【设计模式】单例模式
2021-05-09
【SpringCloud】Hystrix熔断器
2021-05-09
【SpringCloud】Gateway新一代网关
2021-05-09
【Linux】2.3 Linux目录结构
2021-05-09
java.util.Optional学习笔记
2021-05-09
详解SpringBoot(2.3)应用制作Docker镜像(官方方案)
2021-05-09
远程触发Jenkins的Pipeline任务的并发问题处理
2021-05-09