天天看點

OpenFunction 0.7.0 釋出: OpenFunction Gateway、多語言及 Helm 安裝支援

OpenFunction 是一個開源的雲原生 FaaS(Function as a

Service,函數即服務)平台,旨在幫助開發者專注于業務邏輯的研發。在過去的幾個月裡,OpenFunction 社群一直在努力工作,為 OpenFunction 0.7.0 版本的釋出做準備。今天,我們非常高興地宣布

OpenFunction 0.7.0 已經正式釋出了!感謝社群各位小夥伴的貢獻和回報!

OpenFunction 0.7.0 為您帶來了許多新功能,包括新增 OpenFunction Gateway 作為同步函數入口、 新增 Java 和 NodeJS 同步函數和異步函數支援、新增 Helm 安裝方式。

同時, 我們對 OpenFunction 依賴的元件都進行了版本更新。

OpenFunction Gateway

OpenFunction 從 0.5.0 開始采用 Kubernetes Ingress 來提供同步函數的統一入口,并且必須安裝一個 nginx-ingress-controller。

在 OpenFunction 0.7.0 中,我們基于 ​​Kubernetes Gateway API​​ 實作了 OpenFunction Gateway 替代之前基于

Kubernetes Ingress 的 Domain 來通路同步函數的方法。

OpenFunction Gateway 提供了更強大、更靈活的函數網關,包含以下特性:

  • 可以選擇任意支援​​Kubernetes Gateway API​​​ 的​​Gateway 實作​​,如 Contour, Istio, Apache APISIX, Envoy Gateway 等。
  • 可以選擇安裝預設的 Gateway 實作(Contour), 此時 OpenFunction 将自動建立 Kubernetes Gateway。OpenFunction 也可以使用您環境中現有的 Kubernetes Gateway,隻需要您在 OpenFunction Gateway 中引用它即可。
  • 可以自定義通路函數的模式,如基于​

    ​host​

    ​​ 的路由模式和基于​

    ​path​

    ​​ 的路由模式,在您沒有定義函數路由時 OpenFunction 預設提供基于​

    ​host​

    ​ 的路由模式來通路函數。
  • 可以在函數路由部分自定義流量應該如何到達函數,OpenFunction 基于​​Gateway API HTTPRoute​​ 為您提供了強大的函數路由功能。
  • 可以通過函數外部位址在叢集外部通路函數,隻需要在OpenFunction Gateway 中配置好叢集外部可以通路的域名即可(同時支援 Magic DNS 和 Real DNS)。
  • 現在 OpenFunction 将流量直接轉發到 Knative Revision 而不再經過 Knative 的 Gateway。 如果不需要直接通路 Knative 服務, 您可以忽略 Knative Domain 相關的錯誤。

将來,OpenFunction 将支援在函數的不同版本之間進行流量分發。

多語言支援

OpenFunction 社群一直在努力完善多語言的支援:

  • Go

    ​​​functions-framework-go​​ 釋出了 v0.4.0,支援在一個函數中定義多個子函數,并且可以通過不同的 Path 和 Method 分别調用。

  • Java

    ​​​functions-framework-java​​ 現在支援同步函數和異步函數。

  • NodeJS

    ​​​functions-framework-nodejs​​​ 釋出了 v0.5.0, 支援同步函數和異步函數,并且支援同步函數觸發異步函數。

    我們将在近期釋出​​​functions-framework-nodejs​​ v0.6.0,為您帶來更多功能比如插件機制、與 SkyWalking 內建等。

OpenFunction 将會在後續版本支援更多語言如 Python、Dotnet 等。

Helm 安裝 OpenFunction 及所有依賴元件

原來基于 CLI 安裝的方法已棄用。

現在 OpenFunction 支援通過 Helm 安裝 OpenFunction 及所有依賴的元件,相比原來通過 CLI 安裝的方式更加雲原生, 并且解決了部分使用者通路 Google Container Registry(​​gcr.io​​)鏡像受限的問題, 并且将長期維護。

TL;DR

helm repo add openfunction https://openfunction.github.io/charts/
helm repo update
helm install openfunction openfunction/openfunction -n openfunction --create-namespace      

依賴元件更新

Components OpenFunction 0.6.0 OpenFunction 0.7.0
Knative Serving 1.0.1 1.3.2
Dapr 1.5.1 1.8.3
Keda 2.4.0 2.7.1
Shipwright 0.6.1 0.10.0

繼續閱讀