O Forecastle dá acesso a um painel de controle onde você pode ver seus aplicativos em execução e acessá-los no Kubernetes.
Forecastle fornece um painel de controle unificado, servindo como um gateway conveniente para visualizar e acessar seus aplicativos implantados no Kubernetes. Quer se trate de ferramentas de monitoramento, pipelines de CI/CD ou outros aplicativos, o Forecastle traz todos eles ao seu alcance em um local central.
Forecastle possui uma gama de funcionalidades projetadas para agilizar o gerenciamento e acessibilidade de aplicações em ambientes Kubernetes. Os principais recursos incluem:
Listagem abrangente de aplicativos : o Forecastle agrega e exibe aplicativos de todos os namespaces especificados no ConfigMap, fornecendo uma visão centralizada de seus recursos.
Funcionalidade de pesquisa : localize rapidamente aplicativos específicos com um recurso de pesquisa intuitivo, melhorando a experiência e a eficiência do usuário.
Agrupamento de namespace : os aplicativos são bem organizados e agrupados por seus respectivos namespaces, tornando a navegação e o gerenciamento mais simples.
Cabeçalho personalizável : personalize a aparência do seu painel do Forecastle com opções de cabeçalho configuráveis, incluindo personalização de títulos e esquemas de cores.
Suporte para múltiplas instâncias : o Forecastle foi projetado para oferecer suporte a múltiplas instâncias, acomodando cenários de implantação variados e complexos.
Integração de aplicativos personalizados : adicione facilmente aplicativos externos ou não-Kubernetes ao seu painel para obter uma visão geral mais abrangente de suas ferramentas e recursos.
ForecastleApp CRD : Utilize a definição de recursos personalizados do ForecastleApp para adicionar dinamicamente aplicativos personalizados, aumentando ainda mais a flexibilidade do painel.
Agrupamento e URLs personalizados : organize seus aplicativos em grupos personalizados e atribua URLs específicos para navegação e acessibilidade personalizadas.
Informações detalhadas do aplicativo : cada aplicativo vem com informações detalhadas, oferecendo insights e detalhes essenciais rapidamente.
Esta seção é destinada a administradores que desejam implantar o Forecastle em seus clusters. Forecastle oferece opções de implantação flexíveis, acomodando facilmente as plataformas Kubernetes e OpenShift.
Você tem a opção de implantar o Forecastle usando manifestos tradicionais ou por meio de gráficos Helm. Instruções detalhadas para ambos os métodos são fornecidas abaixo para orientá-lo durante o processo de implantação.
Você pode obter o Forecastle executando o seguinte comando em seu cluster:
para Kubernetes:
kubectl apply -f https://raw.githubusercontent.com/stakater/Forecastle/master/deployments/kubernetes/forecastle.yaml
para OpenShift:
kubectl apply -f https://raw.githubusercontent.com/stakater/Forecastle/master/deployments/openshift/forecastle.yaml
Para ambientes Kubernetes, você pode usar o seguinte comando port-foward para acessar o painel do Forecastle:
kubectl port-forward svc/forecastle 8080:8080
Observe que você precisaria configurar a entrada para acessar o Forecastle de fora do cluster com base na configuração de entrada do seu cluster.
Para ambientes OpenShift, uma rota padrão é criada para o serviço Forecastle. Você pode acessar o painel usando o URL da rota.
oc get route forecastle
Modifique a chave namespaceSelector
no Forecastle ConfigMap para listar os namespaces que você deseja que o Forecastle monitore. Para obter instruções detalhadas, consulte configuração do seletor de namespace para obter instruções.
Se você tiver o Helm configurado em seu cluster Kubernetes, implante o Forecastle usando o gráfico do Helm. O gráfico está localizado aqui.
Ajuste a configuração em values.yaml se necessário e execute o seguinte comando:
helm install forecastle ./deployments/kubernetes/chart/forecastle
Forecastle simplifica a descoberta e o gerenciamento de aplicativos em Kubernetes e OpenShift. Ele utiliza anotações específicas em entradas e oferece várias opções de configuração para personalização.
Você pode personalizar o Forecastle usando um ConfigMap ou o arquivovalues.yaml ao implantar com o Helm. Abaixo estão os campos configuráveis:
Campo | Descrição | Padrão | Tipo |
---|---|---|---|
namespaceSelector | Um seletor de namespace refinado que usa uma combinação de namespaces codificados, bem como seletores de rótulos | qualquer: verdadeiro | Seletor de Namespace |
cabeçalhoBackground | Cor de fundo do cabeçalho (especificada no modo CSS) | nulo | corda |
cabeçalhoForeground | Cor de primeiro plano do cabeçalho (especificada no modo CSS) | nulo | corda |
título | Título para o painel do castelo de proa | "Castelo de previsão - Stakater" | corda |
nome da instância | Nome da instância do castelo de proa | "" | corda |
aplicativos personalizados | Uma lista de aplicativos personalizados que você gostaria de adicionar à instância do castelo de proa | {} | []Aplicativo personalizado |
crdEnabled | Habilita ou desabilita ForecastleApp CRD | verdadeiro | bool |
Seleciona namespaces para o Forecastle monitorar, listando namespaces específicos ou usando seletores de rótulos.
Campo | Descrição | Padrão | Tipo |
---|---|---|---|
qualquer | Booleano que descreve se todos os namespaces estão selecionados em contraste com uma lista que os restringe | falso | bool |
rótuloSeletor | Filtrar namespaces com base no tipo metav1.LabelSelector do Kubernetes | nulo | metav1.LabelSelector |
matchNames | Lista de nomes de namespace | nulo | []corda |
Nota: Se você especificar labelSelector
e matchNames
, o Forecastle pegará uma união de todos os namespaces correspondentes e os usará.
Permite adicionar aplicativos externos ou não Kubernetes ao Forecastle. Este é um recurso extremamente útil, especialmente quando seus aplicativos são distribuídos tanto no Kubernetes quanto fora dele. Você pode passar uma série de aplicativos personalizados dentro da configuração.
Campo | Descrição | Tipo |
---|---|---|
nome | Nome do aplicativo personalizado | Corda |
ícone | URL do ícone do aplicativo personalizado | Corda |
url | URL do aplicativo personalizado | Corda |
grupo | Grupo para o aplicativo personalizado | Corda |
propriedades | Propriedades adicionais do aplicativo como mapa | mapa[string]string |
redeRestricted | Se o aplicativo é restrito à rede ou não | bool |
Abaixo está um exemplo de como você pode configurar o Forecastle usando uma combinação de seletores de namespace e aplicativos personalizados:
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
Esta configuração demonstra como definir seletores de namespace, personalizar a aparência do cabeçalho, ativar ou desativar o recurso CRD e adicionar um aplicativo personalizado com propriedades específicas.
O design do Forecastle permite a execução de múltiplas instâncias, proporcionando escalabilidade e flexibilidade em diversos ambientes. Veja como você pode dimensionar efetivamente o Forecastle.
Implantação básica : para executar várias instâncias do Forecastle, implante cada instância em um namespace separado. Especifique uma lista de namespaces para cada instância para monitorar entradas.
Configuração de instância nomeada : para maior controle sobre quais aplicativos são exibidos em instâncias específicas (independentemente de seus namespaces), configure cada instância do Forecastle com um nome exclusivo usando a configuração instanceName
na configuração do Forecastle.
Exibição de instância específica do aplicativo : depois de nomear suas instâncias, use a anotação forecastle.stakater.com/instance
em suas entradas. Esta anotação determina qual aplicativo aparece em qual instância do Forecastle.
Exibição de múltiplas instâncias : é possível que um único aplicativo (entrada) apareça em vários painéis do Forecastle. Por exemplo, se você tiver duas instâncias chamadas dev-dashboard e prod-dashboard, adicionar dev-dashboard,prod-dashboard
na anotação de instância do ingresso garantirá que o aplicativo esteja visível em ambos os painéis.
Nomenclatura exclusiva no Helm : ao implantar instâncias do Forecastle por meio do Helm, certifique-se de que cada instância tenha um valor nameOverride
exclusivo (o padrão é Forecastle). Esta etapa é crucial para evitar conflitos entre recursos globais como ClusterRole e ClusterRoleBinding.
Esta seção é destinada a usuários que desejam usar o Forecastle em seus ambientes Kubernetes.
O Forecastle identifica aplicativos por meio de anotações adicionadas às entradas do Kubernetes. Veja como você adicionaria as anotações necessárias:
Anotação | Descrição | Obrigatório |
---|---|---|
forecastle.stakater.com/expose | Adicione isso com valor true ao ingresso do aplicativo que você deseja mostrar no Forecastle | true |
forecastle.stakater.com/icon | URL do ícone/imagem do aplicativo; Um repositório de coleção de ícones/logotipos/imagens Ícones | false |
forecastle.stakater.com/appName | Um nome personalizado para seu aplicativo. Use se não quiser usar o nome do ingresso | false |
forecastle.stakater.com/group | Um nome de grupo personalizado. Use se quiser que o aplicativo seja exibido em um grupo diferente do namespace em que está sendo executado | false |
forecastle.stakater.com/instance | Uma lista separada por vírgulas de nomes das instâncias do castelo de proa onde você deseja que este aplicativo apareça. Use quando você tiver vários painéis do castelo de proa | false |
forecastle.stakater.com/url | Uma URL para o aplicativo do castelo de proa (isso substituirá a URL de entrada). DEVE começar com um esquema, ou seja, http:// ou https:// | false |
forecastle.stakater.com/properties | Uma lista separada por vírgulas de pares key:value para as propriedades. Isso aparecerá como uma lista expansível para o aplicativo | false |
forecastle.stakater.com/network-restricted | Especifique se o aplicativo é restrito à rede ou não (verdadeiro ou falso) | false |
Outra maneira pela qual o Forecastle aprimora sua capacidade de integrar aplicativos dinamicamente é usando a definição de recursos personalizados (CRD) do ForecastleApp. Esse recurso adiciona uma camada de flexibilidade, permitindo separar a configuração do aplicativo das configurações do Ingress e da própria configuração do Forecastle.
Criando um ForecastleApp:
Para criar um ForecastleApp, use o modelo a seguir como guia. Esta configuração permite especificar o nome do aplicativo, grupo, ícone, URL e propriedades adicionais:
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 oferece suporte à descoberta automática de URL de determinados recursos do Kubernetes, como:
Para utilizar esse recurso, adicione o campo urlFrom à especificação do ForecastleApp da seguinte forma: Observe que o tipo de recurso que você deseja descobrir deve estar no mesmo namespace que o 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
Esta configuração instrui o Forecastle a buscar a URL do aplicativo diretamente do recurso Ingress especificado, simplificando a implantação e a configuração.
Nota: Para usar o recurso CRD, certifique-se de que ele esteja habilitado definindo crdEnabled: true
na configuração do Forecastle ou habilitando-o no gráfico do Helm.
Use o rastreador de problemas para relatar quaisquer bugs ou solicitações de recursos de arquivo.
PRs são muito bem-vindos. Em geral, seguimos o fluxo de trabalho do Git "fork-and-pull".
NOTA: Certifique-se de mesclar o mais recente do "upstream" antes de fazer uma solicitação pull!
Tem alguma pergunta? Registre um problema no GitHub.
Junte-se e fale conosco no canal #tools-imc para discutir o Forecastle
Veja nossas solicitações pull fechadas.
Apache2 © Stakater
O termo "Castelo de proa" tem origem no vocabulário marítimo, referindo-se ao convés superior de um navio situado na proa, logo à frente do mastro de proa. Historicamente, é um local de onde os marinheiros navegam e observam o vasto mar que tem pela frente.
No contexto do nosso projeto, adotamos esse nome como uma metáfora para o papel que o Forecastle desempenha no mundo do Kubernetes. Tal como o castelo de proa do navio, o nosso Castelo de Proa funciona como um painel central de observação e controlo. Ele oferece aos usuários uma visão abrangente de todos os seus aplicativos em execução no Kubernetes, especificamente aqueles marcados com uma anotação designada. O Forecastle foi projetado para ser seu painel do Kubernetes, fornecendo uma visão clara e fácil acesso aos seus aplicativos implantados, como um marinheiro examinando o mar da proa do navio.
Forecastle
é mantido pela Stakater. Gostou? Por favor, deixe-nos saber em [email protected]
Veja nossos outros projetos ou entre em contato conosco em caso de serviços profissionais e dúvidas em [email protected]