使用叢集或命名空間預設值建立 Channel¶
開發人員可以透過建立 Channel 物件的實例,來建立任何支援實作類型的 Channel。
若要建立 Channel
-
使用以下範本,為 Channel 物件建立 YAML 檔案
其中apiVersion: messaging.knative.dev/v1 kind: Channel metadata: name: <example-channel> namespace: <namespace>
<example-channel>
是您要建立的 Channel 的名稱。<namespace>
是您的目標命名空間的名稱。
-
執行命令套用 YAML 檔案
其中kubectl apply -f <filename>.yaml
<filename>
是您在上一個步驟中建立的檔案名稱。
如果您在 default
命名空間中建立此物件,根據 Channel 類型和預設值 中的預設 ConfigMap 範例,則它是 InMemoryChannel Channel 實作。
在建立 Channel 物件後,變更的准入 Webhook 會根據預設的 Channel 實作設定 spec.channelTemplate
。
apiVersion: messaging.knative.dev/v1
kind: Channel
metadata:
name: <example-channel>
namespace: <namespace>
spec:
channelTemplate:
apiVersion: messaging.knative.dev/v1
kind: <channel-template-kind>
<example-channel>
是您要建立的 Channel 的名稱。<namespace>
是您的目標命名空間的名稱。<channel-template-kind>
是 Channel 的類型,例如 InMemoryChannel 或 KafkaChannel,根據預設的 ConfigMap。請參閱 Channel 類型和預設值 中的範例。
注意
spec.channelTemplate
屬性在建立後無法變更,因為它是由預設的 Channel 機制設定,而不是由使用者設定。
Channel 控制器會根據 spec.channelTemplate
建立後端 Channel 實例。
當使用此機制時,會建立兩個物件;一個通用的 Channel 物件和一個 InMemoryChannel 物件。通用物件充當 InMemoryChannel 物件的 Proxy,方法是將其訂閱複製到 InMemoryChannel 物件,並將其狀態設定為 InMemoryChannel 物件的狀態。
注意
預設值僅在首次建立 Channel 或 Sequence 時由 Webhook 套用。如果變更預設設定,則新的預設值只會套用到新建立的 Channel、Broker 或 Sequence。現有的資源不會自動更新以使用新的設定。