首页 > 其他分享 >Chart兼容CronJob两个ApiVersion实践

Chart兼容CronJob两个ApiVersion实践

时间:2023-11-21 15:06:18浏览次数:26  
标签:CronJob Kubernetes Chart ApiVersion batch v1 版本 1.21

实际环境

在工作中,有多个k8s集群需要同时管理,随着业务的扩充,先运行的K8s的版本和新运行的K8s版本就有出现差异,有些资源清单的apiVersion、格式、写法就会出现不兼容的情况。

实际情况是在部署CronJob的资源时,部署失败。差异:

  • A集群版本为 v1.17.4
  • B集群版本为 v1.26.1

在 Kubernetes 中,CronJob 的 API 版本变更是从 Kubernetes 1.21 版本开始引入的。在 Kubernetes 1.21 版本之前,batch/v1beta1 是 CronJob 的稳定版本。从 Kubernetes 1.21 版本开始,CronJob 被升级为稳定版本,使用的是 batch/v1 API 版本。

因此,如果 Kubernetes 版本是 1.21 或更高,应该使用 batch/v1 作为 CronJob 的 API 版本。如果 Kubernetes 版本低于 1.21,则应该使用 batch/v1beta1


修改资源清单文件

通过对比batch/v1beta1 和 batch/v1 API 版本的差异,发现没有什么改变。

只需要在 apiVersion 前加一个集群版本判断即可。

# cronjob.yaml

{{- if semverCompare ">=1.21-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: batch/v1
{{- else -}}
apiVersion: batch/v1beta1
{{- end }}
kind: CronJob
metadata:
...

以上意思为:判断k8s的集群版本,如果大于等于1.21版本,则使用batch/v1 API 版本,否则使用batch/v1beta1API 版本。


通过 helm 部署可用。


标签:CronJob,Kubernetes,Chart,ApiVersion,batch,v1,版本,1.21
From: https://blog.51cto.com/u_11060853/8501392

相关文章

  • echarts坐标轴线、坐标轴刻度线、网格线控制
    xAxis:{name:'',axisTick:{show:true//坐标轴刻度线},axisLine:{//轴线show:false},splitLine:{//网格线show:true},axisLabel:{//坐标轴样式textStyle:{color:'#636363'}}}参考文章echarts坐......
  • HighChart坐标轴标签旋转及刻度线调整+格式化小数点
    标签及字符串格式化|Highcharts使用教程需求:坐标轴标签旋转需要将X轴刻度标签旋转X度,突出刻度线长度、宽度、颜色,使其整体上更美观,需要保留小数点。分析: 坐标轴标签旋转需要用rotation来控制,刻度线需分别用tickWidth(刻度宽度)tickLength(刻度长度)tickColor(刻度颜色)来控制。而格......
  • 开发中遇到的echarts常见问题
    柱状图legend不出现①没有配置legend中的data属性②data的name属性与series的name属性不同设置legend阴影       itemStyle:{               opacity:1,               shadowColor:"rgba(255,255,255,1)",     ......
  • /usr/bin/perl: symbol lookup error: Devel/Size/Size.so: undefined symbol: Perl_
     001、perl报错如下:/usr/bin/perl:symbollookuperror: Devel/Size/Size.so:undefinedsymbol:Perl_xs_apiversion_bootcheck 002、 ......
  • echarts修改图例legend样式:正方形、矩形、圆形、圆角
    ECharts提供的标记类型有'circle','rect','roundRect','triangle','diamond','pin','arrow','none'legend:{icon:'circle'}参考文章echarts图例修改legend中icon的形状及大小......
  • echarts自适应一系列问题
    1.适配问题//需要刷新才能适配window.onresize('resize',()=>{    myChart.resize()   })//不需要刷新,动态适配宽度 window.addEventListener('resize',()=>{    myChart.resize()   })2.横纵坐标超长省略显示  triggerEve......
  • LiveCharts控件基本使用
    AngularGanuge控件 1usingSystem.Windows;2usingSystem.Windows.Forms;3usingSystem.Windows.Media;4usingLiveCharts.Wpf;5usingBrushes=System.Windows.Media.Brushes;67namespaceWinforms.Gauge.AngularGauge8{9publicpartial......
  • # yyds干货盘点 # echarts图表,在notebook里为什么显示不出呢?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【吴超建】问了一个echarts图像可视化的问题,一起来看看吧。echarts图表,在notebook里为什么显示不出呢?二、实现过程这里【巭孬......
  • echarts图表,在notebook里为什么显示不出呢?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【吴超建】问了一个echarts图像可视化的问题,一起来看看吧。echarts图表,在notebook里为什么显示不出呢?二、实现过程这里【巭孬......
  • 软件测试|Python数据可视化神器——pyecharts教程(八)
    Pyecharts绘制热力图当涉及可视化数据时,热力图是一种强大的工具,它可以帮助我们直观地了解数据集中的模式和趋势。在本文中,我们将学习如何使用Python中的Pyecharts库创建热力图,以便将数据转化为可视化的形式。什么是热力图?热力图是一种用于显示数据密度的二维图表,其中颜色的......