v0.20 版本發佈
發佈於:2021-01-20 , 修訂於:2023-08-03
公告 Knative v0.20 版本發佈¶
Knative 的新版本現已在多個元件中提供。請依照文件中 安裝 Knative 的說明,針對各自的元件進行安裝。
目錄¶
- Serving v0.20
- Eventing v0.20
- Eventing 擴充功能
- CLI v0.20
- Operator v0.20
- 感謝 v0.20 的貢獻者
重點¶
- 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-receiver
、kafka-broker-dispatcher
和kafka-sink-receiver
會公開 Kafka 用戶端指標。 (#435)kafka-broker-receiver
、kafka-broker-dispatcher
和kafka-sink-receiver
會公開 JVM 指標(預設為停用) (#435)- 資料平面 Pod 會產生分散式追蹤跨度。 (#421)
- 接收器現在指定反親和性,因此副本不會共置 (#483)
🐞 錯誤修正¶
🧹 清理¶
- 資料平面是完全非阻塞的。 (#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 -f
、kn 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 create
和 kn 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/s390x
和 linux/ppc64le
已新增到支援的架構清單中,現在包含以下平台:darwin/amd64
、linux/amd64
、linux/arm64
、linux/ppc64le
、linux/s390x
和 windows/amd64
。
🧹 清理¶
- 已套用說明和錯誤訊息的修正。
其他 CLI 功能¶
-o url
現在在kn broker describe
和kn channel describe
中受到支援。- 機器可讀的輸出(例如
-o json
)已新增到遺漏的命令中。
Operator v0.20¶
新的 Operator 現在可以部署新版本的 v0.20
Serving 和 Eventing 元件。
🐞 錯誤修復¶
🧹 清理¶
感謝 v0.20 的貢獻者¶
- @BbolroC
- @Harwayne
- @akerekes
- @antoineco
- @arghya88
- @dprotaso
- @dsimansk
- @evankanderson
- @grac3gao
- @houshengbo
- @itsmurugappan
- @julz
- @markusthoemmes
- @mattmoor
- @mpetason
- @n3wscott
- @nak3
- @navidshaikh
- @pierDipi
- @rhuss
- @slinkydeveloper
- @tcnghia
- @vaikas
- @yselkowitz
了解更多資訊¶
Knative 是一個開放原始碼專案,社群中的任何人都可以使用、改進和享受。我們很樂意您加入我們!
- 歡迎使用 Knative
- 入門文件
- 範例與示範
- Knative 會議和工作群組
- 問題與錯誤
- Knative 使用者郵寄清單
- Knative 開發郵寄清單
- Twitter 上的 Knative @KnativeProject
- StackOverflow 上的 Knative
- Slack 上的 Knative
- YouTube 上的 Knative