Forecastle 可讓您存取控制面板,您可以在其中查看正在運行的應用程式並在 Kubernetes 上存取它們。
Forecastle 提供統一的控制面板,作為檢視和存取部署在 Kubernetes 上的應用程式的便利網關。無論是監控工具、CI/CD 管道還是其他應用程序,Forecastle 都可以在一個中心位置將它們全部帶到您的指尖。
Forecastle 擁有一系列旨在簡化 Kubernetes 環境中應用程式的管理和可存取性的功能。主要特點包括:
全面的應用程式清單:Forecastle 聚合並顯示 ConfigMap 中指定的所有命名空間中的應用程序,提供資源的集中視圖。
搜尋功能:透過直覺的搜尋功能快速定位特定應用程序,增強使用者體驗和效率。
命名空間分組:應用程式按各自的命名空間整齊地組織和分組,使導航和管理更加簡單。
可自訂的標題:使用可設定的標題選項(包括標題自訂和配色方案)自訂 Forecastle 儀表板的外觀和風格。
支援多個實例:Forecastle 旨在支援多個實例,以適應各種複雜的部署場景。
自訂應用程式整合:輕鬆將非 Kubernetes 或外部應用程式新增至儀表板,以便更全面地概述您的工具和資源。
ForecastleApp CRD :利用 ForecastleApp 自訂資源定義動態添加自訂應用程序,進一步增強儀表板的靈活性。
自訂分組和 URL :將您的應用程式組織到自訂群組中,並分配特定的 URL 以實現客製化的導航和可存取性。
詳細的應用程式資訊:每個應用程式都附帶詳細信息,一目了然地提供見解和基本細節。
本部分適用於希望在其叢集上部署 Forecastle 的管理員。 Forecastle 提供靈活的部署選項,輕鬆適應 Kubernetes 和 OpenShift 平台。
您可以選擇使用傳統清單或透過 Helm 圖表部署 Forecastle。下面提供了這兩種方法的詳細說明,以引導您完成部署過程。
您可以透過在叢集上執行以下命令來取得 Forecastle:
對於 Kubernetes:
kubectl apply -f https://raw.githubusercontent.com/stakater/Forecastle/master/deployments/kubernetes/forecastle.yaml
對於 OpenShift:
kubectl apply -f https://raw.githubusercontent.com/stakater/Forecastle/master/deployments/openshift/forecastle.yaml
對於 Kubernetes 環境,您可以使用下列 port-forward 指令存取 Forecastle 儀表板:
kubectl port-forward svc/forecastle 8080:8080
請注意,您需要根據叢集的入口配置將入口配置為從叢集外部存取 Forecastle。
對於 OpenShift 環境,將為 Forecastle 服務建立預設路由。您可以使用路由 URL 存取儀表板。
oc get route forecastle
修改Forecastle ConfigMap 中的namespaceSelector
鍵以列出您希望Forecastle 監控的命名空間。有關詳細說明,請參閱名稱空間選擇器配置以取得說明。
如果您在 Kubernetes 叢集上設定了 Helm,請使用 Helm 圖表部署 Forecastle。該圖表位於此處。
如果需要,調整values.yaml中的配置並執行以下命令:
helm install forecastle ./deployments/kubernetes/chart/forecastle
Forecastle 簡化了 Kubernetes 和 OpenShift 上應用程式的發現和管理。它利用入口上的特定註釋並提供各種定製配置選項。
使用 Helm 部署時,您可以使用 ConfigMap 或 value.yaml 檔案自訂 Forecastle。以下是可配置欄位:
場地 | 描述 | 預設 | 類型 |
---|---|---|---|
命名空間選擇器 | 細粒度命名空間選擇器,它使用硬編碼命名空間和標籤選擇器的組合 | 任意:真實 | 命名空間選擇器 |
標題背景 | header的背景顏色(以CSS方式指定) | 無效的 | 細繩 |
標題前景 | header的前景色(以CSS方式指定) | 無效的 | 細繩 |
標題 | 艏樓儀表板的標題 | 《預報-史塔卡特》 | 細繩 |
實例名 | 艏樓實例的名稱 | ”” | 細繩 |
客製化應用程式 | 您想要新增到艏樓實例的自訂應用程式列表 | {} | []自訂應用程式 |
啟用crd | 啟用或停用ForecastleApp CRD | 真的 | 布林值 |
透過列出特定命名空間或使用標籤選擇器來選擇 Forecastle 要監視的命名空間。
場地 | 描述 | 預設 | 類型 |
---|---|---|---|
任何 | 布林值,描述是否選擇所有名稱空間,而不是限制它們的列表 | 錯誤的 | 布林值 |
標籤選擇器 | 基於 kubernetes metav1.LabelSelector 類型過濾命名空間 | 無效的 | metav1.LabelSelector |
匹配名稱 | 命名空間名稱列表 | 無效的 | []細繩 |
注意:如果您同時指定labelSelector
和matchNames
,Forecastle 將採用所有符合的命名空間的並集並使用它們。
允許將非 Kubernetes 或外部應用程式新增至 Forecastle。這是一個非常有用的功能,特別是當您的應用程式同時分佈在 kubernetes 上和 kubernetes 之外時。您可以在配置中傳遞一系列自訂應用程式。
場地 | 描述 | 類型 |
---|---|---|
姓名 | 自訂應用程式的名稱 | 細繩 |
圖示 | 自訂應用程式圖示的 URL | 細繩 |
網址 | 自訂應用程式的 URL | 細繩 |
團體 | 自訂應用程式群組 | 細繩 |
特性 | 應用程式作為地圖的其他屬性 | 地圖[字串]字串 |
網路受限 | 應用程式是否受網路限制 | 布林值 |
以下是如何使用命名空間選擇器和自訂應用程式的組合來配置 Forecastle 的範例:
namespaceSelector :
labelSelector :
matchLabels :
component : redis
matchExpressions :
- {key: tier, operator: In, values: [cache]}
matchNames :
- test
title :
headerBackground :
headerForeground : " #ffffff "
instanceName : " Hello "
crdEnabled : false
customApps :
- name : Hello
icon : http://hello
url : http://helloicon
group : Test
properties :
Version : 1.0
此配置示範如何設定命名空間選擇器、自訂標頭的外觀、啟用或停用 CRD 功能以及新增具有特定屬性的自訂應用程式。
Forecastle 的設計允許運行多個實例,從而在不同環境中提供可擴展性和靈活性。以下是如何有效擴展 Forecastle 的規模。
基本部署:要執行多個 Forecastle 實例,請將每個實例部署在單獨的命名空間中。為每個實例指定一個名稱空間清單以監視入口。
命名實例配置:為了更好地控制在特定實例中顯示哪些應用程式(無論其命名空間如何),請使用 Forecastle 配置中的instanceName
設定為每個 Forecastle 實例配置唯一的名稱。
應用程式特定的實例顯示:命名實例後,在入口上使用forecastle.stakater.com/instance
註解。此註解指示哪個應用程式出現在哪個 Forecastle 實例中。
多實例顯示:單一應用程式(入口)可以出現在多個 Forecastle 儀表板中。例如,如果您有兩個名為 dev-dashboard 和 prod-dashboard 的實例,則在入口實例註解中新增dev-dashboard,prod-dashboard
將確保應用程式在兩個儀表板上都可見。
Helm 中的唯一命名:透過 Helm 部署 Forecastle 實例時,請確保每個實例都有唯一的nameOverride
值(預設為forecastle)。此步驟對於避免 ClusterRole 和 ClusterRoleBinding 等全域資源之間的衝突至關重要。
本部分適用於希望在 Kubernetes 環境中使用 Forecastle 的使用者。
Forecastle 透過新增至 Kubernetes 入口的註解來識別應用程式。以下是添加必要註釋的方法:
註解 | 描述 | 必需的 |
---|---|---|
forecastle.stakater.com/expose | 將其值新增至true 在 Forecastle 中顯示的應用程式的入口 | true |
forecastle.stakater.com/icon | 應用程式的圖標/圖像 URL;圖標/徽標/圖像集合存儲庫圖標 | false |
forecastle.stakater.com/appName | 您的應用程式的自訂名稱。如果您不想使用入口名稱,請使用 | false |
forecastle.stakater.com/group | 自訂群組名稱。如果您希望應用程式顯示在與其運行的命名空間不同的群組中,請使用 | false |
forecastle.stakater.com/instance | 您希望此應用程式出現的艏樓實例的名稱的逗號分隔清單。當您有多個艏樓儀表板時使用 | false |
forecastle.stakater.com/url | 艏樓應用程式的 URL(這將覆蓋入口 URL)。它必須以一個方案開始,即http:// 或https:// | false |
forecastle.stakater.com/properties | 屬性的key:value 對的逗號分隔清單。這將顯示為應用程式的可擴展列表 | false |
forecastle.stakater.com/network-restricted | 指定應用程式是否受網路限制(true 或 false) | false |
Forecastle 增強您動態整合應用程式能力的另一種方法是使用 ForecastleApp 自訂資源定義 (CRD)。此功能增加了一層彈性,可讓您將應用程式配置與 Ingress 設定和 Forecastle 自己的配置分開。
創建 ForecastleApp:
若要建立 ForecastleApp,請使用下列範本作為指南。此配置可讓您指定應用程式名稱、群組、圖示、URL 和其他屬性:
apiVersion : forecastle.stakater.com/v1alpha1
kind : ForecastleApp
metadata :
name : app-name
spec :
name : My Awesome App
group : dev
icon : https://icon-url
url : http://app-url
networkRestricted : false
properties :
Version : " 1.0 "
instance : " " # Optional
ForecastleApp CRD 支援從某些 Kubernetes 資源自動探索 URL,例如:
若要利用此功能,請將 urlFrom 欄位新增至 ForecastleApp 規格中,如下所示:請注意,您想要發現的資源類型必須與ForecastleApp
CR 位於相同命名空間中。
apiVersion : forecastle.stakater.com/v1alpha1
kind : ForecastleApp
metadata :
name : app-name
spec :
name : My Awesome App
group : dev
icon : https://icon-url
urlFrom : # This is new
ingressRef :
name : my-app-ingress
此組態指示 Forecastle 直接從指定的 Ingress 資源取得應用程式 URL,從而簡化了部署和設定。
注意:若要使用 CRD 功能,請確保透過在 Forecastle 設定中設定crdEnabled: true
或在 Helm 圖表中啟用它來啟用它。
請使用問題追蹤器報告任何錯誤或文件功能請求。
PR 是最受歡迎的。一般來說,我們遵循「fork-and-pull」Git 工作流程。
注意:在發出拉取請求之前,請務必合併來自「上游」的最新內容!
有問題嗎?提交 GitHub 問題。
加入 #tools-imc 頻道並與我們討論 Forecastle
查看我們已關閉的 Pull 請求。
Apache2 © Stakater
「艏樓」一詞源自航海詞彙,指的是位於船頭、前桅前方的船舶上甲板。歷史上,這裡是水手們航行和觀察前方浩瀚大海的地方。
在我們的專案中,我們採用這個名稱來比喻 Forecastle 在 Kubernetes 世界中扮演的角色。就像船舶的艏樓一樣,我們的艏樓充當中央觀察和控制面板。它為用戶提供了 Kubernetes 上所有正在運行的應用程式的全面視圖,特別是那些標有指定註釋的應用程式。 Forecastle 被設計為您的 Kubernetes 儀表板,提供清晰的視圖並輕鬆訪問您已部署的應用程序,就像水手從船頭測量大海一樣。
Forecastle
由 Stakater 維護。喜歡嗎?請透過 [email protected] 告知我們
請參閱我們的其他項目,如果需要專業服務和疑問,請透過 [email protected] 與我們