使用 YAML 檔案安裝 Knative Eventing¶
本主題說明如何使用 kubectl
CLI 應用 YAML 檔案來安裝 Knative Eventing。
先決條件¶
安裝 Knative 之前,您必須滿足以下先決條件
-
為了進行原型設計,Knative 可在大多數 Kubernetes 的本機部署上運作。例如,您可以使用具有 3 個 CPU 和 4 GB 記憶體的本機單節點叢集。
提示
您可以使用 Knative 快速入門插件 安裝 Knative 的本機發行版本以進行開發。
-
為了進行生產用途,建議
- 如果您的叢集中只有一個節點,則至少需要 6 個 CPU、6 GB 記憶體和 30 GB 的磁碟儲存空間。
- 如果您的叢集中有多個節點,則每個節點至少需要 2 個 CPU、4 GB 記憶體和 20 GB 的磁碟儲存空間。
- 您有一個使用 Kubernetes v1.28 或更新版本的叢集。
- 您已安裝
kubectl
CLI。 - 您的 Kubernetes 叢集必須可以存取網際網路,因為 Kubernetes 需要能夠提取映像檔。若要從私人登錄檔提取,請參閱從私人容器登錄檔部署映像檔。
注意
提供的系統需求僅為建議。您的安裝需求可能會有所不同,取決於您是否使用選用元件,例如網路層。
驗證映像檔簽章¶
Knative 從 1.9 版開始的版本都使用 cosign 簽署。
curl -sSL https://github.com/knative/serving/releases/download/knative-v1.16.0/serving-core.yaml \
| grep 'gcr.io/' | awk '{print $2}' | sort | uniq \
| xargs -n 1 \
cosign verify -o text \
--certificate-identity=signer@knative-releases.iam.gserviceaccount.com \
--certificate-oidc-issuer=https://#
注意
Knative 映像檔以 KEYLESS
模式簽署。若要深入瞭解無金鑰簽署,請參閱 無金鑰簽章。我們發行版本的簽署身分 (Subject) 為 signer@knative-releases.iam.gserviceaccount.com
,而發行者為 https://#
安裝 Knative Eventing¶
若要安裝 Knative Eventing
-
執行下列命令安裝所需的自訂資源定義 (CRD)
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/eventing-crds.yaml
-
執行下列命令安裝 Eventing 的核心元件
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/eventing-core.yaml
資訊
如需 Knative Eventing 中 YAML 檔案的相關資訊,請參閱YAML 檔案說明表。
驗證安裝¶
成功
監視 Knative 元件,直到所有元件的 STATUS
顯示為 Running
或 Completed
。您可以執行以下命令並檢查輸出,來執行此操作
kubectl get pods -n knative-eventing
輸出範例
NAME READY STATUS RESTARTS AGE
eventing-controller-7995d654c7-qg895 1/1 Running 0 2m18s
eventing-webhook-fff97b47c-8hmt8 1/1 Running 0 2m17s
選用:安裝預設通道 (訊息) 層¶
以下索引標籤會展開以顯示安裝預設通道層的指示。請依照您選擇的通道程序操作
以下命令會安裝 KafkaChannel 並在系統命名空間中執行事件路由。預設會使用 knative-eventing
命名空間。
-
執行下列命令來安裝 Kafka 控制器
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
-
執行下列命令來安裝 KafkaChannel 資料平面
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-channel.yaml
-
如果您是從先前的版本升級,請執行下列命令
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-post-install.yaml
警告
此簡易獨立實作在記憶體中執行,不適用於生產案例。
-
執行下列命令來安裝記憶體內通道實作
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/in-memory-channel.yaml
-
執行下列命令來安裝 NATS Streaming 通道
kubectl apply -f https://github.com/knative-extensions/eventing-natss/releases/download/knative-v1.16.0/eventing-natss.yaml
您可以依照設定通道預設值區段中所述的指示,來變更預設的通道實作。
選用:安裝 Broker 層¶
以下索引標籤會展開以顯示安裝 Broker 層的指示。請依照您選擇的 Broker 程序操作
以下命令會安裝 Apache Kafka Broker 並在系統命名空間中執行事件路由。預設會使用 knative-eventing
命名空間。
-
執行下列命令來安裝 Kafka 控制器
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
-
執行下列命令來安裝 Kafka Broker 資料平面
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-broker.yaml
-
如果您是從先前的版本升級,請執行下列命令
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-post-install.yaml
如需詳細資訊,請參閱Kafka Broker 文件。
此 Broker 實作使用通道,並在系統命名空間中執行事件路由元件,提供更小更簡潔的安裝。
-
執行下列命令來安裝此 Broker 實作
kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/mt-channel-broker.yaml
若要自訂使用的 Broker 通道實作,請更新下列 ConfigMap 以指定哪些組態用於哪些命名空間
apiVersion: v1 kind: ConfigMap metadata: name: config-br-defaults namespace: knative-eventing data: default-br-config: | # This is the cluster-wide default broker channel. clusterDefault: brokerClass: MTChannelBasedBroker apiVersion: v1 kind: ConfigMap name: imc-channel namespace: knative-eventing # This allows you to specify different defaults per-namespace, # in this case the "some-namespace" namespace will use the Kafka # channel ConfigMap by default (only for example, you will need # to install kafka also to make use of this). namespaceDefaults: some-namespace: brokerClass: MTChannelBasedBroker apiVersion: v1 kind: ConfigMap name: kafka-channel namespace: knative-eventing
參考的
imc-channel
和kafka-channel
範例 ConfigMap 看起來會像這樣apiVersion: v1 kind: ConfigMap metadata: name: imc-channel namespace: knative-eventing data: channel-template-spec: | apiVersion: messaging.knative.dev/v1 kind: InMemoryChannel --- apiVersion: v1 kind: ConfigMap metadata: name: kafka-channel namespace: knative-eventing data: channel-template-spec: | apiVersion: messaging.knative.dev/v1alpha1 kind: KafkaChannel spec: numPartitions: 3 replicationFactor: 1
警告
為了使用 KafkaChannel,請確定它已安裝在您的叢集上,如此主題先前所述。
- 若要安裝 RabbitMQ Broker,請依照RabbitMQ Knative Eventing Broker README 中的指示操作。
如需詳細資訊,請參閱 GitHub 中的 RabbitMQ Broker。
安裝選用的 Eventing 擴充功能¶
以下索引標籤會展開以顯示安裝每個 Eventing 擴充功能的指示。
-
執行下列命令來安裝 Kafka 控制器
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
-
執行下列命令來安裝 Kafka 接收器資料平面
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-sink.yaml
如需詳細資訊,請參閱Kafka 接收器文件。
單一租用戶 GitHub 來源會為每個 GitHub 來源建立一個 Knative 服務。
多租用戶 GitHub 來源只會建立一個 Knative 服務,此服務會處理叢集中的所有 GitHub 來源。此來源不支援記錄或追蹤組態。
-
若要安裝單一租用戶 GitHub 來源,請執行下列命令
kubectl apply -f https://github.com/knative-extensions/eventing-github/releases/download/knative-v1.16.0/github.yaml
-
若要安裝多租用戶 GitHub 來源,請執行下列命令
kubectl apply -f https://github.com/knative-extensions/eventing-github/releases/download/knative-v1.16.0/mt-github.yaml
若要深入瞭解,請嘗試GitHub 來源範例
-
執行下列命令來安裝 Apache Kafka 來源
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-source.yaml
-
如果您是從先前的版本升級,請執行下列命令
kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-post-install.yaml
若要深入瞭解,請嘗試Apache Kafka 來源範例。
-
執行下列命令來安裝 Apache CouchDB 來源
kubectl apply -f https://github.com/knative-extensions/eventing-couchdb/releases/latest/download/couchdb.yaml
若要深入瞭解,請參閱Apache CouchDB 來源文件。
-
執行下列命令來安裝 VMware 來源和繫結
kubectl apply -f https://github.com/vmware-tanzu/sources-for-knative/releases/latest/download/release.yaml
若要深入瞭解,請嘗試VMware 來源和繫結範例。