當前位置:
首頁 > 最新 > Kubernetes v1.10更新了這些 運維和開發笑了

Kubernetes v1.10更新了這些 運維和開發笑了

文末免費報名本周六K8S GeekGathering 2018杭州站!

編者按

BIANZHEAN

3月26日,Kubernetes推出了1.10版本。v1.10版本的特點是在多個功能領域有著顯著增強。這進一步證明了Kubernetes的成熟——最近的版本不是由任何單一的重要功能所主宰,而是建立在多個高度自治團隊的許多組件的持續改進之上。該平台的穩定性及其生產就緒促成了CNCF將該項目從孵化階段畢業的決定。

更新發言人

Kubernetes 1.10的新功能之一是beta集成了稱為Container Storage Interface(CSI)的新存儲功能。新的Kubernetes還提供傳輸層安全(TLS)引導功能以及針對重要安全漏洞的修補程序。

谷歌和Kubernetes存儲特別興趣小組(SIG)負責人Saad Ali表示,Kubernetes的功能通常作為alpha引入,在後來的Kubernetes發布中轉變為beta並最終轉為stable / GA。Kubernetes對CSI的支持作為alpha在1.9中引入,在1.10升級為beta——這意味著它的發展速度非常快。」

Ali指出,新功能通常至少需要三次發布才能從alpha變為stable。功能開發時間表允許Kubernetes開發人員獲得反饋并迭代設計,最終目標是提供高質量的生產級功能。

支持CSI的目標是提供存儲抽象層,這使得不同存儲系統可以更輕鬆地插入到Kubernetes部署中。Ali解釋說,就最終用戶而言,在CSI模式下,所有現有的存儲卷插件將繼續像現在這樣運行。

「即使將一些入樹卷插件遷移到樹外CSI插件,在未來的發行版中,最終用戶也無法看到這一更改,因為它不會更改用戶使用的用於使用卷插件的API。」

Kubernetes 1.10更新中包含Kubelet TLS Bootstrap,旨在改進在Kubernetes節點(kubelet)上運行的數據的加密。TLS Bootstrap首次出現在2016年10月發布的1.4版本。

紅帽公司Kubernetes首席工程師Derek Carr表示,這對於使用集群自動調節功能的集群非常有用,因為集群自動調節功能可以隨著負載的增加或減少而讓節點進出。

Carr表示,紅帽希望在Kubernetes集群中節點主機管理方面實現更多功能的自動化,Kubelet TLS Bootstrap功能是這一過程中的關鍵一步,因為它簡化了Red Hat OpenShift集群中新主機的自動添加。OpenShift是Red Hat的基於Kubernetes的容器管理平台。Carr補充說,在後續即將發布的Kubernetes版本中,TLS Bootstrapping有進一步的迭代改進。

「尤其是在用於與API伺服器通信的客戶端和伺服器證書過期之前,kubelet能夠自動輪換這些證書——這是特別令人興奮的下一步。」Carr說。

Kubernetes 1.10還集成了針對CVE-2017-1002101安全漏洞的修復程序,該漏洞於3月12日首次公開發布。該漏洞可能允許從容器到主機文件系統的任意文件訪問。

谷歌高級軟體工程師、Kubernetes認證SIG負責人Tim Allclair表示,有關Kubernetes安全問題的更多細節將在未來的博客文章中發布。而「長期來看,我正在研究安全pod隔離背景下的新卷體系結構,以確保這些類型的問題不會暴露在該環境中。」

Carr補充說,Kubernetes社區還在考慮其他步驟,比如bug獎勵計劃,以吸引更多的安全研究人員查看代碼,消除所有安全漏洞,並不斷改進整個項目的安全狀況。

「發現只是解決問題的一部分,還需要補救。Kubernetes受益於龐大的貢獻者群體,紅帽能夠分配時間和資源幫助社區為CVEs提供更快的補救。我們都有共同的目標,可以一起使Kubernetes儘可能安全。」Carr說。

決定

開發運維怎麼看

