# 구성

import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';

Kubetail이 클러스터에 배포되면 Dashboard, Cluster API, Cluster Agent 각 구성 요소는 컨테이너에 마운트된 YAML 구성 파일을 통해 독립적으로 설정됩니다. Helm chart는 ConfigMap을 통해 이 파일들을 관리하지만, chart의 `runtimeConfig` 필드를 재정의해 어떤 설정이든 사용자 지정할 수 있습니다.

---

## 구성 방식

각 구성 요소는 시작 시 `--config` 플래그로 전달된 파일에서 구성을 읽습니다.

```sh
dashboard     --config /etc/kubetail/config.yaml
cluster-api   --config /etc/kubetail/config.yaml
cluster-agent --config /etc/kubetail/config.yaml
```

구성 파일은 Helm chart가 생성한 ConfigMap에서 마운트됩니다. 구성 요소 설정을 사용자 지정하려면 Helm values의 `kubetail.<component>.runtimeConfig` 아래에 재정의 값을 전달하면 됩니다.

```yaml
kubetail:
  dashboard:
    runtimeConfig:
      logging:
        level: debug
  clusterAPI:
    runtimeConfig:
      logging:
        level: debug
```

<Aside type="tip">
모든 구성 파일은 `${VARIABLE_NAME}` 구문의 환경 변수 확장을 지원하므로 런타임에 시크릿을 주입할 때 유용합니다.
</Aside>

---

## Dashboard

Dashboard는 UI를 호스팅하고 브라우저의 요청을 클러스터로 프록시하는 웹 서버입니다. 클러스터 환경에서는 `kubetail-system` namespace의 Deployment로 실행됩니다.

전체 구성 참조는 [Dashboard 참조](/ko/reference/dashboard)를 확인하세요.

---

## Cluster API

Cluster API는 Dashboard의 요청을 각 노드에서 실행 중인 Cluster Agent 인스턴스로 프록시하는 백엔드 서버입니다. 클러스터에서는 `kubetail-system` namespace의 Deployment로 실행됩니다.

전체 구성 참조는 [Cluster API 참조](/ko/reference/cluster-api)를 확인하세요.

---

## Cluster Agent

Cluster Agent는 각 노드에서 실행되며 노드 파일시스템에서 컨테이너 로그 파일을 직접 읽는 작은 Rust 기반 프로그램입니다. 클러스터에서는 `kubetail-system` namespace의 DaemonSet으로 실행됩니다.

전체 구성 참조는 [Cluster Agent 참조](/ko/reference/cluster-agent)를 확인하세요.