間接的に接続された Azure Arc データコントローラーを CLI を使用してアップグレードする
この記事では、Azure CLI (az
) を使用して、間接的に接続された Azure Arc 対応データ コントローラーをアップグレードする方法について説明します。
データ コントローラーのアップグレード中に、カスタム リソース定義 (CRD) やコンテナーなどのデータ コントロール プレーンの一部をアップグレードできます。 データ コントローラーをアップグレードしても、データ サービス (SQL Managed Instance または PostgreSQL サーバー) のダウンタイムは発生しません。
前提条件
imageTag v1.0.0_2021-07-30 以降の、間接的に接続されたデータ コントローラーが必要です。
バージョンを確認するには、次を実行します。
kubectl get datacontrollers -n <namespace> -o custom-columns=BUILD:.spec.docker.imageTag
ツールをインストールする
この記事のタスクに進む前に、次をインストールする必要があります。
この記事の例では、山かっこ < ... >
を使用して、スクリプトを実行する前に置き換える必要がある値を識別します。 山かっこと山かっこ内の値を置き換えます。
arcdata
拡張機能のバージョンとイメージのバージョンは関連しています。 アップグレードするイメージのバージョンに対応する適切な arcdata
拡張機能のバージョンがあることを、バージョン ログで確認します。
使用可能なイメージを表示してバージョンを選択する
次のコマンドを使用して、データ コントローラーで使用可能なイメージの一覧をプルします。
az arcdata dc list-upgrades --k8s-namespace <namespace>
上記のコマンドでは、次の例のような出力が返されます。
Found 2 valid versions. The current datacontroller version is v1.0.0_2021-07-30.
v1.1.0_2021-11-02
v1.0.0_2021-07-30
データ コントローラーをアップグレードする
このセクションでは、間接的に接続されたデータ コントローラーをアップグレードする方法について説明します。
Note
一部のデータ サービス レベルとモードは一般提供段階であり、一部はプレビュー段階です。 同じデータ コントローラーに GA サービスとプレビュー サービスをインストールしている場合、インプレース アップグレードはできません。 アップグレードするには、GA でないすべてのデータベース インスタンスを削除します。 一般公開されているサービスとプレビュー サービスの一覧は、リリース ノートで確認できます。
サポートされているアップグレード パスについては、「Azure Arc 対応データ サービスのアップグレード」を参照してください。
アップグレード
Azure Arc データ コントローラーのアップグレードを開始する前に、Kubernetes クラスターに接続して認証し、既存の Kubernetes コンテキストを選択しておく必要があります。
ドライ ランを最初に実行できます。 ドライ ランでは、レジストリの存在、バージョン スキーマ、およびプライベート リポジトリ認可トークン (使用されている場合) が検証されます。 ドライ ランを実行するには、az arcdata dc upgrade
コマンドで --dry-run
パラメーターを使用します。 次に例を示します。
az arcdata dc upgrade --desired-version <version> --k8s-namespace <namespace> --dry-run --use-k8s
前のコマンドの出力は次のようになります。
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
****Dry Run****
Arcdata Control Plane would be upgraded to: <version-tag>
データ コントローラーをアップグレードするには、イメージ タグを --desired-version
で指定して az arcdata dc upgrade
コマンドを実行します。
az arcdata dc upgrade --name <data controller name> --desired-version <image tag> --k8s-namespace <namespace> --use-k8s
例:
az arcdata dc upgrade --name arcdc --desired-version v1.7.0_2022-05-24 --k8s-namespace arc --use-k8s
前のコマンドの出力には、手順の状態が表示されます。
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Creating service account: arc:cr-upgrade-worker
Creating cluster role: arc:cr-upgrade-worker
Creating cluster role binding: arc:crb-upgrade-worker
Cluster role binding: arc:crb-upgrade-worker created successfully.
Cluster role: arc:cr-upgrade-worker created successfully.
Service account arc:cr-upgrade-worker has been created successfully.
Creating privileged job arc-elevated-bootstrapper-job
アップグレードの状態を監視する
アップグレードは 2 つの部分からなるプロセスです。 最初にコントローラーがアップグレードされ、次に監視スタックがアップグレードされます。 CLI でアップグレードの進捗状況を監視できます。
CLI
az arcdata dc status show --name <data controller name> --k8s-namespace <namespace> --use-k8s
アップグレードが完了すると、出力は次のようになります。
Ready
トラブルシューティング
目的のバージョンが特定のバージョンに設定されている場合、ブートストラップ ジョブでは成功するまでそのバージョンへのアップグレードが試行されます。 アップグレードが成功すると、仕様の RunningVersion
プロパティが新しいバージョンに更新されます。 イメージ タグが正しくない、レジストリまたはリポジトリに接続できない、コンテナーに割り当てられた CPU またはメモリが不足している、ストレージが不足しているなどのシナリオでは、アップグレードが失敗する可能性があります。
次のコマンドを実行して、いずれかのポッドで
Error
状態が表示されているか、または再起動回数が多くなっているかを確認します。kubectl get pods --namespace <namespace>
イベントを調べてエラーがあるかどうかを確認するには、以下を実行します
kubectl describe pod <pod name> --namespace <namespace>
ポッド内のコンテナーの一覧を取得するには、以下を実行します
kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
コンテナーのログを取得するには、以下を実行します
kubectl logs <pod name> <container name> --namespace <namespace>
一般的なエラーとそのトラブルシューティング方法を確認するには、「トラブルシューティング リソース」を参照してください。