クラスターまたは名前空間のデフォルトを使ってチャンネルを作成する¶
開発者は、チャンネルオブジェクトのインスタンスを作成することで、どのサポートされる実装タイプでもチャンネルを作成できます。
チャンネルを作成するには
-
次のテンプレートを使って チャンネルオブジェクト の YAML ファイルを作成します
ここでapiVersion: messaging.knative.dev/v1 kind: Channel metadata: name: <example-channel> namespace: <namespace>
<example-channel>
は作成するチャンネルの名前です。<namespace>
はターゲットの名前空間の名前です。
-
以下のコマンドを実行して YAML ファイルを適用します
ここで、kubectl apply -f <filename>.yaml
<filename>
は前のステップで作成したファイルの名前です。
default
名前空間にこのオブジェクトを作成した場合、チャンネルのタイプとデフォルト にあるデフォルトの ConfigMap に従って InMemoryChannel チャンネル実装になります。
チャンネルオブジェクトは作成されると、ミューテート許可 Webhook が 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>
は作成するチャンネルの名前です。<namespace>
はターゲットの名前空間の名前です。<channel-template-kind>
は、デフォルトの ConfigMap に基づいて InMemoryChannel または KafkaChannel といったチャンネルの種類です。チャンネルのタイプとデフォルト の例をご覧ください。
注意
spec.channelTemplate
プロパティは、ユーザーではなくデフォルトのチャンネルメカニズムによって設定されるため、作成後は変更できません。
チャンネルコントローラーは spec.channelTemplate
に基づいてバッキングチャンネルインスタンスを作成します。
このメカニズムを使用すると、一般的なチャンネルオブジェクトと InMemoryChannel オブジェクトという 2 つのオブジェクトが作成されます。一般的なオブジェクトはサブスクリプションをコピーし、ステータスを InMemoryChannel オブジェクトのものに設定することで、InMemoryChannel オブジェクトのプロキシとして機能します。
注意
デフォルトは、チャンネルまたはシーケンスの初期作成時にのみ Webhook で適用されます。デフォルト設定を変更した場合、新しいデフォルトは新しく作成されたチャンネル、ブローカー、またはシーケンスにのみ適用されます。既存のリソースが新しい設定を使用して自動的に更新されることはありません。