コンテナ化された MID Server の自動スケーリング

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む6読むのに数分
  • MID Server は、任意の数のレプリカを使用して StatefulSet を介して展開できます。Kubernetes Horizontal Pod Autoscaler (HPA) を活用して自動的にスケーリングできます。Horizontal Pod Autoscaler は、需要に合わせて作業負荷リソース (展開や StatefulSet など) を自動的に更新します。

    構成フェーズのインジケーターを設定するMID Server がネットワークの内部と外部の要素に接続できることを確認するMID Server を Linux または Windows ホストにダウンロードしてインストールするMID Server を構成MID Server セキュリティを設定MID Server がネットワークの内部と外部の要素に接続できることを確認するMID Server を Linux または Windows ホストにダウンロードしてインストールするMID Server を構成MID Server セキュリティを設定
    Kubernetes は、作業負荷に応じて、任意の数のステートフル MID Server レプリカを追加または削除できます。HPA は、CPU とメモリのメトリックのみをサポートしています。MID Server をステートフルアプリケーションとして展開するには、展開要求フォームの [StatefulSet] セクションに次の情報を指定します。
    • 名前
    • ヘッドレスサービス名
    • 永続ボリューム要求 (PVC)
    • ストレージクラス、アクセスモード、ストレージ要求などのパラメーター
    • リソースの要求/制限

    PVC により、MID Server が config.xml、メタデータファイル、およびそのいくつかのサブフォルダーを格納する目的の永続ボリュームが宣言されます。

    作業負荷の変動中に、実行中の MID Server コンテナを含むポッドを削除して、新しいポッドに置き換えることができます。StatefulSet は、同じ永続ボリュームが新しいポッドに接続されていることを確認し、MID Server がその状態を再開できるようにします。

    永続ボリュームにマウントできるサブフォルダーは、新しい MID Server のインストールで最初は空であるものだけです。config.xml ファイルとその他のメタデータファイルは、ポッドがシャットダウンされたときにバックアップし、起動時に復元する必要があります。

    YAML ファイルとしてエクスポートされた展開要求は、Kubernetes クラスター内に StatefulSet 作業負荷と新しい MID Server ポッドを作成するために使用できます。

    デプロイ YAML ファイルに変更を加えて再適用すると、デプロイの既存のポッドが再作成されます。StatefulSet 展開では、構成ファイルはバックアップ フォルダーから復元されます。init スクリプトは、MID Server を起動する前に、展開環境の変更を検出し、構成ファイルに適用する必要があります。

    HPA 自動スケーリングのアクティブ化

    HPA 自動スケーリングは、HPA コントローラーを作成することで、既存の StatefulSet 作業負荷に対してアクティブ化できます。

    HPA v1 構成を使用してインスタンスで展開要求を作成すると、エクスポートされた YAML ファイルが適用され、HPA 自動スケーリングがすぐに開始されます。

    HPA v2 の場合は、次のテンプレートを使用して個別の YAML ファイルを作成します。
    • minReplicas および maxReplicas:Kubernetes クラスター内の任意の時点での最小および最大の作業負荷リソースレプリカを定義します。

    • metrics:CPU やメモリに基づいてスケールアップまたはスケールダウンの係数を定義します。

    • averageUtilization:使用率の観点からリソース測定基準を指定します。

    • averageValue:直接値でリソース測定基準を指定します。

    • behavior:[動作] フィールドでスケールアップまたはスケールダウンを指定します。

    • policies:仕様の [動作] セクションで 1 つ以上のスケーリングポリシーを指定できます。複数のポリシーが指定されている場合、最大の変更を許可するポリシーがデフォルトで選択されます。

    • periodSeconds:ポリシーが true を保持する必要がある過去の時間の長さを示します。

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: autoscaling-demo-hpa
      namespace: default
      labels:
        app: MIDServerManagement
        provider: ServiceNow
    spec:
      minReplicas: 2
      maxReplicas: 10
      metrics:
      - resource:
          name: cpu
          target:
            averageUtilization: 30
            type: Utilization
        type: Resource
      - resource:
          name: memory 
          target:
            type: AverageValue 
            averageValue: 1Gi
        type: Resource
      behavior: 
        scaleDown:
          stabilizationWindowSeconds: 300
          policies:
          - type: Pods
            value: 4
            periodSeconds: 60
          - type: Percent
            value: 10
            periodSeconds: 60
          selectPolicy: Max
      scaleTargetRef:
       apiVersion: apps/v1
       kind: StatefulSet
       name: autoscaling-demo-ss
    

    Glide プロパティ

    mid.container.deployment.volume_mount.subpaths
    • タイプ:文字列
    • デフォルト値:mid_container、agent/extlib、agent/logs、agent/scripts、agent/security、agent/security_backup、agent/work

    永続ボリュームマウントサブパスのカンマ区切りリストを指定します。

    mid.container.deployment.headless_service_yaml_included
    • Type : True/False
    • デフォルト値:True

    エクスポートされた YAML ファイルにヘッドレスサービスリソースを含めるかどうかを指定します。

    MID Server 設定パラメーター

    mid.drain.timeout
    • タイプ:整数
    • デフォルト値:900

    ドレーン操作のタイムアウトを秒単位で指定します。

    mid.drain.run_before_container_termination
    • タイプ:ブーリアン
    • デフォルト値:true

    コンテナの終了前にコンテナ化された MID Server をドレーンするかどうかを指定します。