跳至內容

使用 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 簽署。

  1. 安裝 cosignjq

  2. 從資訊清單中提取映像檔並驗證簽章。

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

  1. 執行下列命令安裝所需的自訂資源定義 (CRD)

    kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/eventing-crds.yaml
    
  2. 執行下列命令安裝 Eventing 的核心元件

    kubectl apply -f https://github.com/knative/eventing/releases/download/knative-v1.16.0/eventing-core.yaml
    

    資訊

    如需 Knative Eventing 中 YAML 檔案的相關資訊,請參閱YAML 檔案說明表

驗證安裝

成功

監視 Knative 元件,直到所有元件的 STATUS 顯示為 RunningCompleted。您可以執行以下命令並檢查輸出,來執行此操作

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 命名空間。

  1. 執行下列命令來安裝 Kafka 控制器

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
    
  2. 執行下列命令來安裝 KafkaChannel 資料平面

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-channel.yaml
    
  3. 如果您是從先前的版本升級,請執行下列命令

    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
    
  1. 為 Kubernetes 安裝 NATS Streaming.

  2. 執行下列命令來安裝 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 命名空間。

  1. 執行下列命令來安裝 Kafka 控制器

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
    
  2. 執行下列命令來安裝 Kafka Broker 資料平面

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-broker.yaml
    
  3. 如果您是從先前的版本升級,請執行下列命令

    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-channelkafka-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,請確定它已安裝在您的叢集上,如此主題先前所述。

如需詳細資訊,請參閱 GitHub 中的 RabbitMQ Broker

安裝選用的 Eventing 擴充功能

以下索引標籤會展開以顯示安裝每個 Eventing 擴充功能的指示。

  1. 執行下列命令來安裝 Kafka 控制器

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-controller.yaml
    
  2. 執行下列命令來安裝 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 來源範例

  1. 執行下列命令來安裝 Apache Kafka 來源

    kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.16.0/eventing-kafka-source.yaml
    
  2. 如果您是從先前的版本升級,請執行下列命令

    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 來源和繫結範例

我們使用分析和 Cookie 來了解網站流量。您使用我們網站的資訊會與 Google 分享,以達到此目的。了解更多。