v0.20 版本發佈

發佈於:2021-01-20 ,  修訂於:2023-08-03

公告 Knative v0.20 版本發佈

Knative 的新版本現已在多個元件中提供。請依照文件中 安裝 Knative 的說明,針對各自的元件進行安裝。

目錄

重點

  • Serving 繼續完善 DomainMapping。
  • 引入了漸進式流量部署功能。
  • 現在已在 Eventing 中新增了將傳遞規格向下傳播到訂閱的功能。
  • Eventing Kafka Broker 增強了多項與指標和追蹤相關的可觀察性。
  • kn CLI 引入了新的實驗性離線模式 (--target),用於 kn service create,允許在資源檔案中本機建立 Knative 服務。

Serving v0.20

🚨 破壞性變更

  • 驗證 DomainMapping 名稱是否為完整限定名稱。 (#10379)
  • 移除 GC 功能旗標和 v1 GC/Labeler (#10084)
  • 從程式碼中移除 Webhook 名稱,並使用金鑰 WEBHOOK_NAME 在 Webhook 部署 yaml 中設定 Webhook 名稱 (#10205)

💫 新功能與變更

  • 現在可以使用功能旗標,為 Knative 服務啟用 hostAliases。有關詳細資訊,請參閱 config-features。 (#10301)
  • 新增 DomainMapping 的 AutoTLS 支援 (#10467)
  • DomainMapping 現在支援任意目標參照,而不僅限於 Knative 服務。目標必須符合 Addressable 合約(包括 Kubernetes 服務),且解析後的 URI 格式必須為 {name}.{namespace}.svc.{cluster-suffix}。 (#10210)
  • 為 DomainMapping 產生的 Ingress 引入 serving.knative.dev/domainmapping 標籤。 (#10370)
  • 領導者選舉轉換改進 (#10131)
  • 現在可以透過環境變數 PROFILING_PORT 設定分析連接埠 (knative/pkg#1950)
  • Knative 現在提供組態目標的漸進式流量部署。目前它由 config-network configmap 中的 rolloutDuration 項目驅動。當此設定為正數時,將在此期間將流量從先前的修訂版本逐步移至目前的修訂版本。它可以同時處理三個維度中的多個部署
    • 如果不同的標籤指向不同的組態,則可以獨立部署這些標籤
    • 同一組態目標的不同百分比將以不同的速度部署(但將在大約相同的截止時間完成)
    • 如果在先前的部署尚未完成時建立了新的修訂版本,系統將會排空它們,並將所有內容移至最新的修訂版本。

🐞 錯誤修正

  • 變更移除 DomainMapping 時清理 ClusterDomainClaims 的方式。 (#10503)
  • 啟用 Activator 探查和 Proxy 之間的連線重複使用,以改善冷啟動後的第一個請求效能 (#10228)
  • Webhook 不會移除其他元件新增的命名空間選取器 (knative/pkg#1949)

Eventing v0.20

💫 新功能與變更

  • 現在設定通道規格傳遞欄位時,每個訂閱都會預設為該特定傳遞規格 (#4652)

🐞 錯誤修正

  • 允許在不禁用高可用性的情況下縮放記憶體內通道調度器。 (#4675)

🧹 清理

  • Webhook 不再具有叢集範圍的 Secret 權限。現在,Webhook 的 Secret 權限僅限於 knative-eventing 命名空間。 (#4684)
  • 在每次測試迭代時增加 Broker 的名稱 (#4716)
  • 訊息接收器支援自訂的存活度和就緒檢查 (#4707)
  • 您需要在升級後執行儲存遷移工具,將資源從 v1beta1 遷移到 v1 apiserversources.sources.knative.dev。 (#4655)
  • 您需要在升級後執行儲存遷移工具,將資源從 v1beta1 遷移到 v1 containersources.sources.knative.dev。 (#4657)
  • 您需要在升級後執行儲存遷移工具,將資源從 v1beta1 遷移到 v1 sinkbindings.sources.knative.dev。 (#4658)

Eventing 擴充功能

Eventing Kafka Broker v0.20

eventing-kafka-broker 的版本資訊

💫 新功能與變更

  • kafka-broker-receiverkafka-broker-dispatcherkafka-sink-receiver 會公開 Kafka 用戶端指標。 (#435)
  • kafka-broker-receiverkafka-broker-dispatcherkafka-sink-receiver 會公開 JVM 指標(預設為停用) (#435)
  • 資料平面 Pod 會產生分散式追蹤跨度。 (#421)
  • 接收器現在指定反親和性,因此副本不會共置 (#483)

🐞 錯誤修正

  • 當受管理資源變更時,控制器會重新同步狀態。 (#420)
  • 領導者選舉轉換改進 (#449)

🧹 清理

  • 資料平面是完全非阻塞的。 (#438)
  • 當沒有變更時,略過 ConfigMap 更新 (#511)
  • 將發佈標籤從 eventing.knative.dev 變更為 kafka.eventing.knative.dev。 (#480)

Client v0.20

  • kn v0.20.0 引入了一個新的實驗性離線模式 (--target),用於 kn service create,這允許在資源檔案中本地建立 Knative 服務,而無需連接到叢集。此外,還新增了常見的錯誤修復和一些較小的功能。

💫 新功能與變更

離線模式

kn service create 新增了一個實驗性離線模式。您可以使用 --target 選項來啟用它,該選項可以指向現有的目錄或檔案名稱。當提供此選項時,kn 將會建立一個資源檔案,該檔案可以用於 kn service create -fkn service apply -f 甚至是直接使用 kubectl。如果 --target 的引數是一個檔案名稱或不存在的路徑,則會建立一個單一檔案。檔案格式(YAML 或 JSON)由檔案副檔名決定。如果 --target 的引數是一個目錄,則資源檔案會建立在此目錄中,並為命名空間和類型建立子目錄,並使用服務名稱作為檔案名稱的基本名稱。

範例

# Create a YAML resource file "myservice.yml" with the custom resource definition of
# the specified Knative service
kn service create myservice --image quay.io/myuser/myservice:latest --target ./myservice.yml

# Create a YAML resource file with the service definition in "service-dir/default/ksvc/myservice.yml"
# The directory "service-dir/" must already exist
kn service create myservice --image gcr.io/myproject/myservice:latest --target service-dir/

縮放選項

kn service createkn service update--scale 選項現在也允許範圍作為值:- --scale 1..5:縮減到最少 1 個副本,最多 5 個副本 - --scale 1..:將 scale-min 設定為 1,但保持 scale-max 不變(當用於服務更新時)- --scale ..5:將 scale-max 設定為 5,但保持 scale-min 不變(當用於服務更新時)- --scale 5..5:將 scale-min 和 scale-max 都設定為 5(與 --scale 5 相同)

支援新的架構

linux/s390xlinux/ppc64le 已新增到支援的架構清單中,現在包含以下平台:darwin/amd64linux/amd64linux/arm64linux/ppc64lelinux/s390xwindows/amd64

🧹 清理

  • 已套用說明和錯誤訊息的修正。

其他 CLI 功能

  • -o url 現在在 kn broker describekn channel describe 中受到支援。
  • 機器可讀的輸出(例如 -o json)已新增到遺漏的命令中。

Operator v0.20

新的 Operator 現在可以部署新版本的 v0.20 Serving 和 Eventing 元件。

🐞 錯誤修復

  • 保留 pingsource-mt-adapter 部署資源的環境變數值,(#394)
  • 為自訂的 yaml 實作額外的資訊清單。( #374)

🧹 清理

  • 更新屬性以描述產生和/或引入的檔案。( #423)
  • 啟用組態產生的程式碼自動產生功能 (#417)
  • 新增一個工具,可自動提取發行版本並將其放入 kodata 中。( #360)

感謝 v0.20 的貢獻者

了解更多資訊

Knative 是一個開放原始碼專案,社群中的任何人都可以使用、改進和享受。我們很樂意您加入我們!

我們使用分析和 Cookie 來了解網站流量。為了這個目的,關於您使用我們網站的資訊會與 Google 分享。 了解更多資訊。