本文發表於一年多前。舊文章可能包含過時內容。請檢查頁面中的資訊自發布以來是否已變得不正確。

更新 NGINX-Ingress 以使用穩定的 Ingress API

對於所有 Kubernetes API,一旦它們成為正式版本 (GA),都會有一個建立、維護並最終棄用的過程。networking.k8s.io API 組也不例外。即將釋出的 Kubernetes 1.22 版本將移除幾個與網路相關的已棄用 API:

  • IngressClassnetworking.k8s.io/v1beta1 API 版本
  • 所有 Ingress 的 Beta 版本:extensions/v1beta1networking.k8s.io/v1beta1

在 v1.22 的 Kubernetes 叢集上,您將能夠透過穩定(v1)API 訪問 Ingress 和 IngressClass 物件,但無法透過其 Beta API 訪問。此項更改自 2017 年、2019 年 Kubernetes 1.16 API 棄用以來一直在討論,最近在 KEP-1453 中討論:Ingress API 升級到 GA

在社群會議期間,網路特別興趣小組決定繼續支援 Ingress-NGINX 0.47.0 版本在 Kubernetes 1.22 之前的版本上執行。對 Ingress-NGINX 的支援將持續到 Kubernetes 1.22 釋出後的六個月。Ingress-NGINX 的任何額外 bug 修復和 CVE 將根據需要解決。

Ingress-NGINX 將有單獨的 Ingress-NGINX 分支和版本來支援此模型,與 Kubernetes 專案過程保持一致。Ingress-NGINX 專案的未來版本將跟蹤並支援最新的 Kubernetes 版本。

Ingress NGINX 支援的版本與 Kubernetes 版本
Kubernetes 版本Ingress-NGINX 版本備註
v1.22v1.0.0-alpha.2新功能以及 bug 修復。
v1.21v0.47.x僅修復 bug,且僅針對安全問題或崩潰。未公佈終止支援日期。
v1.20v0.47.x僅修復 bug,且僅針對安全問題或崩潰。未公佈終止支援日期。
v1.19v0.47.x僅修復 bug,且僅針對安全問題或崩潰。修復僅提供到 Kubernetes v1.22.0 釋出後的 6 個月。

由於 Kubernetes 1.22 的更新,v0.47.0 將無法與 Kubernetes 1.22 相容。

您需要做什麼

團隊目前正在升級 ingress-nginx 以支援 v1 遷移,您可以在此處跟蹤進展。
在 Ingress v1 的支援完成之前,我們不會對 ingress-nginx 進行功能改進。

在此期間,為確保沒有相容性問題:

  • 更新到最新版本的 Ingress-NGINX;目前是 v0.47.0
  • Kubernetes 1.22 釋出後,請確保您使用的是支援 Ingress 和 IngressClass 穩定 API 的最新版本 Ingress-NGINX。
  • 在叢集版本 >= 1.19 上測試 Ingress-NGINX v1.0.0-alpha.2 版本,並向專案的 Github 頁面報告任何問題。

歡迎社群在此項工作中提供反饋和支援。Ingress-NGINX 子專案定期舉行社群會議,討論此問題以及專案面臨的其他問題。有關子專案的更多資訊,請參閱 SIG Network