Kubernetes 1.9發布:年度更新這些評論亮了!
近日,Kubernetes的新版本1.9發布,1.9是今年第四個Kubernetes 版本更新。它主要支持了Windows容器和一個最新的容器存儲API的alpha版本。Kubernetes 1.9 現在可從 GitHub https://github.com/kubernetes/kubernetes/releases/tag/v1.9.0
穩定的負載API
根據CNCF開發者倡導者Ihor Dvoretskyi介紹,Kubernetes 1.9提升了一系列通用的穩定性,其中包括穩定的負載API——這是去年12月首次推出的一項主要功能。
總的來說,有四個API一般可用:
Deployment:描述正在運行的應用程序的理想狀態的基本方法,包括ReplicaSet。
ReplicaSet:根據Deployment的配置,這可以確保應用程序有足夠的正在運行的容器實例(「副本」)來滿足其定義。
Daemonset:不管其他什麼應用程序可能在運行而持續運行的應用程序的部署,如日誌記錄或監控解決方案。
StatefulSet:針對即使容器被終止並重新啟動也需要持久狀態的工作負載。
StatefulSets還為容器的網路標識或容器啟動和停止的順序提供持久性。
轉向穩定意味著用戶可將其用於關鍵任務工作負載,因為此時的API介面不會出現讓他們重新編碼應用才能繼續使用的情況。
Windows Server支持
Kubernetes 原本是為 Linux 系統開發的,不過用戶意識到了容器編排能力的收益之後,就產生了讓 Kubernetes 支持 Windows 負載的需求。在 12 個月之前啟動了為 Kubernetes 對 Windows Server 提供支持的開發工作。[Windows SIG](https://github.com/kubernetes/community/tree/master/sig-windows) 現在把這一能力升級到 Beta 階段,這表明可以進行使用(https://kubernetes.io/docs/getting-started-guides/windows/)評估了。
Windows Server支持已經處於beta狀態,但還沒有準備好用於生產環境,Dvoretskyi表示。
「與此同時,beta意味著它將很快穩定。如果你打算在Windows環境中使用Kubernetes進行構建,現在就是開始使用Kubernetes的好時機。一旦達到穩定的狀態,你就已經有一些工作經驗了。」它將允許你使用Windows伺服器將節點添加到Kubernetes集群,並且Windows Workloads將在Windows伺服器上本地運行。
Cloudbase、Apprenda和Red Hat已經宣布在Kubernetes 1.9中支持Windows Server Containers。
容器存儲介面(CSI)
容器存儲介面(CSI) 是一個跨行業標準草案,致力於降低雲原生存儲的開發門檻,並提高兼容能力。[存儲 SIG](https://github.com/kubernetes/community/tree/master/sig-storage) 和 [CSI 社區](https://github.com/container-storage-interface/community) 正在合作交付一個用於為 Kubernetes 供給、連接和載入存儲的單一介面。
Kubernetes 1.9 實現了一個 CSI 的 Alpha 版本(https://github.com/kubernetes/features/issues/178),這一功能讓新的卷插件的安裝像部署 Pod 一樣簡單;第三方存儲的開發也不需要加入核心的 Kubernetes 代碼了。
因為這一功能尚處於 Alpha 階段,所以必須顯式聲明啟用,也不推薦用在生產環境,但是這一嘗試表明了 Kubernetes 存儲系統的擴展性和標準化的未來路線。
Dvoretskyi談到,「以前,如果你想在Kubernetes集群中使用其他存儲解決方案,必須確保它們在Kubernetes的代碼庫中默認為可用。這也使得想要為Kubernetes提供存儲解決方案的存儲供應商感到困難。現在供應商更容易為Kubernetes提供存儲選項。「
Cloud Provider
Kubernetes 1.9的一個重要變化是,如果用戶手動部署Kubernetes,必須為- cloud- provider標誌設置一個值;默認情況不再是「自動檢測」。允許的選擇是:AWS、Azure、Cloudstack、Fake、Gce、Mesos、Openstack、Ovirt、Photon、Rackspace、 Vsphere、以及Unset;自動檢測將在Kubernetes 1.10中被移除。(如果用Minikube或Kubeadm之類的工具來安裝Kubernetes,不必擔心這個問題。)
此外,該版本中的一些更改是針對個別雲供應商的。
OpenStack
如果使用OpenStack使用Kubernetes,用戶會發現v1.9中的配置要簡單得多。自動檢測OpenStack服務和版本現在是「只要可行」的規則——在本例中意味著塊存儲API版本和安全組——用戶現在可以將OpenStack負載平衡配置為服務v2提供者。支持OpenStack Octavia v2和中子LBaaS v2。
AWS
AWS的小組(SIG)一直致力於改善Kubernetes與EBS卷的集成。用戶將不再使用被調度到「附加」狀態的卷的工作負載。相反,節點將被「污染」,以便管理員能夠處理問題。團隊建議觀看這些污染。此外,當停止節點時,卷將自動分離。
此外,Kubernetes現在支持AWS的新NVMe實例類型,以及使用AWS網路負載均衡器,而不是彈性負載均衡器。
Azure
如果用戶在Windows上使用Kubernetes,特別是在Azure上,會發現安裝卷的失誤率更小,因為您現在可以創建Windows掛載路徑,並消除驅動器號的需要,這是無限的掛載點。
還可以使用service . beta.kubernetes顯式地為公共IP地址設置Azure DNS標籤。在使用Azure NSG規則時,仍然能夠使用Azure NSG規則,以確保只允許外部訪問負載均衡器的IP地址。當更新時,負載均衡器還被增強以考慮更多NSG規則的屬性,包括協議、sourceUNK ange和DestinationAddressPrefs。(以前這些欄位的更改不會觸發更新,因為負載均衡器認識不到已經發生了更改。)
其他新功能
- 硬體加速的alpha版本,允許使用GPU作為機器學習工作負載的資源。
- 對IPv6定址的alpha支持。
- 更快地驗證Custom Resource Definition(CRD)數據。 CRD使管理員可以自定義和擴展Kubernetes安裝,而不會危害與新版本Kubernetes的兼容性。
此外,CNCF宣布了Certified Kubernetes Conformance Program,該計劃驗證在任何一個經認證的Kubernetes發行版或平台上運行的工作負載將在其他經認證的Kubernetes發行版或平台上正常工作,現在包括40多個項目。
業界評論
谷歌Kubernetes部門項目經理Aparna Sinha表示,網路、存儲和運行時介面標準的出現,以及服務網格項目(如Istio)的一致性程序和相關的可擴展性機制都是Kubernetes成熟度的指標。她預測2018年將是容器和Kubernetes領域的安全年。
在CoreOS博客文章中,Eric Chiang評論,「在1.9版中,許多功能都是為了將Kubernetes整體存儲庫分成更小、更易使用的項目為目的而設計的。 Kubernetes使用容器網路介面(CNI)已經實現了豐富的網路選擇生態系統。Custom Resource Definitions(CRDs)和聚合API伺服器允許用戶擴展API,同時保留自定義控制和運維熟悉的工作流程。用於身份驗證和授權的Webhook插件允許與各種身份提供商和策略引擎進行集成。名單在不斷增加。「
K8S技術社區特約評論員、EasyStack容器架構師王后明談到,「Kubernetes 發展迅速,保持核心代碼的穩定和組件本身的可擴展性成為社區的主要關注點:比如把 Cloud Provider 從 K8S 代碼分支中抽離出來;添加Device Plugin 機制來提供對 GPU、FPGA、高性能網卡等硬體設備的支持;添加 external storage 機制集中為 K8S 提供豐富的存儲如cinder/manila 等;採用CRD、initializer等機制提供 API 的可定製性。如上機制,都是為了在保證核心代碼的穩定情況下,通過插件機制來豐富K8S 生態。此外,標準化的力量遠大於單個廠商或產品正不斷被證明。 CNI、CRI定義了網路和運行時介面的標準,CSI 也正在建立存儲介面標準,Serverless 標準也正在逐步建立。」
K8S技術社區特約專家作者,TalkingData技術總監宋凈超談到,「從API的版本變化看來,Kubernetes本身尤其是底層的調度、容器編排已經趨於穩定了。該版本最大的改進是Apps Workloads API成為穩定版本,這消除了很多潛在用戶對於該功能穩定性的擔憂。另外一個重大更新,就是測試支持了Windows了,這打開了在Kubernetes中運行Windows工作負載的大門。」
推薦閱讀:
※使用Heapster和Splunk監控Kubernetes運行性能
※[資料分享]kubernetes實踐指南
※使用Helm管理kubernetes原生應用
※一周IT博文精選TOP10(第十期)
TAG:Docker | Kubernetes |