Dell Automation Platform: アップグレードの問題 Portal Vault が起動しない
概要: この記事では、ポータル ヴォールト ポッドが起動しない場合のDell Automation Platformアップグレードの問題の解決策について説明します。
現象
Dell Automation Platformをアップグレードすると、競合する変異Webhookが原因で問題が発生する可能性があります。
最初の症状は、次のステップでアップグレードが長時間(25分以上)停止することです。 PORTAL ChartKey 配備。主なインストール ログには、次の情報が表示されます。
... Orchestrator chart exists. Skip unarchive... Portal chart exists. Skip unarchive... Portal Installation has started OperationType: INSTALL OperationStatus: IN_PROGRESS ChartKey: PORTAL
この問題は通常、ポータル ヴォールトの導入がポッドのリストに表示される瞬間にアップグレードをブロックします。ヴォールトは、2つの導入について2/3の[READY]状態を示しています。という感じで:
#kubectl get po -A ... dapp edgevault-0 3/3 Running 0 30m dapp edgevault-1 2/3 Running 0 30m dapp edgevault-2 2/3 Running 0 30m ...
ログには、ヴォールトがノード間で通信できないことが示されています。
2025-10-30T15:27:26.896Z [INFO] core: attempting to join possible raft leader node: leader_addr=http://edgevault-2.edgevault-internal:8200 2025-10-30T15:27:26.900Z [ERROR] core: failed to retry join raft cluster: retry=2s err="failed to send answer to raft leader node: error bootstrapping cluster: cluster already has state" 2025-10-30T15:27:28.664Z [ERROR] core: failed to get raft challenge: leader_addr=http://edgevault-1.edgevault-internal:8200 error="error during raft bootstrap init call: context deadline exceeded" 2025-10-30T15:27:28.664Z [ERROR] core: failed to get raft challenge: leader_addr=http://edgevault-0.edgevault-internal:8200 error="error during raft bootstrap init call: context deadline exceeded"
原因
この問題の根本原因は、Orchestrator で競合する Mutating Webhook であり、ポータルに干渉します
この競合は、Orchestrator の Mutating Webhook が適切に設定されていないと、サイドカーが送信トラフィックの暗号化に失敗した場合に発生します。その結果、SSL ターミネーション ロジックはトラフィックを適切に処理できず、名前空間の混乱につながります。この問題は通常、2.2 NativeEdge Orchestrator (NEO)以前の リリースで最初にインストールされ、後でアップグレードされたインストールで発生します。
説明
Mutating Webhookは、ポッドなどのリソースを作成または更新する前に変更できるKubernetesの機能です。Dell Automation Platformのコンテキストでは、OrchestratorのWebhookの変更は、サイドカーをポッドに挿入する上で重要な役割を果たします。従来、インストールは単一のネームスペースで行われていたため、ネームスペースセレクタは必要ありませんでした。ただし、新しいバージョンでは、Orchestrator の Mutating Webhook が他のコンポーネントに干渉しないように、名前空間セレクターが必要です。これにより、サイドカー インジェクションが正しい名前空間内で行われるようになります。
解決方法
この問題を解決するには、アップグレード プロセスを開始する前に、Orchestrator の Webhook の変更設定を変更する必要があります。
- アップグレード前のスナップショットへのロールバック
- からチェックポイント データを削除します。
ConfigMapsの詳細を確認してください。これにより、クリーンで正常なアップグレードプロセスが保証されます。削除するにはConfigMapsで、次のコマンドを使用します。
#kubectl get cm -A | grep check hzp checkpoint-data 7 31m #kubectl delete cm checkpoint-data -n hzp
Webhookの修正:
アップグレードを開始(または再起動)する前に、次のエントリーを webhooks.namespaceSelector.matchExpressions Orchestrator の Mutating Webhook 設定のパス:
kubectl edit mutatingwebhookconfigurations hzp-iam-sidecar-injector
次のセクションを見つけます。
....
namespaceSelector:
matchExpressions:
...
このセクションにこのスニペットが含まれていない場合は、このスニペットを追加します。インデントは重要です!
- key: kubernetes.io/metadata.name
operator: In
values:
- hzp
これにより、オーケストレーターの変更 Webhook がポータルに干渉するのを防ぎます。適用すると、サイドカー インジェクションは "portal" 名前空間に適用されません。これにより、すべてのポッドで発生する問題が解決されます。