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을 얻을 수 있습니다.
쿠버네티스의 경우:
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-foward 명령을 사용하여 Forecastle 대시보드에 액세스할 수 있습니다.
kubectl port-forward svc/forecastle 8080:8080
클러스터의 수신 구성에 따라 클러스터 외부에서 Forecastle에 액세스하려면 수신을 구성해야 합니다.
OpenShift 환경의 경우 Forecastle 서비스에 대한 기본 경로가 생성됩니다. 경로 URL을 사용하여 대시보드에 액세스할 수 있습니다.
oc get route forecastle
Forecastle이 모니터링할 네임스페이스를 나열하려면 Forecastle ConfigMap의 namespaceSelector
키를 수정하세요. 자세한 지침은 네임스페이스 선택기 구성을 참조하세요.
Kubernetes 클러스터에 Helm을 구성한 경우 Helm 차트를 사용하여 Forecastle을 배포합니다. 차트는 여기에 있습니다.
필요한 경우 value.yaml의 구성을 조정하고 다음 명령을 실행합니다.
helm install forecastle ./deployments/kubernetes/chart/forecastle
Forecastle은 Kubernetes 및 OpenShift에서 애플리케이션 검색 및 관리를 단순화합니다. 수신에 대한 특정 주석을 활용하고 사용자 정의를 위한 다양한 구성 옵션을 제공합니다.
Helm을 사용하여 배포할 때 ConfigMap 또는 value.yaml 파일을 사용하여 Forecastle을 사용자 정의할 수 있습니다. 다음은 구성 가능한 필드입니다.
필드 | 설명 | 기본 | 유형 |
---|---|---|---|
네임스페이스선택기 | 하드코딩된 네임스페이스와 라벨 선택기의 조합을 사용하는 세분화된 네임스페이스 선택기 | 아무거나: 사실 | 네임스페이스선택기 |
헤더배경 | 헤더 배경색 (CSS 방식으로 지정) | null | 끈 |
헤더전경 | 헤더 전경색 (CSS 방식으로 지정) | null | 끈 |
제목 | 예측실 대시보드의 제목 | "포어캐슬 - 스타카터" | 끈 |
인스턴스 이름 | 예측 인스턴스의 이름 | "" | 끈 |
맞춤 앱 | 예측 인스턴스에 추가하려는 맞춤형 앱 목록 | {} | []커스텀앱 |
crd활성화됨 | ForecastleApp CRD를 활성화 또는 비활성화합니다. | 진실 | 부울 |
특정 네임스페이스를 나열하거나 레이블 선택기를 사용하여 Forecastle이 모니터링할 네임스페이스를 선택합니다.
필드 | 설명 | 기본 | 유형 |
---|---|---|---|
어느 | 네임스페이스를 제한하는 목록과 달리 모든 네임스페이스가 선택되었는지 여부를 설명하는 부울 | 거짓 | 부울 |
라벨선택기 | kubernetes Metav1.LabelSelector 유형을 기반으로 네임스페이스 필터링 | null | Metav1.LabelSelector |
일치 이름 | 네임스페이스 이름 목록 | null | []끈 |
참고: labelSelector
및 matchNames
모두 지정하면 Forecastle은 일치하는 모든 네임스페이스의 통합을 가져와 사용합니다.
Kubernetes가 아닌 앱이나 외부 앱을 Forecastle에 추가할 수 있습니다. 이는 특히 앱이 쿠버네티스와 쿠버네티스 외부 모두에 배포될 때 매우 유용한 기능입니다. 구성 내에 다양한 맞춤형 앱을 전달할 수 있습니다.
필드 | 설명 | 유형 |
---|---|---|
이름 | 맞춤형 앱 이름 | 끈 |
상 | 맞춤형 App 아이콘의 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라는 두 개의 인스턴스가 있는 경우 수신 인스턴스 주석에 dev-dashboard,prod-dashboard
추가하면 두 대시보드 모두에서 애플리케이션이 표시됩니다.
Helm의 고유한 이름 지정 : Helm을 통해 Forecastle 인스턴스를 배포할 때 각 인스턴스에 고유한 nameOverride
값이 있는지 확인하세요(기본값은 Forecastle). 이 단계는 ClusterRole 및 ClusterRoleBinding과 같은 전역 리소스 간의 충돌을 피하는 데 중요합니다.
이 섹션은 Kubernetes 환경에서 Forecastle을 사용하려는 사용자를 대상으로 합니다.
Forecastle은 Kubernetes 수신에 추가된 주석을 통해 애플리케이션을 식별합니다. 필요한 주석을 추가하는 방법은 다음과 같습니다.
주석 | 설명 | 필수의 |
---|---|---|
forecastle.stakater.com/expose | Forecastle에 표시하려는 앱의 수신에 true 값을 추가하세요. | 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 검색을 지원합니다.
이 기능을 활용하려면 다음과 같이 ForecastleApp 사양에 urlFrom 필드를 추가하십시오. 검색하려는 리소스 유형은 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 문제를 제출하세요.
Forecastle에 대해 토론하려면 #tools-imc 채널에 참여하고 이야기해 보세요.
마감된 Pull Request를 확인하세요.
아파치2 © 스타카터
"Forecastle"이라는 용어는 앞쪽 마스트 바로 앞에 있는 뱃머리에 위치한 배의 상부 갑판을 가리키는 해양 용어에서 유래되었습니다. 역사적으로 선원들이 항해를 하며 앞의 넓은 바다를 관찰하는 곳이었습니다.
우리 프로젝트의 맥락에서 우리는 Kubernetes 세계에서 Forecastle이 수행하는 역할에 대한 은유로 이 이름을 채택했습니다. 선박의 선수루와 마찬가지로 Forecastle은 중앙 관찰 및 제어 패널 역할을 합니다. 이는 사용자에게 Kubernetes에서 실행 중인 모든 애플리케이션, 특히 지정된 주석으로 표시된 애플리케이션에 대한 포괄적인 보기를 제공합니다. Forecastle은 Kubernetes 대시보드로 설계되어 배의 뱃머리에서 바다를 조사하는 선원처럼 배포된 애플리케이션에 대한 명확한 보기와 쉬운 액세스를 제공합니다.
Forecastle
Stakater에 의해 유지됩니다. 마음에 드나요? [email protected]으로 알려주세요.
다른 프로젝트를 확인하거나 전문 서비스 및 문의 사항이 있는 경우 [email protected]으로 문의하세요.