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] 联系我们