|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
アフィニティ値の設定
アフィニティ設定は、SUSE® Observability におけるポッドのスケジューリング動作を制御します。アフィニティ値は、ポッドのスケジューリング場所を制御することによって、リソースの利用を最適化し、高可用性を確保するのに役立ちます。
利用可能な設定オプション
ノードアフィニティ
ノードアフィニティを使用して、特定のノードやインスタンスグループ(同じアベイラビリティゾーンにデプロイされたEC2ノードなど)にポッドをスケジュールできます。
affinity:
# Node Affinity settings - applied to all components when configured
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- us-west-2a
ポッドアンチアフィニティ
ポッドアンチアフィニティを使用して、データサービスのレプリカを異なるノードにスケジュールし、高可用性を確保できます。デフォルトでは、スケジューリングは必須です(ハードアンチアフィニティ)であり、topologyKey は kubernetes.io/hostname です。
affinity:
podAntiAffinity:
# Enable required pod anti-affinity (true = hard, false = soft)
requiredDuringSchedulingIgnoredDuringExecution: true
# Topology key for pod anti-affinity
topologyKey: "kubernetes.io/hostname"
サンプル設定
基本ノードアフィニティ(同じアベイラビリティゾーン) + 高可用性デプロイメントのためのハードポッドアンチアフィニティ
sizing.profile をHAプロファイルの1つに設定したと仮定します。以下の値は、SUSE® Observability のコンポーネントを us-west-2a ゾーンにスケジュールするためのノードアフィニティを設定し、同じデータサービスのレプリカを異なるホストにスケジュールすることを強制します(デフォルトでは affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution=true)。
affinity:
# Schedule all pods to nodes in the same AZ
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- us-west-2a
使用方法
-
推奨方法
-
レガシー方法(廃止)
|
`global.suseObservability`設定方法は`2.8.0`バージョンから利用可能です。以前のバージョンでは、レガシー方法を使用してください。 |
`values.yaml`の下にある`global.suseObservability.affinity`ファイルにアフィニティ設定を直接追加します:
global:
suseObservability:
# Your existing configuration
license: "YOUR-LICENSE-KEY"
baseUrl: "https://observability.example.com"
sizing:
profile: "150-ha"
adminPassword: "your-password"
# Affinity configuration
affinity:
# Node affinity - schedule all pods to nodes in the same AZ
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- us-west-2a
# Pod anti-affinity for HA profiles (infrastructure components)
podAntiAffinity:
# true = hard anti-affinity, false = soft anti-affinity
requiredDuringSchedulingIgnoredDuringExecution: true
topologyKey: "kubernetes.io/hostname"
次に、単一のコマンドでインストールまたはアップグレードします:
helm upgrade --install \
--namespace suse-observability \
--create-namespace \
--values values.yaml \
suse-observability \
suse-observability/suse-observability
| HAプロファイルの場合、ポッドアンチアフィニティはすべてのステートフルデータサービスに自動的に適用されます。デフォルトの動作を変更したい場合のみ、構成する必要があります。 |
レガシー方法からの移行に関する詳細は、移行ガイドを参照してください。
|
この方法は廃止されています。新しいインストールの場合は、上記の推奨方法を使用してください。この方法を使用している既存のインストールについては、新しい設定形式に移行するために移行ガイドを参照してください。 |
==== 手順1:アフィニティ値ファイルを作成する
希望するアフィニティ設定を持つ別の値ファイルを作成します。例えば、次の内容を`suse-observability-values-values.yaml`として保存します:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- us-west-2a
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution: true
==== ステップ2:アフィニティテンプレート値を生成する
次のコマンドを実行してアフィニティ値テンプレートを生成します:
export VALUES_DIR=.
helm template \
--set license='<your license>' \
--set baseUrl='<suse-observability-base-url>' \
--set sizing.profile='<sizing.profile>' \
--values suse-observability-values-values.yaml \
suse-observability-values \
suse-observability/suse-observability-values --output-dir $VALUES_DIR
==== ステップ3:Helmインストールで生成された値を使用する
生成されたアフィニティ値をHelmのインストールに含めてください。
helm upgrade \
--install \
--namespace suse-observability \
--values $VALUES_DIR/suse-observability-values/templates/baseConfig_values.yaml \
--values $VALUES_DIR/suse-observability-values/templates/sizing_values.yaml \
--values $VALUES_DIR/suse-observability-values/templates/affinity_values.yaml \
suse-observability \
suse-observability/suse-observability