日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31

發(fā)布時間:2025/3/20 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作者 | 徐迪、李傳云、黃珂、汪萌海、張曉宇、何淋波 、陳有坤、李鵬
審核 | 陳俊

上游重要進展

1. Kubernetes v1.17 版本發(fā)布

功能穩(wěn)定性是第一要務(wù)。v1.17 包含 22 個增強功能14 個增強功能已逐漸穩(wěn)定,4 個增強功能已進入 beta 版,4 個增強功能已進入 alpha 版本

Major Theme

  • 云提供商標(biāo)簽達到 GA

這個自 1.2 版本就引入的 label,在 1.17 版本終于 GA。之前舊的 label 已經(jīng)被廢棄掉:以下 3 個舊的 label 已經(jīng)被廢棄掉了:

beta.kubernetes.io/instance-type (deprecated) -> node.kubernetes.io/instance-type

failure-domain.beta.kubernetes.io/region (deprecated) -> topology.kubernetes.io/region

failure-domain.beta.kubernetes.io/zone (deprecated) -> topology.kubernetes.io/zone

  • Volume Snapshot 進入 beta

在 1.12 版本中首次以 v1alpha 版本引入,在 1.13 中升級為 v2alpha(不兼容 v1alpha 版本),目前在 1.17 版本正式進入 beta 版;

  • in-tree 存儲插件遷移到 CSI 已是 beta

從 1.14 開始遷移 alpha。

特性穩(wěn)定

  • Taint Node by Condition GA

將 kube-scheduler 所關(guān)心的 Node 狀態(tài)從 Conditions(例如:OutOfDisk\MemoryPressure)轉(zhuǎn)化到 Taints。Taints 成為 kube-scheduler 判斷 Node 狀態(tài)的唯一來源,同時用戶也可以在 Pod 上通過聲明 Tolerations 來容忍調(diào)度到有這些 Taints 的節(jié)點。

  • Configurable Pod Process Namespace Sharing

Pod 內(nèi)所有容器共享 PID Namespace 特性 GA。該特性將方便 Pod 內(nèi)進程信號傳遞(如 Sidecar 容器中的日志進程完成日志輪轉(zhuǎn)后,通知業(yè)務(wù)容器進程使用新的日志)以及 Pod 內(nèi)僵尸進程回收等。

  • ScheduleDaemonSet Pods by kube-scheduler

Damoneset 的 pod 的調(diào)度從 daemonset controller 遷移到 kube-scheduler 來做調(diào)度,從而支持 PodAffnity、PodAntiAffinit 等能力。

  • DynamicMaximum Volume Count

該特性是為了支持調(diào)度感知單個 Node 上可以掛載的 Volume 個數(shù)的上限,且每個 Node 的上限可由存儲插件自己動態(tài)設(shè)置。一般云廠商提供的云主機對某些存儲卷(如塊存儲)能掛載的數(shù)量有限制,該特性支持調(diào)度器在選擇 Node 時排除那些掛載的存儲卷已經(jīng)超過該 Node 支持的 Maximum Volume Count 的 Node 節(jié)點。

  • KubernetesCSI Topology Support

通過 CSI 實現(xiàn)的存儲插件支持存儲拓?fù)湔{(diào)度感知特性,即可以通過 Pod 被調(diào)度到的 Node 對應(yīng)的拓?fù)湮恢眯畔?如 Node 所屬的 Region/Zone/Rack 等等)決定動態(tài)創(chuàng)建的云存儲的拓?fù)湮恢?#xff0c;也可以通過 StorageClass 限制動態(tài)創(chuàng)建的存儲的拓?fù)湮恢?#xff0c;還可以通過 Pod 使用的 PV 的拓?fù)湎拗茮Q定 Pod 可被調(diào)度的 Node 節(jié)點。

  • Provide Environment Variables Expansion in SubPathMount

subPath 用在單個 Pod 多個容器或者一個容器中多個 mountPath 在共享同一個 volume 時以建子目錄的方式在同一個 Volume 上做目錄隔離。而 subPathExpr 字段可以從 Downward API 環(huán)境變量構(gòu)造 subPath 目錄名,可更加靈活地動態(tài)生成對應(yīng)的子目錄名。

  • Defaulting of Custom Resources

Custom Resource 目前缺乏 default 機制,而 default 值對 API 的兼容性影響重大。這個功能通過 OpenAPI v3 的校驗機制來為 CRD 添加默認(rèn)值。

  • Move Frequent Kubelet Heartbeats To Lease Api

Lease api 進入 GA 階段,kubelet 使用 lease api 周期性匯報心跳,相比 NodeStatus,lease 對象更小,可以降低 kube-apiserver 壓力。

  • Break Apart The Kubernetes Test Tarball

kubernetes-test.tar.gz 之前打包內(nèi)嵌了各個平臺的二進制文件?,F(xiàn)在發(fā)行的 Kubernetes-test 包將以平臺為單位,分拆成多個包。

  • Watch Bookmarks GA

