首页 > 其他分享 >helm学习

helm学习

时间:2024-10-04 12:02:21浏览次数:13  
标签:nginx 学习 yaml Values helm release pod

引用案例:

学习连接:https://www.bilibili.com/video/BV12D4y1Y7Z7/?p=7&vd_source=e03131cedc959fdee0d1ea092e73fb24 (时间:06:16)
helm新建一个chart,然后删除templates里面的文件,重新编写一个,最后完成发布,更新,回滚动作

 

 

1,创建一个模版的chart包,删除原来的内容,自定义成我们的需要的内容,后面我们自定义部署的yanm文件
heml create nginx-chart
cd nginx-chart
>values.yaml #清空所有默认定义的变量,后面我们根据需要自定义
rm -rf templates/* #删除原来所有默认的部署yaml文件,后面我们根据需要自定义

 

2,自定义的模版yaml文件

cat templates/nginx-deploy-service.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Values.deployment_name }}
spec:
  replicas: {{ .Values.replicas }}
  selector:
    matchLabels:
      app: {{ .Values.pod_label }}
  template:
    metadata:
      labels:
        app: {{ .Values.pod_label }}
    spec:
      containers:
        - name: {{ .Values.container_name }}
          image: "{{ .Values.image }}:{{.Values.imageTag }}"
          ports:
            - containerPort: {{ .Values.containerport }}
---
apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.service_name }}
  namespace: {{ .Values.namespace }}
spec:
  type: NodePort
  ports:
    - port: {{ .Values.port }}
      targetPort: {{ .Values.targetport}}
      nodePort: {{ .Values.nodeport }}
  selector:
    app: {{ .Values.pod_label }}
deployment.yaml

 

cat values.yaml
deployment_name: nginx-deployment
replicas: 2
pod_label: nginx-pod-label
image: nginx
imageTag: 1.17
container_name: nginx-container
service_name: nginx-service
namespace: default
port: 80
targetport: 80
containerport: 80
nodeport: 30001
values.yaml

 

3 ##安装(新建)releae实例:

[root@master test]# helm install nginx-release ./nginx-chart/
NAME: nginx-release
LAST DEPLOYED: Fri Oct  4 09:09:10 2024
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None


查看实例启动情况
helm list
kubectl get pods
查看svc
kubectl get pod,svc,ep
ep是service后端匹配的pod的地址


浏览器访问通过nodeport映射出来的服务
比如我的地址是:
http://192.168.17.102:30001/


查看并确认pod运行的版本
kubectl get pod nginx-deployment-5c8469b67f-cq959 -o yaml|grep image
输出结果包含:
image: nginx:1.17


模拟修改代码,对版本进行升级
修改values.yml文件中的版本号
imageTag: 1.20.0

查看helm有哪些release
helm release

  

4. ## 升级release实例

方法一:
helm upgrade release实例名  chart名  --set imageTag=1.19  #通过传递命令的方式进行升级,指定release名和chart名进行相关set设置的升级
方法二:
helm upgrade release实例名  chart名  -f /../mychart/values.yaml  #通过指定yaml文件的方式进行升级,指定release名和chart名,相关的values.yaml文件进行升级
更新release实例
helm upgrade nginx-release nginx-chart -f nginx-chart/values.yaml
Release "nginx-release" has been upgraded. Happy Helming!
NAME: nginx-release
LAST DEPLOYED: Fri Oct  4 10:37:11 2024
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None

更新以后显示版本变化的有两个地方,上面的REVISION会变化,还有就是pod适用的镜像的版本也会变化
查看重新生成的pod名称
kubectl get pods
查看pod的image
kubectl get pod nginx-deployment-7dd78bf775-tz5mb -o yaml|grep image
输出结果包含:
image: nginx:1.20.0

  

5. ##回滚release实例版本(将nginx的版本1.20.0回滚为1.17)

helm rollback release实例名          #指定release实例名,回滚到上一个版本
helm rollback release实例名  版本号   #注意版本号是release的版本号,不是镜像版本号

回滚后查看
helm list
release的版本是一个阿拉伯数字,不管是升级还是回滚,一直都是递增的
查看重新生成的pod名称
kubectl get pods
查看pod的image
kubectl get pod nginx-deployment-7dd78bf775-tz5mb -o yaml|grep image
输出的结果是版本回滚到了1.17
image: nginx:1.17

  

6. ##获取release的实力历史

helm history release实例名
示例:
helm history nginx-release

  

 

  

 

标签:nginx,学习,yaml,Values,helm,release,pod
From: https://www.cnblogs.com/zhuhaofeng/p/18446476

相关文章

  • 多智能体协作强化学习中的知识共享
    本文提出了一种名为谨慎乐观知识共享(CONS)的新方法,用于解决合作多智能体强化学习(MARL)中的知识共享问题。针对传统的行动建议方法可能导致团队探索受阻的情况,即经验丰富的智能体会分享其知识而较不成熟的智能体则遵循这些建议,导致可能依赖于次优或不良建议的问题,本文的方法允许智能体......
  • js学习1
    js实现简单交互js的外联引入必须在body里&&你需要交互的元素下方e.g.<body><divid="box">演示1</div><scriptsrc="./演示1.js"></script></body>实现点击交互样例1<!DOCTYPEhtml><htmllang="ch">&......
  • TS学习笔记(二)
    为了解决any类型的污染问题,引入了unkown类型、它与any类型的相似之处在于,所有类型的值都可以分配给unkown类型。letx:unknown;x=true;//正确x=42;//正确x='HelloWorld'//正确它们的不同之处在于:1、unknown类型的变量,不能直接赋值给其它类型的变量(除了any类......
  • 讯飞星火编排创建智能体学习(四):网页读取
    目录引言网页读取节点如何生成网址测试引言在讯飞星火编排创建智能体学习(三):搜索工具-CSDN博客中,我介绍了如何用搜索工具从网上搜索车次信息。不过,在测试中我们也发现讯飞星火的这个工具并不是特别完善,它在整理搜索结果时可能会出现错误。所以,如果你确定某个网站可以获......
  • 强化学习:塑造奖励(Shaping reward)
    “塑造奖励”(Shapingreward)是一个主要用于行为心理学和强化学习领域的技术。它通过对目标行为或结果的逐步接近进行强化,逐渐通过奖励越来越接近目标的行为来“塑造”最终的行为。以下是塑造奖励常见的两个应用场景:行为心理学中:塑造用于训练动物或人类执行复杂行为。训练者不......
  • JavaWeb基础-学习笔记02
    02MySQL数据库、SQL、数据库设计、事务、JDBC1.MySQL数据库1.1MySQL的安装:包含两种安装方式,解压包安装、压缩包安装。通过解压包安装:下载压缩包后进行解压、添加my.ini初始化配置文件、添加环境变量;添加mysqld服务、启动该服务。期间遇到的一些问题和解决方案:找......
  • 从2023济南K学习滑动窗口中位数问题
    板子对顶堆template<classT>structDualHeap{Heap<T,std::greater<T>>small;//小根堆,里面存放大的值Heap<T,std::less<T>>big;//大根堆,里面存放前k小的值//中位数就是big.top()DualHeap(){}voidupdate(){if(b......
  • Creating, Reading and Writing(pandas学习一)
    开始入门要使用pandas库,通常从以下这行代码开始。importpandasaspd创建数据pandas中有两个核心对象:DataFrame(数据框)和Series(系列)。DataFrameDataFrame是一个表格。它包含一个单独条目的数组,每个条目都有特定的值。每个条目对应一行(或一条记录)和一列。pd.DataFrame......
  • Spring框架学习之ICO、AOP详解及实战案例
    Spring框架学习一、IOCIOC是SpringFramework核心,简单理解就是bean容器,也就是说代码中不需要new()来创建实例了,IOC启动的时候就帮你装载好了,你只需要@Autowired引入即可使用。SpringBean生命周期1.1SpringBean生命周期1.2SpringIOC扩展点二、AOPAOP(AspectOrie......
  • rustling学习随笔
    序言rustling是一个关于rust的练习题的项目.可以帮助大家通过完成一个项目的方式练习rust的语法,我认为对于补充我rust现学现卖过程中的情况很有帮助.下边是GPT对它的介绍:Rustling是专为那些想要学习Rust编程语言的人设计的一个交互式练习集合。无论你是编程新手还是有经......