Knative Event Mesh Backstage 外掛程式¶
資訊
如需安裝指示,請參閱外掛程式安裝文件。
Knative Event Mesh 外掛程式是一個 Backstage 外掛程式,可讓您檢視和管理 Knative Eventing 資源。此外掛程式會與在 Kubernetes 叢集中執行的特殊後端通訊,並與 Kubernetes API 伺服器通訊。
Backstage 是一個建構開發人員入口網站的平台。它提供一種統一的方式來管理和視覺化開發人員在其日常工作中使用的不同資源。
雖然 Backstage 並非設計為下一代 Kubernetes 儀表板,但它可以視覺化並部分管理 Knative 資源。這些資源將會是唯讀的,並且專注於與開發人員相關的內容。
資訊
此外掛程式的示範設定可在https://github.com/aliok/knative-backstage-demo取得。
運作方式¶
外掛程式是 Backstage 執行個體的前端部分。它們負責呈現 UI 並與後端通訊。後端負責與 Kubernetes API 伺服器通訊,並提供前端所需的資訊。
此外掛程式利用 Backstage 的 實體提供者 和 實體處理器 概念。實體提供者負責從後端擷取資源,實體處理器負責處理資源並使其可供前端使用。提供者是與自訂後端通訊的部分。
此外掛程式從後端擷取 Knative EventType、Broker 和 Trigger 資源。它不會直接擷取原始 Kubernetes 資源,而是會收集更方便使用者使用的資料表示。這表示會排除某些欄位,某些欄位會為了清楚起見而合併,而其他欄位會轉換為更容易在此介面中理解。
顯示內容¶
Knative 觸發器 (Trigger) 可以指向任何可定址 (Addressable) 的項目,甚至直接指向 URL。由於 Backstage 端不知道如何處理這些,因此此外掛程式只會顯示觸發器的訂閱者 (subscriber) (如果它已在 Backstage 中註冊)。對於此關聯,我們使用 Backstage 實體和 Kubernetes 資源中的 backstage.io/kubernetes-id
註釋。
比對如何運作的文件,請參閱 Event Mesh 外掛程式 README 檔案中的圖表。
此整合的真正酷炫之處在於 Backstage 顯示圖表的能力。例如,您可以在圖表中看到 EventTypes、Brokers 和 Trigger 訂閱者之間的關係。
Backstage 中的圖表
安全性¶
Backstage 安全性
與其他 Backstage 外掛程式類似,我們希望外掛程式管理員能夠透過設定必要的項目 (例如後端 URL 和權杖) 來設定此外掛程式。這與 Backstage Kubernetes 外掛程式的方法類似,使用者需要在其中提供 URL 和權杖。
權杖會儲存在 Backstage 設定中,並隨著每個請求傳遞至後端。後端會使用此權杖向 Kubernetes API 伺服器驗證。此權杖是一個服務帳戶權杖,具有列出叢集中 Knative Eventing 資源的必要權限。
...
catalog:
providers:
knativeEventMesh:
dev:
token: '${KNATIVE_EVENT_MESH_TOKEN}'
baseUrl: "http://eventmesh-backend.knative-eventing.svc:8080"
schedule: # optional; same options as in TaskScheduleDefinition
# supports cron, ISO duration, "human duration" as used in code
frequency: { minutes: 1 }
# supports ISO duration, "human duration" as used in code
timeout: { minutes: 1 }
token
取自 KNATIVE_EVENT_MESH_TOKEN
環境變數。Backstage 支援設定檔中的環境變數,因此您可以在啟動 Backstage 執行個體之前將權杖設定為環境變數。實際上,Backstage 還有其他機制,包括設定檔、檔案包含和其他機制。您可以查看 Backstage 文件以取得更多資訊。
如何在 外掛程式安裝文件中說明如何建立 ServiceAccount
、ClusterRole
、ClusterRoleBinding
、Secret
以及該 Secret
的權杖。
使用方法¶
此外掛程式將顯示叢集中的所有 Broker
和 EventType
資源。Broker
將會顯示為 Backstage Component
s,而 EventType
將會顯示為 Backstage API
s。
Trigger
的訂閱者 (subscriber) 將會顯示為 Backstage Component
。但是,只有在符合以下條件時才會顯示:
- 已在 Backstage 中註冊
- 將
backstage.io/kubernetes-id
註釋設定為 Kubernetes 資源的名稱