Forecastle vous donne accès à un panneau de contrôle où vous pouvez voir vos applications en cours d'exécution et y accéder sur Kubernetes.
Forecastle fournit un panneau de contrôle unifié, servant de passerelle pratique pour afficher et accéder à vos applications déployées sur Kubernetes. Qu'il s'agisse d'outils de surveillance, de pipelines CI/CD ou d'autres applications, Forecastle les met tous à portée de main dans un emplacement central.
Forecastle dispose d'une gamme de fonctionnalités conçues pour rationaliser la gestion et l'accessibilité des applications dans les environnements Kubernetes. Les principales fonctionnalités incluent :
Liste complète des applications : Forecastle regroupe et affiche les applications de tous les espaces de noms spécifiés dans ConfigMap, offrant une vue centralisée de vos ressources.
Fonctionnalité de recherche : localisez rapidement des applications spécifiques grâce à une fonction de recherche intuitive, améliorant l'expérience utilisateur et l'efficacité.
Regroupement d'espaces de noms : les applications sont soigneusement organisées et regroupées selon leurs espaces de noms respectifs, ce qui rend la navigation et la gestion plus simples.
En-tête personnalisable : personnalisez l'apparence de votre tableau de bord Forecastle avec des options d'en-tête configurables, y compris la personnalisation du titre et les jeux de couleurs.
Prise en charge de plusieurs instances : Forecastle est conçu pour prendre en charge plusieurs instances, s'adaptant à des scénarios de déploiement variés et complexes.
Intégration d'applications personnalisées : ajoutez facilement des applications non Kubernetes ou externes à votre tableau de bord pour un aperçu plus complet de vos outils et ressources.
ForecastleApp CRD : utilisez la définition de ressource personnalisée ForecastleApp pour ajouter dynamiquement des applications personnalisées, améliorant ainsi encore la flexibilité du tableau de bord.
Regroupement et URL personnalisés : organisez vos applications en groupes personnalisés et attribuez des URL spécifiques pour une navigation et une accessibilité personnalisées.
Informations détaillées sur l'application : chaque application est accompagnée d'informations détaillées, offrant des informations et des détails essentiels en un coup d'œil.
Cette section est destinée aux administrateurs souhaitant déployer Forecastle sur leurs clusters. Forecastle offre des options de déploiement flexibles, s'adaptant facilement aux plates-formes Kubernetes et OpenShift.
Vous avez le choix de déployer Forecastle à l'aide de manifestes traditionnels ou via des graphiques Helm. Des instructions détaillées pour les deux méthodes sont fournies ci-dessous pour vous guider tout au long du processus de déploiement.
Vous pouvez obtenir Forecastle en exécutant la commande suivante sur votre cluster :
pour Kubernetes :
kubectl apply -f https://raw.githubusercontent.com/stakater/Forecastle/master/deployments/kubernetes/forecastle.yaml
pour OpenShift :
kubectl apply -f https://raw.githubusercontent.com/stakater/Forecastle/master/deployments/openshift/forecastle.yaml
Pour les environnements Kubernetes, vous pouvez utiliser la commande port-foward suivante pour accéder au tableau de bord Forecastle :
kubectl port-forward svc/forecastle 8080:8080
Veuillez noter que vous devrez configurer l'entrée pour accéder à Forecastle depuis l'extérieur du cluster en fonction de la configuration d'entrée de votre cluster.
Pour les environnements OpenShift, un itinéraire par défaut est créé pour le service Forecastle. Vous pouvez accéder au tableau de bord à l'aide de l'URL de l'itinéraire.
oc get route forecastle
Modifiez la clé namespaceSelector
dans Forecastle ConfigMap pour répertorier les espaces de noms que vous souhaitez que Forecastle surveille. Pour des instructions détaillées, consultez la configuration du sélecteur d’espace de noms pour obtenir des instructions.
Si Helm est configuré sur votre cluster Kubernetes, déployez Forecastle à l'aide de la charte Helm. Le graphique se trouve ici.
Ajustez la configuration dans values.yaml si nécessaire et exécutez la commande suivante :
helm install forecastle ./deployments/kubernetes/chart/forecastle
Forecastle simplifie la découverte et la gestion des applications sur Kubernetes et OpenShift. Il utilise des annotations spécifiques sur les entrées et propose diverses options de configuration pour la personnalisation.
Vous pouvez personnaliser Forecastle à l'aide d'un ConfigMap ou du fichier values.yaml lors du déploiement avec Helm. Ci-dessous se trouvent les champs configurables :
Champ | Description | Défaut | Taper |
---|---|---|---|
sélecteur d'espace de noms | Un sélecteur d'espace de noms à granularité fine qui utilise une combinaison d'espaces de noms codés en dur ainsi que des sélecteurs d'étiquettes | n'importe lequel : vrai | Sélecteur d'espace de noms |
en-têteContexte | Couleur de fond de l'en-tête (Spécifiée à la manière CSS) | nul | chaîne |
en-têtePremier plan | Couleur de premier plan de l'en-tête (Spécifiée à la manière CSS) | nul | chaîne |
titre | Titre du tableau de bord du gaillard d'avant | "Prévision - Stakater" | chaîne |
nominstance | Nom de l'instance de gaillard d'avant | "" | chaîne |
applications personnalisées | Une liste d'applications personnalisées que vous souhaitez ajouter à l'instance de gaillard d'avant | {} | []Application personnalisée |
crdEnabled | Active ou désactive ForecastleApp CRD | vrai | bouffon |
Sélectionne les espaces de noms que Forecastle doit surveiller, soit en répertoriant les espaces de noms spécifiques, soit à l'aide de sélecteurs d'étiquettes.
Champ | Description | Défaut | Taper |
---|---|---|---|
n'importe lequel | Booléen décrivant si tous les espaces de noms sont sélectionnés contrairement à une liste les restreignant | FAUX | bouffon |
sélecteur d'étiquette | Filtrer les espaces de noms en fonction du type Kubernetes Metav1.LabelSelector | nul | métav1.LabelSelector |
noms de correspondance | Liste des noms d'espaces de noms | nul | []chaîne |
Remarque : Si vous spécifiez à la fois labelSelector
et matchNames
, Forecastle prendra une union de tous les espaces de noms correspondants et les utilisera.
Permet d'ajouter des applications non Kubernetes ou externes à Forecastle. Il s'agit d'une fonctionnalité extrêmement utile, en particulier lorsque vos applications sont distribuées à la fois sur Kubernetes et en dehors. Vous pouvez transmettre un éventail d'applications personnalisées dans la configuration.
Champ | Description | Taper |
---|---|---|
nom | Nom de l'application personnalisée | Chaîne |
icône | URL de l'icône de l'application personnalisée | Chaîne |
URL | URL de l'application personnalisée | Chaîne |
groupe | Groupe pour l'application personnalisée | Chaîne |
propriétés | Propriétés supplémentaires de l'application sous forme de carte | carte[chaîne]chaîne |
réseauRestricted | Si l'application est restreinte au réseau ou non | bouffon |
Vous trouverez ci-dessous un exemple de la façon dont vous pouvez configurer Forecastle à l'aide d'une combinaison de sélecteurs d'espace de noms et d'applications personnalisées :
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
Cette configuration montre comment définir des sélecteurs d'espace de noms, personnaliser l'apparence de l'en-tête, activer ou désactiver la fonctionnalité CRD et ajouter une application personnalisée avec des propriétés spécifiques.
La conception de Forecastle permet d'exécuter plusieurs instances, offrant ainsi évolutivité et flexibilité dans divers environnements. Voici comment vous pouvez faire évoluer efficacement Forecastle.
Déploiement de base : pour exécuter plusieurs instances Forecastle, déployez chaque instance dans un espace de noms distinct. Spécifiez une liste d'espaces de noms pour chaque instance afin de surveiller les entrées.
Configuration d'instance nommée : pour un meilleur contrôle sur les applications qui sont affichées dans des instances spécifiques (indépendamment de leurs espaces de noms), configurez chaque instance Forecastle avec un nom unique à l'aide du paramètre instanceName
dans la configuration Forecastle.
Affichage des instances spécifiques à l'application : après avoir nommé vos instances, utilisez l'annotation forecastle.stakater.com/instance
sur vos entrées. Cette annotation dicte quelle application apparaît dans quelle instance de Forecastle.
Affichage d'instances multiples : il est possible qu'une seule application (entrée) apparaisse dans plusieurs tableaux de bord Forecastle. Par exemple, si vous avez deux instances nommées dev-dashboard et prod-dashboard, l'ajout dev-dashboard,prod-dashboard
dans l'annotation de l'instance d'entrée garantira que l'application est visible sur les deux tableaux de bord.
Dénomination unique dans Helm : lors du déploiement d'instances Forecastle via Helm, assurez-vous que chaque instance a une valeur nameOverride
unique (la valeur par défaut est Forecastle). Cette étape est cruciale pour éviter les conflits entre les ressources globales comme ClusterRole et ClusterRoleBinding.
Cette section est destinée aux utilisateurs souhaitant utiliser Forecastle dans leurs environnements Kubernetes.
Forecastle identifie les applications grâce aux annotations ajoutées aux entrées Kubernetes. Voici comment ajouter les annotations nécessaires :
Annotation | Description | Requis |
---|---|---|
forecastle.stakater.com/expose | Ajoutez ceci avec la valeur true à l'entrée de l'application que vous souhaitez afficher dans Forecastle | true |
forecastle.stakater.com/icon | Icône/Image URL de l’application ; Un dépôt de collection d'icônes/logos/images | false |
forecastle.stakater.com/appName | Un nom personnalisé pour votre application. À utiliser si vous ne souhaitez pas utiliser le nom de l'entrée | false |
forecastle.stakater.com/group | Un nom de groupe personnalisé. À utiliser si vous souhaitez que l'application s'affiche dans un groupe différent de celui de l'espace de noms dans lequel elle s'exécute. | false |
forecastle.stakater.com/instance | Une liste de noms séparés par des virgules de la ou des instances de gaillard d'avant où vous souhaitez que cette application apparaisse. À utiliser lorsque vous disposez de plusieurs tableaux de bord de gaillard d'avant | false |
forecastle.stakater.com/url | Une URL pour l'application Gaillard (cela remplacera l'URL d'entrée). Il DOIT commencer par un schéma, c'est-à-dire http:// ou https:// | false |
forecastle.stakater.com/properties | Une liste séparée par des virgules de key:value pour les propriétés. Cela apparaîtra sous la forme d'une liste extensible pour l'application | false |
forecastle.stakater.com/network-restricted | Spécifiez si l'application est restreinte au réseau ou non (vrai ou faux) | false |
Une autre façon pour Forecastle d'améliorer votre capacité à intégrer dynamiquement des applications consiste à utiliser la définition de ressources personnalisées (CRD) de ForecastleApp. Cette fonctionnalité ajoute une couche de flexibilité, vous permettant de séparer la configuration de l'application des paramètres Ingress et de la propre configuration de Forecastle.
Création d'une ForecastleApp :
Pour créer une ForecastleApp, utilisez le modèle suivant comme guide. Cette configuration vous permet de spécifier le nom de l'application, le groupe, l'icône, l'URL et des propriétés supplémentaires :
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 prend en charge la découverte automatique d'URL à partir de certaines ressources Kubernetes, telles que :
Pour utiliser cette fonctionnalité, ajoutez le champ urlFrom à votre spécification ForecastleApp comme ceci : Veuillez noter que le type de ressource que vous souhaitez découvrir doit être dans le même espace de noms que le CR ForecastleApp
.
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
Cette configuration demande à Forecastle de récupérer l'URL de l'application directement à partir de la ressource Ingress spécifiée, simplifiant ainsi le déploiement et la configuration.
Remarque : Pour utiliser la fonctionnalité CRD, assurez-vous qu'elle est activée en définissant crdEnabled: true
dans la configuration Forecastle ou en l'activant dans la charte Helm.
Veuillez utiliser le suivi des problèmes pour signaler tout bug ou demande de fonctionnalité de fichier.
Les PR sont les bienvenus. En général, nous suivons le workflow Git « fork-and-pull ».
REMARQUE : assurez-vous de fusionner les dernières versions de « en amont » avant de faire une pull request !
Vous avez une question ? Déposez un problème GitHub.
Rejoignez-nous et parlez-nous sur la chaîne #tools-imc pour discuter de Forecastle
Consultez nos demandes de tirage clôturées.
Apache2 © Stakater
Le terme « Forecastle » est issu du vocabulaire maritime, désignant le pont supérieur d'un navire situé à la proue, juste devant le mât de misaine. Historiquement, c'est un endroit d'où les marins naviguaient et observaient la vaste mer qui s'offrait à eux.
Dans le contexte de notre projet, nous avons adopté ce nom comme métaphore du rôle que joue Forecastle dans le monde de Kubernetes. Tout comme le gaillard d'avant du navire, notre gaillard d'avant fait office de panneau central d'observation et de contrôle. Il donne aux utilisateurs une vue complète de toutes leurs applications en cours d'exécution sur Kubernetes, en particulier celles marquées d'une annotation désignée. Forecastle est conçu pour être votre tableau de bord Kubernetes, offrant une vue claire et un accès facile à vos applications déployées, un peu comme un marin surveillant la mer depuis la proue du navire.
Forecastle
est entretenu par Stakater. Vous aimez ça ? Veuillez nous le faire savoir à [email protected]
Consultez nos autres projets ou contactez-nous en cas de services professionnels et de questions sur [email protected]