Forecastle bietet Ihnen Zugriff auf ein Control Panel, in dem Sie Ihre laufenden Anwendungen sehen und auf Kubernetes darauf zugreifen können.
Forecastle bietet ein einheitliches Control Panel, das als praktisches Gateway für die Anzeige und den Zugriff auf Ihre auf Kubernetes bereitgestellten Anwendungen dient. Ganz gleich, ob es sich um Überwachungstools, CI/CD-Pipelines oder andere Anwendungen handelt, mit Forecastle haben Sie sie alle an einem zentralen Ort zur Hand.
Forecastle verfügt über eine Reihe von Funktionen, die darauf ausgelegt sind, die Verwaltung und Zugänglichkeit von Anwendungen in Kubernetes-Umgebungen zu optimieren. Zu den Hauptmerkmalen gehören:
Umfassende App-Liste : Forecastle aggregiert und zeigt Apps aus allen in der ConfigMap angegebenen Namespaces an und bietet so eine zentrale Ansicht Ihrer Ressourcen.
Suchfunktion : Finden Sie schnell bestimmte Anwendungen mit einer intuitiven Suchfunktion und verbessern Sie so die Benutzererfahrung und Effizienz.
Namespace-Gruppierung : Apps sind übersichtlich organisiert und nach ihren jeweiligen Namespaces gruppiert, was die Navigation und Verwaltung einfacher macht.
Anpassbare Kopfzeile : Passen Sie das Erscheinungsbild Ihres Forecastle-Dashboards mit konfigurierbaren Kopfzeilenoptionen an, einschließlich Titelanpassung und Farbschemata.
Unterstützung für mehrere Instanzen : Forecastle ist so konzipiert, dass es mehrere Instanzen unterstützt und unterschiedliche und komplexe Bereitstellungsszenarien berücksichtigt.
Integration benutzerdefinierter Apps : Fügen Sie ganz einfach Nicht-Kubernetes- oder externe Anwendungen zu Ihrem Dashboard hinzu, um einen umfassenderen Überblick über Ihre Tools und Ressourcen zu erhalten.
ForecastleApp CRD : Nutzen Sie die benutzerdefinierte Ressourcendefinition von ForecastleApp, um benutzerdefinierte Anwendungen dynamisch hinzuzufügen und so die Flexibilität des Dashboards weiter zu verbessern.
Benutzerdefinierte Gruppierung und URLs : Organisieren Sie Ihre Anwendungen in benutzerdefinierten Gruppen und weisen Sie spezifische URLs für maßgeschneiderte Navigation und Zugänglichkeit zu.
Detaillierte App-Informationen : Jede Anwendung enthält detaillierte Informationen, die Einblicke und wichtige Details auf einen Blick bieten.
Dieser Abschnitt richtet sich an Administratoren, die Forecastle auf ihren Clustern bereitstellen möchten. Forecastle bietet flexible Bereitstellungsoptionen und unterstützt problemlos sowohl Kubernetes- als auch OpenShift-Plattformen.
Sie haben die Wahl, Forecastle über herkömmliche Manifeste oder über Helm-Charts bereitzustellen. Nachfolgend finden Sie detaillierte Anweisungen für beide Methoden, die Sie durch den Bereitstellungsprozess führen.
Sie können Forecastle erhalten, indem Sie den folgenden Befehl auf Ihrem Cluster ausführen:
für Kubernetes:
kubectl apply -f https://raw.githubusercontent.com/stakater/Forecastle/master/deployments/kubernetes/forecastle.yaml
für OpenShift:
kubectl apply -f https://raw.githubusercontent.com/stakater/Forecastle/master/deployments/openshift/forecastle.yaml
Für Kubernetes-Umgebungen können Sie den folgenden Port-Forward-Befehl verwenden, um auf das Forecastle-Dashboard zuzugreifen:
kubectl port-forward svc/forecastle 8080:8080
Bitte beachten Sie, dass Sie den Ingress entsprechend der Ingress-Konfiguration Ihres Clusters konfigurieren müssen, um von außerhalb des Clusters auf Forecastle zugreifen zu können.
Für OpenShift-Umgebungen wird eine Standardroute für den Forecastle-Dienst erstellt. Sie können über die Routen-URL auf das Dashboard zugreifen.
oc get route forecastle
Ändern Sie den namespaceSelector
-Schlüssel in der Forecastle-ConfigMap, um die Namespaces aufzulisten, die Forecastle überwachen soll. Ausführliche Anweisungen finden Sie unter Namespace-Selektorkonfiguration.
Wenn Sie Helm auf Ihrem Kubernetes-Cluster konfiguriert haben, stellen Sie Forecastle mithilfe des Helm-Diagramms bereit. Die Tabelle befindet sich hier.
Passen Sie bei Bedarf die Konfiguration in der Datei „values.yaml“ an und führen Sie den folgenden Befehl aus:
helm install forecastle ./deployments/kubernetes/chart/forecastle
Forecastle vereinfacht die Erkennung und Verwaltung von Anwendungen auf Kubernetes und OpenShift. Es nutzt spezifische Anmerkungen zu Eingängen und bietet verschiedene Konfigurationsoptionen zur individuellen Anpassung.
Sie können Forecastle bei der Bereitstellung mit Helm entweder mithilfe einer ConfigMap oder der Datei „values.yaml“ anpassen. Nachfolgend sind die konfigurierbaren Felder aufgeführt:
Feld | Beschreibung | Standard | Typ |
---|---|---|---|
NamespaceSelector | Ein feinkörniger Namespace-Selektor, der eine Kombination aus hartcodierten Namespaces und Label-Selektoren verwendet | irgendein: wahr | NamespaceSelector |
headerHintergrund | Hintergrundfarbe des Headers (auf CSS-Art angegeben) | null | Zeichenfolge |
headerForeground | Vordergrundfarbe des Headers (auf CSS-Art angegeben) | null | Zeichenfolge |
Titel | Titel für das Vorschiff-Dashboard | „Forecastle – Stakater“ | Zeichenfolge |
Instanzname | Name der Backinstanz | „“ | Zeichenfolge |
benutzerdefinierte Apps | Eine Liste benutzerdefinierter Apps, die Sie der Backinstanz hinzufügen möchten | {} | []BenutzerdefinierteApp |
crdEnabled | Aktiviert oder deaktiviert ForecastleApp CRD | WAHR | bool |
Wählt Namespaces aus, die Forecastle überwachen soll, entweder durch Auflisten bestimmter Namespaces oder mithilfe von Label-Selektoren.
Feld | Beschreibung | Standard | Typ |
---|---|---|---|
beliebig | Boolescher Wert, der beschreibt, ob alle Namespaces ausgewählt werden, im Gegensatz zu einer Liste, die sie einschränkt | FALSCH | bool |
labelSelector | Filtern Sie Namespaces basierend auf dem Kubernetes-Typ metav1.LabelSelector | null | metav1.LabelSelector |
matchNames | Liste der Namespace-Namen | null | []Zeichenfolge |
Hinweis: Wenn Sie sowohl labelSelector
als auch matchNames
angeben, nimmt Forecastle eine Vereinigung aller übereinstimmenden Namespaces und verwendet sie.
Ermöglicht das Hinzufügen von Nicht-Kubernetes- oder externen Apps zu Forecastle. Dies ist eine äußerst nützliche Funktion, insbesondere wenn Ihre Apps sowohl auf als auch außerhalb von Kubernetes verteilt werden. Sie können eine Reihe benutzerdefinierter Apps innerhalb der Konfiguration übergeben.
Feld | Beschreibung | Typ |
---|---|---|
Name | Name der benutzerdefinierten App | Zeichenfolge |
Symbol | URL des Symbols für die benutzerdefinierte App | Zeichenfolge |
URL | URL der benutzerdefinierten App | Zeichenfolge |
Gruppe | Gruppe für die benutzerdefinierte App | Zeichenfolge |
Eigenschaften | Zusätzliche Eigenschaften der App als Karte | Karte[Zeichenfolge]Zeichenfolge |
NetzwerkEingeschränkt | Ob die App netzwerkbeschränkt ist oder nicht | bool |
Nachfolgend finden Sie ein Beispiel dafür, wie Sie Forecastle mithilfe einer Kombination aus Namespace-Selektoren und benutzerdefinierten Apps konfigurieren können:
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
Diese Konfiguration zeigt, wie Sie Namespace-Selektoren festlegen, das Erscheinungsbild des Headers anpassen, die CRD-Funktion aktivieren oder deaktivieren und eine benutzerdefinierte App mit bestimmten Eigenschaften hinzufügen.
Das Design von Forecastle ermöglicht die Ausführung mehrerer Instanzen und bietet so Skalierbarkeit und Flexibilität in verschiedenen Umgebungen. So können Sie Forecastle effektiv skalieren.
Grundlegende Bereitstellung : Um mehrere Forecastle-Instanzen auszuführen, stellen Sie jede Instanz in einem separaten Namespace bereit. Geben Sie für jede Instanz eine Liste von Namespaces an, um eingehende Daten zu überwachen.
Benannte Instanzkonfiguration : Um eine bessere Kontrolle darüber zu haben, welche Anwendungen in bestimmten Instanzen angezeigt werden (unabhängig von ihren Namespaces), konfigurieren Sie jede Forecastle-Instanz mit einem eindeutigen Namen, indem Sie die Einstellung instanceName
in der Forecastle-Konfiguration verwenden.
Anwendungsspezifische Instanzanzeige : Nachdem Sie Ihre Instanzen benannt haben, verwenden Sie die Annotation forecastle.stakater.com/instance
für Ihre Ingresses. Diese Anmerkung bestimmt, welche Anwendung in welcher Forecastle-Instanz angezeigt wird.
Anzeige mehrerer Instanzen : Es ist möglich, dass eine einzelne Anwendung (Ingress) in mehreren Forecastle-Dashboards angezeigt wird. Wenn Sie beispielsweise zwei Instanzen mit den Namen „dev-dashboard“ und „prod-dashboard“ haben, stellt das Hinzufügen von dev-dashboard,prod-dashboard
in der Instanzanmerkung des Ingress sicher, dass die Anwendung auf beiden Dashboards sichtbar ist.
Eindeutige Benennung in Helm : Stellen Sie beim Bereitstellen von Forecastle-Instanzen über Helm sicher, dass jede Instanz einen eindeutigen nameOverride
Wert hat (Standard ist Forecastle). Dieser Schritt ist entscheidend, um Konflikte zwischen globalen Ressourcen wie ClusterRole und ClusterRoleBinding zu vermeiden.
Dieser Abschnitt richtet sich an Benutzer, die Forecastle in ihren Kubernetes-Umgebungen verwenden möchten.
Forecastle identifiziert Anwendungen durch Annotationen, die Kubernetes-Ingresses hinzugefügt werden. So fügen Sie die erforderlichen Anmerkungen hinzu:
Anmerkung | Beschreibung | Erforderlich |
---|---|---|
forecastle.stakater.com/expose | Fügen Sie dies mit einem Wert hinzu, der dem Eingang der App true , die Sie in Forecastle anzeigen möchten | true |
forecastle.stakater.com/icon | Symbol-/Bild-URL der Anwendung; Ein Icons/Logos/Bilder-Sammlungs-Repo Icons | false |
forecastle.stakater.com/appName | Ein benutzerdefinierter Name für Ihre Anwendung. Verwenden Sie diese Option, wenn Sie den Namen des Eingangs nicht verwenden möchten | false |
forecastle.stakater.com/group | Ein benutzerdefinierter Gruppenname. Verwenden Sie diese Option, wenn Sie möchten, dass die Anwendung in einer anderen Gruppe als dem Namespace angezeigt wird, in dem sie ausgeführt wird | false |
forecastle.stakater.com/instance | Eine durch Kommas getrennte Liste mit Namen der Vorschiffinstanzen, in denen diese Anwendung angezeigt werden soll. Verwenden Sie diese Option, wenn Sie über mehrere Back-Dashboards verfügen | false |
forecastle.stakater.com/url | Eine URL für die Back-App (Dadurch wird die Eingangs-URL überschrieben). Es MUSS mit einem Schema beginnen, z. B. http:// oder https:// | false |
forecastle.stakater.com/properties | Eine durch Kommas getrennte Liste von key:value -Paaren für die Eigenschaften. Dies wird als erweiterbare Liste für die App angezeigt | false |
forecastle.stakater.com/network-restricted | Geben Sie an, ob die App netzwerkbeschränkt ist oder nicht (wahr oder falsch). | false |
Eine weitere Möglichkeit, wie Forecastle Ihre Fähigkeit zur dynamischen Integration von Anwendungen verbessert, ist die Verwendung von ForecastleApp Custom Resource Definition (CRD). Diese Funktion bietet eine zusätzliche Flexibilitätsebene und ermöglicht es Ihnen, die Anwendungskonfiguration von den Ingress-Einstellungen und der eigenen Konfiguration von Forecastle zu trennen.
Erstellen einer ForecastleApp:
Verwenden Sie zum Erstellen einer ForecastleApp die folgende Vorlage als Leitfaden. Mit dieser Konfiguration können Sie den App-Namen, die Gruppe, das Symbol, die URL und zusätzliche Eigenschaften angeben:
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 unterstützt die automatische URL-Erkennung von bestimmten Kubernetes-Ressourcen, wie zum Beispiel:
Um diese Funktion zu nutzen, fügen Sie das Feld „urlFrom“ wie folgt zu Ihrer ForecastleApp-Spezifikation hinzu: Bitte beachten Sie, dass sich der Ressourcentyp, den Sie ermitteln möchten, im selben Namespace wie die ForecastleApp
CR befinden muss.
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
Diese Konfiguration weist Forecastle an, die App-URL direkt von der angegebenen Ingress-Ressource abzurufen, was die Bereitstellung und Konfiguration vereinfacht.
Hinweis: Um die CRD-Funktion zu verwenden, stellen Sie sicher, dass sie aktiviert ist, indem Sie crdEnabled: true
in der Forecastle-Konfiguration festlegen oder sie im Helm-Chart aktivieren.
Bitte verwenden Sie den Issue-Tracker, um Fehler zu melden oder Funktionsanfragen einzureichen.
PRs sind herzlich willkommen. Im Allgemeinen folgen wir dem „Fork-and-Pull“-Git-Workflow.
HINWEIS: Stellen Sie sicher, dass Sie die neueste Version von „Upstream“ zusammenführen, bevor Sie eine Pull-Anfrage stellen!
Haben Sie eine Frage? Reichen Sie ein GitHub-Problem ein.
Treten Sie bei und sprechen Sie mit uns auf dem Kanal #tools-imc, um über Forecastle zu diskutieren
Sehen Sie sich unsere geschlossenen Pull-Anfragen an.
Apache2 © Stakater
Der Begriff „Forecastle“ stammt aus dem maritimen Vokabular und bezieht sich auf das Oberdeck eines Schiffes, das sich am Bug direkt vor dem Fockmast befindet. Historisch gesehen war es ein Ort, von dem aus Seeleute navigierten und das weite Meer vor ihnen beobachteten.
Im Rahmen unseres Projekts haben wir diesen Namen als Metapher für die Rolle übernommen, die Forecastle in der Welt von Kubernetes spielt. Ebenso wie das Vorschiff des Schiffes fungiert unser Vorschiff als zentrales Beobachtungs- und Kontrollpanel. Es bietet Benutzern einen umfassenden Überblick über alle auf Kubernetes ausgeführten Anwendungen, insbesondere diejenigen, die mit einer bestimmten Anmerkung gekennzeichnet sind. Forecastle ist als Ihr Kubernetes-Dashboard konzipiert und bietet eine klare Sicht und einfachen Zugriff auf Ihre bereitgestellten Anwendungen, ähnlich wie ein Seemann, der vom Bug des Schiffes aus das Meer beobachtet.
Forecastle
wird von Stakater gewartet. Gefällt es Ihnen? Bitte teilen Sie uns dies unter [email protected] mit
Sehen Sie sich unsere anderen Projekte an oder kontaktieren Sie uns bei professionellen Dienstleistungen und Fragen unter [email protected]