Forecastle を使用すると、実行中のアプリケーションを確認し、Kubernetes 上でアクセスできるコントロール パネルにアクセスできます。
Forecastle は、Kubernetes 上にデプロイされたアプリケーションを表示およびアクセスするための便利なゲートウェイとして機能する統合コントロール パネルを提供します。監視ツール、CI/CD パイプライン、その他のアプリケーションのいずれであっても、Forecastle はそれらをすべて 1 か所で簡単に利用できるようにします。
Forecastle は、Kubernetes 環境でのアプリケーションの管理とアクセシビリティを合理化するために設計されたさまざまな機能を備えています。主な機能は次のとおりです。
包括的なアプリのリスト: Forecastle は、ConfigMap で指定されたすべての名前空間からアプリを集約して表示し、リソースの一元的なビューを提供します。
検索機能: 直感的な検索機能で特定のアプリケーションをすばやく見つけ、ユーザー エクスペリエンスと効率を向上させます。
名前空間のグループ化: アプリはそれぞれの名前空間ごとにきちんと整理およびグループ化されているため、ナビゲーションと管理がより簡単になります。
カスタマイズ可能なヘッダー: タイトルのカスタマイズや配色などの構成可能なヘッダー オプションを使用して、Forecastle ダッシュボードの外観と操作性を調整します。
複数のインスタンスのサポート: Forecastle は、複数のインスタンスをサポートし、多様で複雑な導入シナリオに対応するように設計されています。
カスタム アプリの統合: Kubernetes 以外のアプリケーションや外部アプリケーションをダッシュボードに簡単に追加して、ツールとリソースのより包括的な概要を確認できます。
ForecastleApp CRD : ForecastleApp カスタム リソース定義を利用してカスタム アプリケーションを動的に追加し、ダッシュボードの柔軟性をさらに強化します。
カスタム グループ化と URL : アプリケーションをカスタム グループに整理し、カスタマイズされたナビゲーションとアクセシビリティのために特定の URL を割り当てます。
アプリの詳細情報: 各アプリケーションには詳細情報が付属しており、洞察と重要な詳細が一目でわかります。
このセクションは、クラスターに Forecastle をデプロイすることを目的とした管理者を対象としています。 Forecastle は、Kubernetes と OpenShift プラットフォームの両方に簡単に対応できる柔軟な導入オプションを提供します。
Forecastle をデプロイするには、従来のマニフェストを使用するか、Helm チャートを使用するかを選択できます。両方の方法の詳細な手順を以下に示し、展開プロセスをガイドします。
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 にアクセスするには、クラスターの Ingress 構成に基づいて Ingress を構成する必要があることに注意してください。
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 をカスタマイズできます。以下に設定可能なフィールドを示します。
分野 | 説明 | デフォルト | タイプ |
---|---|---|---|
名前空間セレクター | ハードコードされた名前空間とラベル セレクターの組み合わせを使用する、きめ細かい名前空間セレクター | 任意: true | 名前空間セレクター |
ヘッダー背景 | ヘッダーの背景色(CSSで指定) | ヌル | 弦 |
ヘッダー前景 | ヘッダーの前景色(CSSで指定) | ヌル | 弦 |
タイトル | 船首楼ダッシュボードのタイトル | 「予報城・スタカター」 | 弦 |
インスタンス名 | 船首楼インスタンスの名前 | 「」 | 弦 |
カスタムアプリ | 船首楼インスタンスに追加するカスタム アプリのリスト | {} | []カスタムアプリ |
crd有効 | ForecastleApp CRD を有効または無効にします | 真実 | ブール |
特定の名前空間をリストするか、ラベル セレクターを使用して、Forecastle が監視する名前空間を選択します。
分野 | 説明 | デフォルト | タイプ |
---|---|---|---|
どれでも | 名前空間を制限するリストとは対照的に、すべての名前空間が選択されているかどうかを説明するブール値 | 間違い | ブール |
ラベルセレクター | kubernetesのmetav1.LabelSelectorタイプに基づいて名前空間をフィルタリングする | ヌル | metav1.LabelSelector |
一致名 | 名前空間名のリスト | ヌル | []弦 |
注: labelSelector
とmatchNames
両方を指定すると、Forecastle は一致したすべての名前空間の結合を取得して使用します。
Kubernetes 以外のアプリまたは外部アプリを Forecastle に追加できるようにします。これは、アプリが kubernetes 上とその外の両方に分散されている場合に特に非常に便利な機能です。構成内でカスタム アプリの配列を渡すことができます。
分野 | 説明 | タイプ |
---|---|---|
名前 | カスタムアプリの名前 | 弦 |
アイコン | カスタムアプリのアイコンのURL | 弦 |
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 という名前の 2 つのインスタンスがある場合、Ingress のインスタンスのアノテーションにdev-dashboard,prod-dashboard
追加すると、アプリケーションが両方のダッシュボードに表示されるようになります。
Helm での一意の名前付け: Helm 経由で Forecastle インスタンスをデプロイする場合は、各インスタンスに一意のnameOverride
値があることを確認してください (デフォルトは Forecastle)。この手順は、ClusterRole や ClusterRoleBinding などのグローバル リソース間の競合を回避するために重要です。
このセクションは、Kubernetes 環境で Forecastle を使用することを目的としたユーザーを対象としています。
Forecastle は、Kubernetes Ingress に追加されたアノテーションを通じてアプリケーションを識別します。必要な注釈を追加する方法は次のとおりです。
注釈 | 説明 | 必須 |
---|---|---|
forecastle.stakater.com/expose | Forecastle に表示したいアプリの Ingress に値true を指定してこれを追加します。 | true |
forecastle.stakater.com/icon | アプリケーションのアイコン/画像 URL。アイコン/ロゴ/画像コレクション リポジトリ Icons | 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 がアプリケーションを動的に統合する機能を強化するもう 1 つの方法は、ForecastleApp Custom Resource Definition (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
この構成は、指定された Ingress リソースからアプリの URL を直接取得するように Forecastle に指示し、デプロイと構成を簡素化します。
注: CRD 機能を使用するには、Forecastle 構成でcrdEnabled: true
設定するか、Helm チャートで有効にして、CRD 機能が有効になっていることを確認します。
バグを報告したり、機能リクエストをファイルしたりするには、問題トラッカーを使用してください。
PRの方も大歓迎です。一般に、「フォーク アンド プル」Git ワークフローに従います。
注: プル リクエストを行う前に、必ず「アップストリーム」から最新のものをマージしてください。
質問がありますか? GitHub の問題を提出します。
#tools-imc チャンネルに参加して、Forecastle について話し合ってください。
終了したプル リクエストをご覧ください。
Apache2 © Stakater
「フォアキャッスル」という用語は海事用語に由来しており、フォアマストのすぐ前の船首に位置する船の上甲板を指します。歴史的に、ここは船乗りが航海し、前方の広大な海を観察する場所です。
私たちのプロジェクトの文脈では、Kubernetes の世界で Forecastle が果たす役割の比喩としてこの名前を採用しました。船の船首楼と同じように、私たちの船首楼は中央の監視および制御パネルとして機能します。これにより、ユーザーは、Kubernetes 上で実行中のすべてのアプリケーション、特に指定されたアノテーションが付けられたアプリケーションの包括的なビューを得ることができます。 Forecastle は Kubernetes ダッシュボードとして設計されており、船員が船首から海を調査するのと同じように、デプロイされたアプリケーションへの明確なビューと簡単なアクセスを提供します。
Forecastle
Stakater によって保守されています。気に入ったでしょうか? [email protected] までお知らせください。
当社の他のプロジェクトをご覧いただくか、専門的なサービスやご質問の場合は [email protected] までご連絡ください。