查看原文
其他

Kubernetes 1.23 GA:稳定功能:双栈IPv4/IPv6、CronJobs和临时卷

文章来源于K8S中文社区

在云原生开发界,一眨眼工夫,你就会错过某些东西。发展速度就是这么快,快到仿佛昨天(实际上是8月22日)刚发布了Kubernetes 1.22,今天就迎来了Kubernetes 1.23 GA(正式版)

Kubernetes 1.23 Logo


这个新版本功能丰富,增强之处超过45项(其中11项已升级到稳定版,15项已改进,19项是全新的)。虽然这些新功能可能不会全部跻身Top 10,但一些功能对使用Kubernetes的人而言可能大有帮助。然而,真正的焦点在于1.23中已升级到正式版(即稳定版)的功能,因此它们已准备好用于生产环境。


不妨先看看已升级到稳定版的功能(因为这些是你想立马开始使用的功能),然后介绍所有其他较为稳健的改进。升级到稳定版首先你会发现四项非常令人兴奋的功能:IPv4/IPv6双栈支持CronJobs(计划任务)临时卷HPA API。不妨逐一介绍。




IPv4/IPv6双栈支持


有了IPv6/IPv6双栈支持,Kubernetes现在可以在集群中直接支持双栈模式。这意味着你可以将IPv4地址和IPv6地址分配给任何特定的pod或服务。这是使用.spec.ipFamilyPolicy字段来配置的,该字段可设置为以下值之一:


  • SingleStack

  • PreferDualStack

  • RequireDualStack


要使用双栈支持,你需要将.spec.ipFamilyPolicy设置为PreferDualStack或RequireDualStack。该功能在Kubernetes中默认启用,还包括通过IPv4和IPv6地址进行的pod集群外出站路由。




CronJobs


有了CronJobs功能,就可以在Kubernetes集群中运行周期性任务。Kubernetes CronJobs与Linux cron系统非常相似。CronJobs在Kubernetes 1.4问世后就已存在了,自从它在版本1.5中获得CRI支持以来就在生产环境被广泛接受。

CronJob在YAML文件中定义如下:

kind: CronJob

每10分钟输出一次“Hello Newstack”的示例CronJob清单文件可能如下所示:

apiVersion: batch/v1kind: CronJobmetadata:name: hellospec:schedule: “*/10 * * * *”jobTemplate:spec:template:spec:containers:– name: helloimage: busyboximagePullPolicy: IfNotPresentcommand:– /bin/sh– -c– date; echo Hello NewstackrestartPolicy: OnFailure

对于那些不知道cron语法的人来说,它就像这样:MINUTE(分钟) HOUR(小时) DAY OF MONTH(月日) MONTH(月) DAY OF WEEK(星期几)如果你不确定如何创建 cronjob,强烈建议从Crontab Guru(https://crontab.guru/)开始入手,该编辑器让你可以将值插入到cronjob,看看它们到底生成了什么。



临时卷


自Kubernetes 1.19以来,临时卷就已存在,让你可以为特定的pod创建卷,pod终止后删除临时卷。换句话说,这些是临时卷。


Kubernetes支持四种类型的临时卷,它们是:


  • emptyDir—Pod启动时可用的空卷,使用来自kubelet基本目录或内存中的存储空间。

  • configMap、downdownAPI、secret—将不同类别的Kubernetes数据注入到指定的Pod中。

  • CSI临时卷—类似其他类型的卷,但由特殊的CSI驱动程序提供。

  • 通用临时卷—由所有存储驱动程序提供(支持持久存储)


使用临时存储的示例清单文件可能如下所示:

kind: PodapiVersion: v1metadata:name: sample-storage-appspec:containers:– name: storage-frontendimage: busyboxvolumeMounts:– mountPath: “/storage”name: sample-storage-app-volcommand: [ “sleep”, “1000000” ]volumes:– name: sample-storage-app-volcsi:driver: inline.storage.kubernetes.iovolumeAttributes:




HPA API v2


Horizontal Pod Autoscaleer API对Kubernetes来说并不陌生。实际上,它在2016年就首次引入了。该功能负责自动扩展复制控制器部署副本集状态集中的Pod数量。基于以下类型的指标来加以扩展:


  • 资源使用情况—当Pod超过内存或CPU使用情况的阈值时。这可以表示为原始值或百分比。

  • 自定义指标—这基于Kubernetes报告的指标(即每秒客户端请求率)。

  • 外部指标—这基于外部应用程序或服务提供的指标。


Autosaclers使用控制循环来运行,周期则由–horizontal-pod-autoscaler-sync-period标志来控制。默认值是15秒。在控制循环期间,控制器根据HorizontalPodAutoscaler定义中配置的指标来查询Pod的资源使用情况。




弃用的功能和升级为Beta版的功能


Kubernetes 1.23也有三项值得注意的弃用功能。这包括:


  • HPA v2beta2 API

  • FlexVolume

  • 针对klog的标志


两项功能也升级为Beta版,包括:


  • PodSecurity—取代了PodSecurityPolicy准入控制器。

  • 结构化日志—来自kubelet和kube-scheduler的大多数日志消息已经过转换,建议用户尝试JSON输出。


处于Alpha版的新功能


Kubernetes 1.23还包括几项现处于alpha版的新功能。这包括:


  • CRD的表达式语言验证—如果启用CustomResourceValidationExpressions,自定义资源将由使用通用表达式语言(CEL)的规则进行验证。

  • 服务器端字段验证—如果启用ServerSideFieldValidation,检测到请求中未知或重复的字段时,用户将收到来自服务器的警告。

  • OpenAPI v3—如果启用OpenAPIV,用户将能够为所有Kubernetes类型请求OpenAPI v3规范。


想了解新版本的更多信息,请查阅完整的发布说明:https://www.kubernetes.dev/resources/release/。


作者:Jack Wallen  编译:沈建苗

来源:https://www.kubernetes.org.cn/9736.html


加入云原生交流群:

云原生技术社区有20+技术交流群,想进群跟技术大牛们聊天,或加入志愿者队伍,请加小助手微信:

alaudacloudnative(备注:云原生)


: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存