kube-apiserver 通過增加 Bookmark 事件通知 watcher 服務(wù)器端當(dāng)前最新 resourceVersion,可以降低 watcher 重啟時對 kube-apiserver 造成的壓力。

  • Behavior-Driven Conformance Testing

一致性測試框架進行修改以支持定義行為測試。行為測試是一組基于經(jīng)驗,代碼檢查,API 模型為視角的測試定義。而測試本身是具體對行為進行驗證。此功能讓兩者進行分離。

  • Finalizer Protection For Service Loadbalancers

增加 finalizer 去做 Load Balancer 類型的 Service 刪除保護,確保 Service 這種資源對象在 Load Balancer 被摘除之后才能被刪除。

  • Avoid Serializing The Same Object Independently ForEvery Watcher

之前多個客戶端 watch 同一個對象時,需要對同一個對象序列化多次,引入該特性后,同一個對象只需要序列化一次,在 5000 個節(jié)點的測試環(huán)境中,可以減少 5% 的 CPU 和 15% 的內(nèi)存消耗。

重要變化

Add IPv4/IPv6 Dual Stack Support 添加 IPv4/IPv6 雙協(xié)議棧支持。即允許將 IPv4 和 IPv6 地址分配給 Pods 和服務(wù)。預(yù)計會在 1.18 版本對 kube-proxy 支持 IPv4/IPv6 雙協(xié)議棧,代碼正在 review 中;

其他重要特性

  • Topology Aware Routing of Services (Alpha): 即讓 Service 可以實現(xiàn)就近轉(zhuǎn)發(fā),比如同節(jié)點、同 AZ、同 Region 等等;
  • RunAsUserName for Windows:增強 windows 容器的安全性,通過 feature gate 開啟。1.16 版本 alpha 功能引入,在 1.17 已經(jīng)變成 beta 版本(默認(rèn)自動開啟)。

2. Knative變更

  • 安裝后不啟動實例

目前第一次啟動時總是啟動一個,用來檢查用戶代碼是否正常工作,但在某些場景下不想啟動任何實例。建議實現(xiàn)一個全局配置,并且可以在 revision 級別覆蓋配置,如果不啟動實例,則馬上把狀態(tài)設(shè)置為 ready,如果有流量過來按冷啟動流程啟動實例。

  • 想在 revision 中添加 dnsPolicy 和 runtimeClassName

還沒有足夠的理由添加這些屬性。

  • proposal to delete ingress channel

從 Broker/Trigger 模型中刪除 ingress channel。當(dāng)前 Broker 會創(chuàng)建 2 個 channels: trigger 和 ingress. ingress channel 用于接收 trigger 的響應(yīng)結(jié)果,然后發(fā)送給 ingress service. 但是目前看起來是額外的多了一跳,引入了延遲和可靠性的問題,比較好的方式是直接將響應(yīng)結(jié)果發(fā)送給 ingress service.

開源項目推薦

1. dive

一個 docker image 分析工具,幫助快速分析各 layer 的內(nèi)容,有助于減小整個鏡像的大小。

2. amazon-vpc-cni-k8s

aws 上基于 ENI 的網(wǎng)絡(luò)插件。

3. Draino

負(fù)責(zé) cordon 和 drain 節(jié)點,提供了 dry run 模式。

4. Apache Dubbo-go

dubbo 的 golang 實現(xiàn)。

本周閱讀推薦

  • 《A visual guide on troubleshooting Kubernetes deployments》
  • 文章主要講述了如何去定位一個 deployment 無法正常工作的問題。

  • 《Kubernetes Audit: Making Log Auditing a Viable Practice Again》
  • 本文提出了一種 Kubernetes 自動化審計日志分析器的愿景,但這一愿景遠不止于此。使用機器學(xué)習(xí)之類的工具甚至可以實時地自動檢測日志中潛在的威脅。此外,以用戶可理解的方式匯總審核日志中的信息,使審核員可以快速驗證已識別的模式,并幫助調(diào)查其他隱藏的可疑活動。

  • 《How Kubernetes Has Been “Transformational” to Productivity and Culture at uSwitch》
  • 很多人開始嘗試把業(yè)務(wù)遷移到 Kubernetes 上,那么 Kubernetes 到底能帶來哪些改變呢?通過 uSwitch 的這個案例研究,可以給你帶來不一樣的思考。

  • 《Building Large Kubernetes Clusters》
    隨著集群越來越多,集群的搭建和管理是個很頭疼的問題。LINE 分享了自研的一套框架 Caravan。

  • 《Kubernetes is the future of Computing. What You Should Know About the New Trend》

  • 越來越多的人開始使用 Kubernetes,有人說它是下一代的“操作系統(tǒng)”,“云計算的未來”??焱ㄟ^這篇文章了解下這個大趨勢吧。

    “阿里巴巴云原生關(guān)注微服務(wù)、Serverless、容器、Service Mesh 等技術(shù)領(lǐng)域、聚焦云原生流行技術(shù)趨勢、云原生大規(guī)模的落地實踐,做最懂云原生開發(fā)者的技術(shù)圈。”

    總結(jié)

    以上是生活随笔為你收集整理的Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。