Scalar Manager をデプロイする
Scalar Manager は、Kubernetes クラスター環境内の ScalarDB および ScalarDL の集中管理および監視ソリューションであり、次のことが可能になります。
- ScalarDB または ScalarDL の可用性を確認します。
- ScalarDB または ScalarDL が使用するデータベースでトランザクションの一貫性のある期間を作成する一時停止ジョブをスケジュールまたは実行します。
- Grafana ダッシュボードを介して ScalarDB または ScalarDL の時系列メトリックとログを確認します。
このガイドでは、Scalar Helm Charts を使用して Kubernetes クラスターに Scalar Manager をデプロイしてアクセスする方法について説明します。
前提条件
Scalar Manager をデプロイする前に、次の操作を行う必要があります。
- Scalar Helm Charts をはじめように記載されているツールをインストールします。
- Helm Charts をはじめよう (Prometheus Operator を使用したモニタリング)の手順に従って、
kube-prometheus-stack
をデプロイします。 - Helm Charts をはじめよう (Loki Stack を使用したログ記録)の手順に従って、
loki-stack
をデプロイします。
デプロイアーキテクチャ図
以下は、Kubernetes クラスターにデプロイされたコンポーネントのアーキテクチャ図です。
+--------------------------------------------------------------------------------------------------+
| +----------------------+ |
| | scalar-manager | |
| | | |
| | +------------------+ | --------------------------(Manage)--------------------------+ |
| | | Scalar Manager | | | |
| | +------------------+ | | |
| +--+-------------------+ | |
| | | |
| +------------------------------------+ | |
| | loki-stack | V |
| | | +-----------------+ |
| | +--------------+ +--------------+ | <----------------(Log)--------------- | Scalar Products | |
| | | Loki | | Promtail | | | | |
| | +--------------+ +--------------+ | | +-----------+ | |
| +------------------------------------+ | | ScalarDB | | |
| | | +-----------+ | |
| +------------------------------------------------------+ | | |
| | kube-prometheus-stack | | +-----------+ | |
| | | | | ScalarDL | | |
| | +--------------+ +--------------+ +--------------+ | -----(Monitor)----> | +-----------+ | |
| | | Prometheus | | Alertmanager | | Grafana | | +-----------------+ |
| | +-------+------+ +------+-------+ +------+-------+ | |
| | | | | | |
| | +----------------+-----------------+ | |
| | | | |
| +--------------------------+---------------------------+ |
| | | |
| | | Kubernetes |
+----+-----------------------+---------------------------------------------------------------------+
| |
Expose the environment to localhost (127.0.0.1) or use a load balancer to access it
| |
(Access the dashboard through HTTP)
| |
+----+----+ +----+----+
| Browser | <-(Embed)-- + Browser |
+---------+ +---------+
ステップ 1. minikube を起動します
Terminal を開き、次のコマンドを実行して minikube を起動します。
minikube start
ステップ 2. Grafana を埋め込めるように kube-prometheus-stack
をアップグレードする
kube-prometheus-stack
のカスタム値ファイル (たとえば scalar-prometheus-custom-values.yaml
) に、次の構成を追加するか、すでに存在する場合は修正します。
kubeStateMetrics:
enabled: true
nodeExporter:
enabled: true
kubelet:
enabled: true
grafana:
grafana.ini:
users:
default_theme: light
security:
allow_embedding: true
auth.anonymous:
enabled: true
org_name: "Main Org."
org_role: Editor
次に、次のコマンドを実行して Helm インストールをアップグレードします。
helm upgrade scalar-monitoring prometheus-community/kube-prometheus-stack -n monitoring -f scalar-prometheus-custom-values.yaml
ステップ 3. 環境変数を設定する
次のコマンドを実行し、山括弧内の内容を説明に従って置き換えて、Scalar Manager の環境変数を設定します。
SCALAR_MANAGER_RELEASE_NAME=<ADD_RELEASE_NAME>
SCALAR_MANAGER_NAMESPACE=<ADD_NAMESPACE>
SCALAR_MANAGER_CUSTOM_VALUES_FILE=<ADD_PATH_TO_CUSTOM_VALUES_FILE>
SCALAR_MANAGER_CHART_VERSION=<ADD_CHART_VERSION>
ステップ 4. Scalar Manager のカスタム値ファイルを準備する
次の手順に従って、Scalar Manager のカスタム値ファイルを準備します。
scalar-manager-custom-values.yaml
という名前の空のファイルを作成します。- Scalar Manager のカスタム値ファイルを構成するの手順に従います。
ステップ 5. scalar-manager
をインストールしてデプロイする
次のコマンドを実行して、scalar-manager
Helm Chart をインストールしてデプロイします。
helm install ${SCALAR_MANAGER_RELEASE_NAME} scalar-labs/scalar-manager -n ${SCALAR_MANAGER_NAMESPACE} -f ${SCALAR_MANAGER_CUSTOM_VALUES_FILE} --version ${SCALAR_MANAGER_CHART_VERSION}
ステップ 6. Scalar Manager にアクセスする
Scalar Manager にアク セスする方法は、Kubernetes クラスターに使用しているツールによって異なります。
- minikube
- その他の Kubernetes クラスタリングツール
Scalar Manager のサービスリソースをローカルホスト (127.0.0.1) として公開するには、別のターミナルを開き、minikube tunnel
コマンドを実行します。
minikube tunnel
Then, access Scalar Manager by going to http://localhost:8000.
minikube 以 外の Kubernetes クラスターを使用している場合は、各 Kubernetes クラスターの方式に従って LoadBalancer
サービスにアクセスする必要があります。たとえば、クラウドサービスプロバイダーが提供するロードバランサーを使用するか、kubectl port-forward
コマンドを使用する必要があります。
Scalar Manager は Grafana の外部 IP アドレスを検出し、その IP アドレスに基づいて Grafana を埋め込もうとします。そのため、Grafana サービスタイプを LoadBalancer
として設定し、外部 IP アドレスにブラウザーからアクセスできる必要があります。
追加の詳細
このセクションでは、構成とリソース検出に関する追加の詳細について説明します。