バージョン 1.2.0 にアップグレードする
Apigee ハイブリッドをバージョン 1.2.0 にアップグレードするには次のようにします。
ステップ 1: Kubernetes をアップグレードし、リリース パッケージをダウンロードする
- Kubernetes プラットフォームを次のようにアップグレードします。サポートが必要な場合は、プラットフォームのドキュメントに従ってください。
プラットフォーム アップグレードするバージョン GKE 1.14.x Anthos 1.2 AKS 1.14.x ご使用のオペレーティング システムに対応したリリース パッケージをダウンロードします。
Mac 64 ビット:
curl -LO \ https://storage.googleapis.com/apigee-public/apigee-hybrid-setup/1.2.0/apigeectl_mac_64.tar.gz
Linux 64 ビット
curl -LO \ https://storage.googleapis.com/apigee-public/apigee-hybrid-setup/1.2.0/apigeectl_linux_64.tar.gz
Mac 32 ビット:
curl -LO \ https://storage.googleapis.com/apigee-public/apigee-hybrid-setup/1.2.0/apigeectl_mac_32.tar.gz
Linux 32 ビット
curl -LO \ https://storage.googleapis.com/apigee-public/apigee-hybrid-setup/1.2.0/apigeectl_linux_32.tar.gz
ステップ 2: インストール ディレクトリを再構成する
- Apigee ハイブリッドの最初のインストール時に作成されたインストールのベース ディレクトリを特定します。ベース ディレクトリは、
$APIGEEGTL_HOME
ディレクトリが存在するディレクトリです。次の例では、ベース ディレクトリは/Users/myhome/hybrid
です。echo $APIGEECTL_HOME /Users/myhome/hybrid/apigeectl
-
ダウンロードした gzip ファイルの内容を Apigee ハイブリッドのベース ディレクトリに展開します。
tar xvzf filename.tar.gz -C path-to-base-directory
cd
でベース ディレクトリに移動します。-
デフォルトでは、tar の内容が展開されるディレクトリの名前には、バージョンとプラットフォームが含まれます。例:
./apigeectl_1.2.0-f7b96a8_linux_64
。 - 現在の
apigeectl
ディレクトリ名を変更します。たとえば、現在のバージョンが 1.1.1 の場合は、apigeectl
ディレクトリの名前をapigeectl_1.1.1
に変更します。 -
新しく展開したインストール ディレクトリの名前を
apigeectl
に変更します。これで、環境$APIGEECTL_HOME
がここを指すようになりました。
ステップ 3: オーバーライド ファイルを更新する
- オーバーライド ファイルのコピーを作成し、ロールバックが必要になった場合に備えて古いファイルを保存してください。次の手順では、オーバーライド ファイルをクラスタに適用する前に、必要な変更を行います。
オーバーライド ファイルを更新して、次の変更を加えます。
オーバーライド ファイルに行う必要がある構成変更の概要を次に示します。完全な例は、概要に続く表に示します。
envs[]
プロパティは以前のバージョンから大幅に変更されています。- プロパティ
envs[].hostAlias
は削除され、新しいプロパティvirtualhosts.hostAliases[]
に置き換えられました。 - 新しい必須構成プロパティ
virtualhosts
を追加する必要があります。 envs[].sslCertPath
プロパティとenvs[].sslKeyPath
プロパティをenvs
からvirtualhosts
に移動する必要があります。virtualhosts.routingRules
構成スタンザを追加する必要があります。virtualhosts.routingRules
プロパティは、以前のenvs[].paths
プロパティに代わるものです。オーバーライド ファイルにenvs[].paths
が含まれている場合は削除する必要があります。仮想ホストの構成の詳細については、仮想ホストの構成をご覧ください。
次の表に、1.1.1 のオーバーライド ファイルとバージョン 1.2.0 のファイルの違いを示します。この例では、バージョン 1.2.0 で行う必要がある変更の種類について説明します。
v1.1.x の構成 v1.2.0 の構成 envs: - name: test1 hostAlias: "api.example.com" sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem serviceAccountPaths: synchronizer: ./sa/sync.json udca: ./sa/udca.json paths: uri: prefixes: - /orders - /items - name: test2 hostAlias: "api.example.com" sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem serviceAccountPaths: synchronizer: ./sa/sync.json udca: ./sa/udca.json paths: uri: prefixes: - /v0/hello - /httpbin
virtualhosts: - name: default hostAliases: ["api.example.com"] sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.pem routingRules: - paths: - /orders - /items env: test1 - paths: - /v0/hello - /httpbin env: test2 envs: - name: test1 serviceAccountPaths: synchronizer: ./sa/synchronizer.json udca: ./sa/udca.json - name: test2 serviceAccountPaths: synchronizer: ./sa/synchronizer.json udca: ./sa/udca.json
- プロパティ
ステップ 4: クラスタにアップグレードを適用する
- バージョン 1.1.1 のインストールで Apigee Connect を有効にしていた場合は、そのデプロイを削除する必要があります。
- まず、Apigee Deployment を一覧表示します。
kubectl -n namespace get ad
- Apigee Connect のデプロイを削除します。
kubectl -n namespace delete ad apigee-connect-name
- まず、Apigee Deployment を一覧表示します。
- Pod を一覧表示します。
kubectl get pods -n namespace
- クラスタから
apigee-cps-setup
Pod を削除します。前のコマンドで返された組織名を含む Pod のフルネームを使用します。次に例を示します。kubectl -n namespace delete pod apigee-cps-setup-org
- 同じ名前空間内の
apigee-cps-create-user
Pod を削除します。kubectl -n namespace delete pod apigee-cps-create-user
- ハイブリッド ランタイムの名前空間の完了したジョブをクリーンアップします。名前空間を指定した場合、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}')
istio-system
名前空間の完了したジョブをクリーンアップします。kubectl delete job -n istio-system \ $(kubectl get job -n istio-system -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
cd
で./hybrid-files
ディレクトリに移動します。- 新しいバージョンの
apigeectl
を初期化します。$APIGEECTL_HOME/apigeectl init -f overrides/overrides-file.yaml
- 初期化が完了したかどうかを確認します。
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides-file.yaml
check-ready
が「All containers are ready」と返したら、「ドライラン」インストールを試すことができます。--dry-run=true
フラグを指定してapply
コマンドを実行します。ドライランでは、クラスタが変更される前にエラーがないかどうかを確認できます。$APIGEECTL_HOME/apigeectl apply -f overrides/overrides-file.yaml --dry-run=true
-
エラーがなければ、Apigee 固有のランタイム コンポーネントをクラスタに適用できます。
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides-file.yaml
check-ready
を再実行して、アップグレードが完了したことを確認します。
アップグレードのロールバック
以前のアップグレードをロールバックするには次のようにします。
- ハイブリッド ランタイムの名前空間の完了したジョブをクリーンアップします。名前空間を指定した場合、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}')
istio-system
名前空間の完了したジョブをクリーンアップします。kubectl delete job -n istio-system \ $(kubectl get job -n istio-system -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
- Apigee 演算子のデプロイを削除します。このオペレーションは、ランタイム トラフィックには影響しません。
kubectl -n apigee-system delete deployment apigee-controller-manager
- 元のバージョンの
apigeectl
を含むディレクトリを指すように$APIGEECTL_HOME
変数を変更します。次に例を示します。export APIGEECTL_HOME=path-to-original-apigeectl-directory
- ロールバックするインストールのルート ディレクトリで、
apigeectl init
を実行し、次にapigeectl apply
を実行します。必ずロールバックするバージョンの元のオーバーライド ファイルを使用してください。$APIGEECTL_HOME
/apigeectl init -f overrides/original-overrides.yaml$APIGEECTL_HOME
/apigeectl apply -f overrides/original-overrides.yaml