コンテンツにスキップ

Kodo-X 分割

注意

実装前に本書をよく読み、バックアップ措置とロールバック計画を必ず準備した上で、システムの安全性と安定性を確保してください。

概要

大量の書き込みリクエストを処理する際、kodo-x のリソース消費が特定の種類の処理タスク、特に metric データ処理に集中し、その他のデータが適時に消費されず、データの滞留問題が発生する可能性があります。

解決策の考え方:

  1. 独立した kodo-x インスタンスを作成し、metric データ専用の処理を担当させることで、既存インスタンスのリソース占有を軽減します。
  2. 既存の kodo-x インスタンスを変更し、metric データを処理しないようにして、他のタスクに集中させます。

アーキテクチャ図

分割前:

分割後:

前提条件

  • Guanceクラスターの操作権限を有していること
  • 事前に kodo-x および分割後の kodo-x-metric のスケジューリングリソースを計画していること

実装手順

1. サービスのバックアップ

kubectl get deploy -n forethought-kodo  kodo-x -o yaml > kodo-x-deploy.yaml

2. kodo-x-metric サービスの作成

2.1 kodo-x-metric ConfigMap の作成

kubectl get cm -n forethought-kodo kodo-x -o yaml > kodo-x-metric-cm.yaml

以下の情報を変更します:

  • name を kodo-x-metric に変更
  • resourceVersionuid フィールドを削除
kubectl apply -f kodo-x-metric-cm.yaml

2.2 kodo-x-metric Deployment の作成

kubectl get deploy -n forethought-kodo  kodo-x -o yaml  > kodo-x-deploy.yaml

以下の情報を変更します:

  • 「metadata」-「name」 を kodo-x-metric に変更
  • 「metadata」 配下の resourceVersionuid フィールドを削除
  • 「volumeMounts」 と 「volumes」 配下の name を kodo-x-metric に変更
...
metadata:
  name: kodo-x-metric    ##### kodo-x-metric に変更
  namespace: forethought-kodo 
  resourceVersion: "129925433"   ##### 削除
  uid: e4f0c541-4d91-47d4-82c8-91eec2757cb2   ##### 削除
...
        volumeMounts:
        - mountPath: /kodo/config/config.yaml
          name: kodo-x-metric  ##### kodo-x-metric に変更
          subPath: config.yaml

      volumes:
      - configMap:
          defaultMode: 420
          name: kodo-x-metric ##### kodo-x-metric に変更
          optional: false
        name: kodo-x-metric ##### kodo-x-metric に変更
kubectl apply -f kodo-x-deploy.yaml

3. kodo-x-metric サービスの作成

3.1 kodo-x-metric パラメータの変更

設定ファイル:kodo-x-metric.yaml(その他の設定は既存の kodo-x.yaml と同じ)

global:
    metric_workers: 32  # metric データの処理能力を向上
    object_workers: 8
    keyevent_workers: 8
    workers: 0  # デフォルトワーカーを無効化
    log_workers: 0  # ログ処理を無効化
    backup_log_workers: 0  # バックアップログ処理を無効化

関連情報については、アプリケーションサービス設定項目ガイドを参照してください。

サービスを再起動します:

kubectl rollout restart -n forethought-kodo deploy kodo-x-metric

3.2 kodo-x パラメータの変更

既存の kodo-x インスタンスは metric 以外のタスクのみを処理するようになり、リソース配分がさらに最適化されます。

設定ファイル:kodo-x.yaml

global:
    metric_workers: -1  # metric データ処理を無効化
    object_workers: -1  # オブジェクト処理を無効化
    keyevent_workers: -1  # キーイベント処理を無効化

サービスを再起動します:

kubectl rollout restart -n forethought-kodo deploy kodo-x

4. 検証

以下のコマンドを実行して、設定が反映されているか確認します:

kubectl exec -ti -n forethought-kodo  deploy/kodo-x -- cat config/config.yaml | grep -15 global
kubectl exec -ti -n forethought-kodo  deploy/kodo-x-metric -- cat config/config.yaml | grep -15 global

フィードバック

このページは役に立ちましたか?