ack-onepilot コンポーネントは、Kubernetes クラスター内の Application Real-Time Monitoring Service (ARMS) エージェントを自動的に更新します。広範な展開の前に新しいエージェントバージョンを検証する必要がある場合や、安定性のために特定のバージョンを維持する必要がある場合は、自動更新を受け入れる代わりに、エージェントを特定のバージョンに固定します。
クラスター内の ack-onepilot のバージョンに基づいて、いずれかの方法を選択してください:
| タスク | 方法 | ack-onepilot バージョン |
|---|---|---|
| 特定のエージェントバージョンを固定 (セルフサービス) | ラベルまたは API を介したバージョンの指定 | V3.0.17 以降 |
| インスタンスのサブセットへのバージョンの先行展開 | プログレッシブアップデートの有効化 | V3.3.0 以降 |
| セルフサービスが利用できない場合のバージョン固定 | テクニカルサポートへの連絡 | V3.0.17 より前 |
エージェントバージョンの指定
要件:ack-onepilot V3.0.17 以降。バージョンを確認するには、Container Service for Kubernetes (ACK) コンソールに移動し、[アドオン] をクリックして ack-onepilot を見つけ、そのバージョンを確認します。アップグレードが利用可能な場合は、[アップグレード] をクリックします。

これは、エージェントバージョンを管理するための推奨アプローチです。3 つの方法が利用可能です。方法 1 と方法 2、または方法 1 と方法 3 の両方を使用する場合、方法 2 または方法 3 で指定されたバージョンが方法 1 よりも優先されます。
ステップ 1:ターゲットエージェントバージョンの確認
ARMS コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
使用するバージョン番号をメモします。ご利用の環境で特定のバージョンが必要でない限り、最新の安定バージョンを選択してください。

[エージェントオンラインステータス] タブで、各アプリケーションの現在のエージェントバージョンを記録します。このバージョンは、問題が発生した場合のロールバック先として機能します。
ステップ 2:バージョンの適用
次のいずれかの方法を選択します。
方法 1:YAML ラベル
アプリケーションの YAML ファイルに aliyun.com/agent-version ラベルを追加します:
metadata:
labels:
aliyun.com/agent-version: "<agent-version>"<agent-version> をステップ 1 で確認したバージョン番号に置き換えます。
ファイルを保存して [更新] をクリックすると、アプリケーションが自動的に再起動し、指定されたバージョンが適用されます。

このラベルは現在のアプリケーションにのみ適用されます。バージョン固定が必要な各アプリケーションに対して、この手順を繰り返してください。
方法 2:EDAS コンソール
Enterprise Distributed Application Service (EDAS) コンソールを介して Kubernetes クラスターにアプリケーションをデプロイする場合、[詳細設定] タブの [監視およびガバナンス設定] セクションでエージェントバージョンを指定します。
EDAS で利用可能なエージェントバージョンを調整するには、EDAS のテクニカルサポートにご連絡ください。
方法 3:EDAS API
EDAS API を介してアプリケーションを作成またはデプロイする場合、InsertK8sApplication または DeployK8sApplication 操作で CustomAgentVersion パラメーターを設定します。
ステップ 3:検証と展開
まず、テストアプリケーションにバージョンを適用します。
新しいエージェントバージョンでアプリケーションが期待どおりに動作することを検証します。
検証が成功したら、残りのアプリケーションに対してステップ 2 を繰り返します。
新しいエージェントバージョンで問題が発生した場合は、ラベルまたはパラメーターをステップ 1 で記録した以前のバージョンに戻してロールバックします。
プログレッシブアップデートの有効化
要件:ack-onepilot V3.3.0 以降。アプリケーションのワークロードには 3 つ以上のレプリカが必要です。
プログレッシブアップデートを使用すると、新しいエージェントバージョンがワークロード全体に適用される前に、インスタンスの小さなサブセットで検証できます。
両方のラベルをアプリケーションの YAML に追加します:
metadata:
labels:
aliyun.com/agent-version: "<agent-version>"
aliyun.com/enable-progressive-update: "true"プログレッシブアップデートが有効になっている ACK クラスターで Deployment または StatefulSet ワークロードを再デプロイすると、指定されたエージェントバージョンを受け取るのは 1〜2 個のインスタンスのみです。残りのインスタンスは現在のバージョンを維持します。
制限事項
プログレッシブアップデートには、少なくとも 3 つのレプリカが必要です。ワークロードのレプリカが 3 つ未満の場合、ラベルが設定されていても、指定されたバージョンに更新されるインスタンスはありません。この場合、ワークロードに対してプログレッシブアップデートを有効にしないでください。
プログレッシブアップデートは、Deployment および StatefulSet ワークロードにのみ適用されます。
テクニカルサポートへの連絡によるバージョン固定
この方法は、ack-onepilot が V3.0.17 より前の場合、またはご利用の環境で手動での YAML 変更が必要な場合に使用します。このアプローチでは、バージョンロックを使用して、非推奨またはサポート対象外のバージョンから最新バージョンにエージェントを移行します。
テストアプリケーションを選択します。ARMS のテクニカルサポートに連絡して、エージェントをターゲットバージョンにロックしてもらいます。
テストアプリケーションを再起動し、新しいエージェントバージョンを検証します。
検証が成功したら、ARMS のテクニカルサポートに連絡して、残りのクラスター全体でロックされたバージョンをバッチで更新してもらいます。
各バッチのアプリケーションを再起動して、更新を適用します。
ベストプラクティス
広範な展開前の検証:まず、単一のテストアプリケーションで新しいバージョンを固定します。残りのアプリケーションを更新する前に、正常な動作を確認してください。
本番ワークロードでのプログレッシブアップデートの使用:3 つ以上のレプリカを持つワークロードでは、プログレッシブアップデートを有効にして、バージョン変更時の影響範囲を限定します。
変更前の現在バージョンの記録:新しいバージョンを固定する前に、[エージェントオンラインステータス] タブで現在のエージェントバージョンをメモしておくと、迅速にロールバックできます。
ack-onepilot の最新化:ack-onepilot を V3.0.17 以降にアップグレードするとセルフサービスのバージョン固定が、V3.3.0 以降にアップグレードするとプログレッシブアップデートが利用可能になり、テクニカルサポートに依存する必要がなくなります。