この手順では、Apigee ハイブリッド バージョン 1.9.x から Apigee ハイブリッド バージョン 1.10.5 へのアップグレードと、ハイブリッド 1.10.x の以前のリリースからバージョン 1.10.5 へのアップグレードについて説明します。
マイナー バージョンのアップグレード(バージョン 1.9 から 1.10 など)とパッチリリース アップグレード(1.10.0 から 1.10.5 など)にも同じ手順を使用します。
バージョン 1.10.5 へのアップグレードの概要
以降のセクションでは、Apigee Hybrid のアップグレード手順を次の順番で説明します。
前提条件
以下のアップグレード手順は、Apigee ハイブリッド バージョン 1.9 x がインストールされており、バージョン 1.10.5 にアップグレードすることを前提としています。それ以前のバージョンから更新する場合は、Apigee ハイブリッド バージョン 1.9 へのアップグレードをご覧ください。
バージョン 1.10 へのアップグレードを準備する
ハイブリッド インストールをバックアップする(推奨)
- この手順では、
apigeectl
をインストールしたファイル システム内のディレクトリの環境変数 APIGEECTL_HOME を使用します。必要に応じて、ディレクトリをapigeectl
ディレクトリに変更し、次のコマンドで変数を定義します。Linux
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Mac OS
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Windows
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- バージョン 1.9 の
$APIGEECTL_HOME/
ディレクトリのバックアップを作成します。次に例を示します。tar -czvf $APIGEECTL_HOME/../apigeectl-v1.9-backup.tar.gz $APIGEECTL_HOME
- Cassandra のバックアップと復元の手順に沿って Cassandra データベースをバックアップします。
Kubernetes のバージョンをアップグレードする
Kubernetes プラットフォームのバージョンを確認し、必要に応じて Kubernetes プラットフォームを、ハイブリッド 1.9 とハイブリッド 1.10 の両方でサポートされているバージョンにアップグレードします。ヘルプが必要な場合は、プラットフォームのドキュメントをご覧ください。
ハイブリッド 1.10.5 ランタイムをインストールする
- ハイブリッド ベース ディレクトリ(
apigeectl
実行可能ファイルが配置されているディレクトリの親)にいることを確認します。cd $APIGEECTL_HOME/..
-
次のコマンドを使用して、ご利用のオペレーティング システムに対応したリリース パッケージをダウンロードします。ご利用のプラットフォームを次の表から選択します。
Linux
Linux 64 ビット:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_linux_64.tar.gz
macOS
Mac 64 ビット:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_mac_64.tar.gz
Windows
Windows 64 ビット
curl -LO ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_windows_64.zip
- 現在の
apigeectl/
ディレクトリをバックアップ ディレクトリ名に変更します。例:Linux
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/
macOS
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/
Windows
rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.9
-
ダウンロードした gzip ファイルの内容をハイブリッドのベース ディレクトリに展開します。 ハイブリッドのベース ディレクトリは、名前が変更された
apigeectl-v1.9
ディレクトリがあるディレクトリです。Linux
tar xvzf filename.tar.gz -C ./
macOS
tar xvzf filename.tar.gz -C ./
Windows
tar xvzf filename.zip -C ./
-
デフォルトでは、tar の内容が展開されるディレクトリの名前には、バージョンとプラットフォームが含まれています。たとえば、
./apigeectl_1.10.5-xxxxxxx_linux_64
となります。次のコマンドを使用して、このディレクトリの名前をapigeectl
に変更します。Linux
mv apigeectl_1.10.5-xxxxxxx_linux_64 apigeectl
macOS
mv apigeectl_1.10.5-xxxxxxx_mac_64 apigeectl
Windows
rename apigeectl_1.10.5-xxxxxxx_windows_64 apigeectl
-
apigeectl
ディレクトリに移動します。cd ./apigeectl
このディレクトリは
apigeectl
ホーム ディレクトリになります。apigeectl
実行可能コマンドはこのディレクトリに配置されます。 - この手順では、
apigeectl
ユーティリティがインストールされているファイル システムのディレクトリを表す環境変数$APIGEECTL_HOME
を使用します。必要に応じて、ディレクトリをapigeectl
ディレクトリに変更し、次のコマンドで変数を定義します。Linux
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Mac OS
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Windows
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
version
コマンドでapigeectl
のバージョンを確認します。./apigeectl version
Version: 1.10.5
hybrid-base-directory/hybrid-files
ディレクトリを作成し、そのディレクトリに移動します。hybrid-files
ディレクトリには、オーバーライド ファイル、証明書、サービス アカウントなどの構成ファイルがあります。例:Linux
mkdir $APIGEECTL_HOME/../hybrid-files
cd $APIGEECTL_HOME/../hybrid-files
macOS
mkdir $APIGEECTL_HOME/../hybrid-files
cd $APIGEECTL_HOME/../hybrid-files
Windows
mkdir %APIGEECTL_HOME%/../hybrid-files
cd %APIGEECTL_HOME%/../hybrid-files
- 次のコマンドを使用して、
kubectl
が正しいコンテキストに設定されていることを確認します。現在のコンテキストは、Apigee ハイブリッドをアップグレードするクラスタに設定する必要があります。kubectl config get-contexts | grep \*
hybrid-files
ディレクトリにおいて:-
以下の
$APIGEECTL_HOME
へのシンボリック リンクを更新します。これらのリンクにより、hybrid-files
ディレクトリから新しくインストールされたapigeectl
コマンドを実行できます。ln -nfs
$APIGEECTL_HOME
/tools toolsln -nfs
$APIGEECTL_HOME
/config configln -nfs
$APIGEECTL_HOME
/templates templatesln -nfs
$APIGEECTL_HOME
/plugins plugins - シンボリック リンクが正しく作成されたことを確認するには、次のコマンドを実行してリンクパスが正しい場所を指していることを確認します。
ls -l | grep ^l
-
以下の
apigee-operator
グラフで正しいタグ1.10.5-hotfix.1
を使用できるように、overrides.yaml ファイルを次のように変更します。ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.10.5-hotfix.1"
- ドライランの初期化を行ってエラーを確認します。
${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client
ここで、OVERRIDES_FILE はオーバーライド ファイルの名前です(例:
./overrides/overrides.yaml
)。 - エラーがなければ、ハイブリッド 1.10.5 を初期化します。
$APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
- 初期化のステータスを確認します。
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
成功すると、「
All containers ready.
」と出力されます。kubectl describe apigeeds -n apigee
出力で「
State: running
」を探します。 --dry-run
フラグを使用して、apply
コマンドのドライランでエラーを確認します。$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
- エラーがない場合、オーバーライドを適用します。インストールに応じて、本番環境または非本番環境用の手順を選択し実行します。
本番環境
本番環境では各ハイブリッド コンポーネントを個別にアップグレードし、次のコンポーネントに進む前に、アップグレードされたコンポーネントのステータスを確認します。
hybrid-files
ディレクトリに移動します。- オーバーライドを適用して Cassandra をアップグレードします。
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --datastore
- 完了を確認します。
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
Pod の準備ができた場合にのみ、次の手順に進みます。
- オーバーライドを適用してテレメトリー コンポーネントをアップグレードし、完了を確認します。
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --telemetry
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- Redis コンポーネントを起動します。
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
- オーバーライドを適用して、組織レベルのコンポーネント(MART、Watcher、Apigee Connect)をアップグレードし、完了を確認します。
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --org
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- オーバーライドを適用して環境をアップグレードします。これには、次の 2 つの選択肢があります。
- 環境別の環境: 一度に 1 つの環境にオーバーライドを適用して、完了を確認します。環境ごとにこの手順を繰り返します。
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --env ENV_NAME
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
ここで、ENV_NAME はアップグレードする環境の名前です。
- 一度にすべての環境: すべての環境にオーバーライドを一度に適用して、完了を確認します。
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --all-envs
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- 環境別の環境: 一度に 1 つの環境にオーバーライドを適用して、完了を確認します。環境ごとにこの手順を繰り返します。
- オーバーライドを適用して
virtualhosts
コンポーネントをアップグレードし、完了を確認します。$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
非本番環境
非本番環境、デモ環境、試験運用版環境の大半では、すべてのコンポーネントに同時にオーバーライドを適用できます。非本番環境が大規模で複雑な場合や、本番環境とよく似ている場合は、本番環境をアップグレードするための手順の使用をおすすめします。
hybrid-files
ディレクトリに移動します。$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE
- ステータスを確認します。
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
アップグレードのロールバック
以前のアップグレードをロールバックするには次のようにします。
- ハイブリッドのランタイム名前空間の完了したジョブをクリーンアップします。ここで、名前空間を指定した場合、NAMESPACE は、オーバーライド ファイルで指定された名前空間です。名前空間を指定しない場合、デフォルトの名前空間は
apigee
です。kubectl delete job -n NAMESPACE \ $(kubectl get job -n NAMESPACE \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
apigee-system
名前空間の完了したジョブをクリーンアップします。kubectl delete job -n apigee-system \ $(kubectl get job -n apigee-system \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
- 以前のバージョンの
apigeectl
を含むディレクトリを指すようにAPIGEECTL_HOME
変数を変更します。次に例を示します。export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
- ロールバックするインストールのルート ディレクトリで、
apigeectl apply
を実行し、Pod のステータスを確認してからapigeectl init
を実行します。必ずロールバックするバージョンの元のオーバーライド ファイルを使用してください。- ハイブリッド ファイル ディレクトリで、
apigeectl apply
を実行します。$APIGEECTL_HOME
/apigeectl apply -f ORIGINAL_OVERRIDES_FILEここで、ORIGINAL_OVERRIDES_FILE は、以前のバージョンのハイブリッド インストールのオーバーライド ファイルの相対パスとファイル名です(例:
./overrides/overrides1.9.yaml
)。 - ポッドのステータスを確認します。
kubectl -n NAMESPACE get pods
ここで、NAMESPACE は Apigee ハイブリッドの名前空間です。
apigeeds
のステータスを確認します。kubectl describe apigeeds -n apigee
出力は次のようになります。
Status: Cassandra Data Replication: Cassandra Pod Ips: 10.8.2.204 Cassandra Ready Replicas: 1 Components: Cassandra: Last Successfully Released Version: Revision: v1-f8aa9a82b9f69613 Version: v1 Replicas: Available: 1 Ready: 1 Total: 1 Updated: 1 State: running Scaling: In Progress: false Operation: Requested Replicas: 0 State: running
apigeeds
Pod が実行されている場合にのみ、次の手順に進みます。- 次のコマンドを実行して、アップグレード後に Message Processor の新しいレプリカ数の値をメモします。これらの値が、以前に設定した値と一致しない場合は、オーバーライド ファイルの値を、以前の構成と一致するように変更します。
apigeectl apply -f ORIGINAL_OVERRIDES_FILE --dry-run=client --print-yaml --env ENV_NAME 2>/dev/null |grep "runtime:" -A 25 -B 1| grep "autoScaler" -A 2
出力は次のようになります。
autoScaler: minReplicas: 2 maxReplicas: 10
apigeectl init
を実行します。$APIGEECTL_HOME
/apigeectl init -f ORIGINAL_OVERRIDES_FILE
- ハイブリッド ファイル ディレクトリで、