1.10版本中的大部分工作對於集群運維人員來說更重要。許多變化是錯誤修復和內部重構,目的是穩定Kubernetes核心並提高其他組件的發布速度。

運維視角

此版本為Windows上的Kubernetes帶來了功能奇偶校驗和修復,並且還修復了一些關鍵的API。

Windows節點現在支持FlexVolume插件。FlexVolume卷類型允許你使用自定義存儲驅動程序。另外,可以獨立於集群生命周期來管理驅動程序生命周期;無需停止並啟動kubelets或kube-controller-manager來升級驅動程序。

v1.8中引入的kubelet config API從alpha變為beta。在此API之前,kubelets不得不重新配置帶外,但現在可以使用ConfigMaps進行配置。一個類似的kube-proxy API也正在從alpha到beta。Audit API已經GA。你可以使用此API為所有API請求生成審計日誌,並將它們導出到可插入後端。

添加了一個新的「shutdown」 taint Node。如果你的集群與使用雲提供商的雲集成,你可能已經注意到Kubernetes不會從報告NotReady的節點上卸載存儲卷。pod被重新調度到另一個節點,但不能在那裡使用它們的存儲卷。這是因為雲提供商不知道從報告NotReady的節點卸載存儲卷是否安全。一旦你的雲提供商支持這個新的taint,將使用它來確定何時卸載(和重新掛載)存儲卷是安全的。

你可以配置API伺服器以使用自定義TLS密碼套件。默認密碼套件旨在平衡安全性和兼容性。如果你更願意接受較低的可用性而不是一些安全性較低的密碼,那麼可以通過定義自己的密碼套件來實現。

最後,讓我們看看「Action Required」項。這些更改包含在每個版本的更改日誌中,可能會與你的集群後向不兼容。到目前為止,在這個版本中,kubelet「-cloud-provider = auto-detect」功能被刪除,webhooks不再跳過集群範圍的資源。如果你尚未部署雲控制器管理器組件,則應該儘快完成。為了將雲提供商實施與Kubernetes代碼去耦,它們將在新版本中從kube-controller-manager遷移到cloud-controller-manager,並最終移植到各個二進位文件中。

開發視角

開發人員會發現一些小的但受歡迎的改進,包括ConfigMap中對二進位數據的支持,即「kubectl set volume」命令。沒有主要功能,也沒有重大變化。

使用kubectl命令將卷添加到部署或將其移除到部署:「kubectl set volume」。「kubectl set」命令更新部署,從而觸發滾動更新。過去的版本增加了對更新鏡像、選擇器、服務帳戶、環境和資源配額的支持。未來版本將支持更新活躍性和準備就緒探測器、安全上下文和埠。

你現在可以在ConfigMap中使用存儲二進位數據。以前,如果你想將Java密鑰庫(二進位文件)傳遞到應用程序,需要實現自己的Base64編碼/解碼。現在,這種編碼/解碼內置於其中,易於使用:「kubectl create configmap -from-file」。

v1.10對Kubernetes的企業生產就緒意味著什麼?

新版本將通過以下方式提高生產就緒度:

Node "Shutdown" Taint提高了有狀態工作負載的整體可靠性,減少了關閉卷後卡住卷的可能性。

安全

API Audit Logging功能的畢業代表了Kubernetes可觀察性的成熟,從而提高了生產中故障排除和審計的能力

「自定義密碼套件」功能使得安全配置更加靈活

ConfigMap中的二進位數據支持提高了Kubernetes與生產型企業環境中普遍存在的Java的兼容性。

由於對kubeadm工具的漸進式改進,運維更加簡單。該工具提供了一種易於使用的CLI來部署和管理集群生命周期。例如:56084是實現kubeadm部署多主機(HA)集群的一個步驟,58259提高了Kubernetes與更多外部雲提供商的兼容性。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 K8S技術社區 的精彩文章:

Kubernetes新版本又來了 如何跟上變化「合理更新」?
聊聊容器存儲介面CSI的那些事兒

TAG:K8S技術社區 |