在云原生開(kāi)發(fā)界尼啡,發(fā)展速度就是這么快,前段時(shí)間剛發(fā)布了Kubernetes 1.22询微,現(xiàn)在又迎來(lái)了Kubernetes 1.23 GA(正式版)發(fā)布崖瞭。這是 2021 年發(fā)布的第三個(gè)版本,也是今年最后一個(gè)正式發(fā)布的版本撑毛。
Kubernetes 1.23?Logo
這個(gè)新版本功能豐富书聚,增強(qiáng)之處超過(guò)45項(xiàng)(其中11項(xiàng)已升級(jí)到穩(wěn)定版,15項(xiàng)已改進(jìn)藻雌,19項(xiàng)是全新的)雌续。雖然這些新功能可能不會(huì)全部躋身Top 10,但一些功能對(duì)使用Kubernetes的人而言可能大有幫助胯杭。然而驯杜,真正的焦點(diǎn)在于1.23中已升級(jí)到正式版(即穩(wěn)定版)的功能,因此它們已準(zhǔn)備好用于生產(chǎn)環(huán)境做个。
不妨先看看已升級(jí)到穩(wěn)定版的功能(因?yàn)檫@些是你想立馬開(kāi)始使用的功能)鸽心,然后介紹所有其他較為穩(wěn)健的改進(jìn)。升級(jí)到穩(wěn)定版首先你會(huì)發(fā)現(xiàn)四項(xiàng)非常令人興奮的功能:IPv4/IPv6雙棧支持居暖、CronJobs(計(jì)劃任務(wù))顽频、臨時(shí)卷和HPA API。不妨逐一介紹太闺。
Docker中文社區(qū)
Docker中文社區(qū)旨在為大家提供 Docker糯景、Kubernetes 相關(guān)工具及前沿資訊信息,方便大家了解學(xué)習(xí) Docker、Kubernetes 相關(guān)容器技術(shù)莺奸。官網(wǎng):www.dockerchina.cn
7篇原創(chuàng)內(nèi)容
公眾號(hào)
IPv4/IPv6雙棧支持
有了IPv6/IPv6雙棧支持丑孩,Kubernetes現(xiàn)在可以在集群中直接支持雙棧模式。這意味著你可以將IPv4地址和IPv6地址分配給任何特定的pod或服務(wù)灭贷。這是使用.spec.ipFamilyPolicy字段來(lái)配置的,該字段可設(shè)置為以下值之一:
SingleStack
PreferDualStack
RequireDualStack
要使用雙棧支持略贮,你需要將.spec.ipFamilyPolicy設(shè)置為PreferDualStack或RequireDualStack甚疟。該功能在Kubernetes中默認(rèn)啟用,還包括通過(guò)IPv4和IPv6地址進(jìn)行的pod集群外出站路由逃延。
CronJobs
有了CronJobs功能览妖,就可以在Kubernetes集群中運(yùn)行周期性任務(wù)。Kubernetes?CronJobs與Linux cron系統(tǒng)非常相似揽祥。CronJobs在Kubernetes 1.4問(wèn)世后就已存在了讽膏,自從它在版本1.5中獲得CRI支持以來(lái)就在生產(chǎn)環(huán)境被廣泛接受。
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
對(duì)于那些不知道cron語(yǔ)法的人來(lái)說(shuō)拄丰,它就像這樣:MINUTE(分鐘) HOUR(小時(shí)) DAY OF MONTH(月日) MONTH(月) DAY OF?WEEK(星期幾)如果你不確定如何創(chuàng)建 cronjob府树,強(qiáng)烈建議從Crontab Guru(https://crontab.guru/)開(kāi)始入手,該編輯器讓你可以將值插入到cronjob料按,看看它們到底生成了什么奄侠。
臨時(shí)卷
自Kubernetes 1.19以來(lái),臨時(shí)卷就已存在载矿,讓你可以為特定的pod創(chuàng)建卷垄潮,pod終止后刪除臨時(shí)卷。換句話(huà)說(shuō)闷盔,這些是臨時(shí)卷弯洗。
Kubernetes支持四種類(lèi)型的臨時(shí)卷,它們是:
emptyDir—Pod啟動(dòng)時(shí)可用的空卷逢勾,使用來(lái)自kubelet基本目錄或內(nèi)存中的存儲(chǔ)空間牡整。
configMap、downdownAPI敏沉、secret—將不同類(lèi)別的Kubernetes數(shù)據(jù)注入到指定的Pod中果正。
CSI臨時(shí)卷—類(lèi)似其他類(lèi)型的卷,但由特殊的CSI驅(qū)動(dòng)程序提供盟迟。
通用臨時(shí)卷—由所有存儲(chǔ)驅(qū)動(dòng)程序提供(支持持久存儲(chǔ))
使用臨時(shí)存儲(chǔ)的示例清單文件可能如下所示:
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對(duì)Kubernetes來(lái)說(shuō)并不陌生秋泳。實(shí)際上,它在2016年就首次引入了攒菠。該功能負(fù)責(zé)自動(dòng)擴(kuò)展復(fù)制控制器迫皱、部署、副本集或狀態(tài)集中的Pod數(shù)量∽科穑基于以下類(lèi)型的指標(biāo)來(lái)加以擴(kuò)展:
資源使用情況—當(dāng)Pod超過(guò)內(nèi)存或CPU使用情況的閾值時(shí)和敬。這可以表示為原始值或百分比。
自定義指標(biāo)—這基于Kubernetes報(bào)告的指標(biāo)(即每秒客戶(hù)端請(qǐng)求率)戏阅。
外部指標(biāo)—這基于外部應(yīng)用程序或服務(wù)提供的指標(biāo)昼弟。
Autosaclers使用控制循環(huán)來(lái)運(yùn)行,周期則由–horizontal-pod-autoscaler-sync-period標(biāo)志來(lái)控制奕筐。默認(rèn)值是15秒舱痘。在控制循環(huán)期間,控制器根據(jù)HorizontalPodAutoscaler定義中配置的指標(biāo)來(lái)查詢(xún)Pod的資源使用情況离赫。
棄用的功能和升級(jí)為Beta版的功能
Kubernetes 1.23也有三項(xiàng)值得注意的棄用功能芭逝。這包括:
HPA v2beta2 API
FlexVolume
針對(duì)klog的標(biāo)志
兩項(xiàng)功能也升級(jí)為Beta版,包括:
PodSecurity—取代了PodSecurityPolicy準(zhǔn)入控制器渊胸。
結(jié)構(gòu)化日志—來(lái)自kubelet和kube-scheduler的大多數(shù)日志消息已經(jīng)過(guò)轉(zhuǎn)換旬盯,建議用戶(hù)嘗試JSON輸出。
處于Alpha版的新功能
Kubernetes 1.23還包括幾項(xiàng)現(xiàn)處于alpha版的新功能翎猛。這包括:
CRD的表達(dá)式語(yǔ)言驗(yàn)證—如果啟用CustomResourceValidationExpressions胖翰,自定義資源將由使用通用表達(dá)式語(yǔ)言(CEL)的規(guī)則進(jìn)行驗(yàn)證。
服務(wù)器端字段驗(yàn)證—如果啟用ServerSideFieldValidation办成,檢測(cè)到請(qǐng)求中未知或重復(fù)的字段時(shí)泡态,用戶(hù)將收到來(lái)自服務(wù)器的警告。
OpenAPI v3—如果啟用OpenAPIV迂卢,用戶(hù)將能夠?yàn)樗蠯ubernetes類(lèi)型請(qǐng)求OpenAPI v3規(guī)范某弦。
想了解新版本的更多信息,請(qǐng)查閱完整的發(fā)布說(shuō)明:https://www.kubernetes.dev/resources/release/而克。
作者:Jack Wallen ?編譯:沈建苗
來(lái)源:https://www.kubernetes.org.cn/9736.html