バージョン 1.7.6 へのアップグレードの概要
以降のセクションでは、Apigee Hybrid のアップグレード手順を次の順番で説明します。
- バージョン 1.7 へのアップグレードを準備する。
- ハイブリッド ランタイム バージョン 1.7.6 をインストールする。
- cert-manager をアップグレードする。
- ASM をアップグレードする。
前提条件
以下のアップグレード手順は、Apigee ハイブリッド バージョン 1.6.x またはバージョン 1.7.x の以前のパッチリリースがインストールされている状態でバージョン 1.7.6 にアップグレードすることを前提としています。以前のバージョンから更新する場合は、Apigee ハイブリッド バージョン 1.6 へのアップグレードをご覧ください。
バージョン 1.7 へのアップグレードを準備する
ハイブリッド インストールをバックアップする
- この手順では、
apigeectl
ユーティリティがインストールされているファイル システムのディレクトリを環境変数$APIGEECTL_HOME
で表しています。必要であれば、cd
でapigeectl
ディレクトリに移動して、次のコマンドで変数を定義してください。export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- (推奨)バージョン 1.6 の
$APIGEECTL_HOME/
ディレクトリのバックアップを作成します。次に例を示します。tar -czvf $APIGEECTL_HOME/../apigeectl-v1.6-backup.tar.gz $APIGEECTL_HOME
- (推奨)Cassandra のバックアップと復元の手順に沿って、Cassandra データベースをバックアップします。
Kubernetes のバージョンをアップグレードする
Kubernetes プラットフォームをハイブリッド 1.7 でサポートされているバージョンにアップグレードします。ヘルプが必要な場合は、プラットフォームのドキュメントをご覧ください。
クリックして、サポートされているプラットフォームのリストを開く
Apigee ハイブリッドのバージョン | ||||
---|---|---|---|---|
プラットフォーム |
1.6(4)
|
1.7 | 1.8 | |
Anthos(Google Cloud - GKE) | 1.19.x 1.20.x 1.21.x |
1.20.x
1.21.x 1.22.x(≥ 1.7.2) 1.23.x(≥ 1.7.2) |
1.21.x(≤ 1.8.3)
1.22.x(≤ 1.8.3) 1.23.x(≤ 1.8.4) 1.24.x(≥ 1.8.4) 1.25.x(≥ 1.8.4) |
|
Anthos(AWS) | 1.7.x 1.8.x 1.9.3+ 1.10.x |
1.9.x
1.10.x 1.12.x(≥ 1.7.2) |
1.10.x
1.11.x 1.12.x 1.13.x 1.14.x |
|
Anthos(Azure) | 1.8.x | 1.9.x
1.10.x 1.12.x(≥ 1.7.2) |
1.10.x
1.11.x 1.12.x 1.13.x 1.14.x |
|
Anthos(1)(オンプレミス - VMware) | 1.7.x 1.8.x 1.9.3+ 1.10.x |
1.9.x 1.10.x 1.11.x 1.12.x |
1.10.x 1.11.x 1.12.x 1.13.x(5) 1.14.x(5) 1.15.x |
|
Anthos(1)(ベアメタル) | 1.7.x 1.8.2+ 1.9.3+ 1.10.x |
1.9.x 1.10.x 1.11.x 1.12.x |
1.10.x 1.11.x 1.12.x 1.13.x(5) 1.14.x(5) 1.15.x | |
Anthos(Anthos 接続クラスタを使用した EKS 上のマルチクラウド コンテキスト) | 1.19.x 1.20.x 1.21.x |
1.21.x
1.22.x(≥ 1.7.2) 1.23.x(≥ 1.7.2) |
1.22.x(≤ 1.8.3)
1.23.x(≤ 1.8.4) 1.24.x(≥ 1.8.4) 1.25.x(≥ 1.8.4) |
|
Anthos(Anthos 接続クラスタを使用した AKS 上のマルチクラウド コンテキスト) | 1.19.x 1.20.x 1.21.x |
1.21.x
1.22.x(≥ 1.7.2) 1.23.x(≥ 1.7.2) |
1.22.x(≤ 1.8.3)
1.23.x(≤ 1.8.4) 1.24.x(≥ 1.8.4) 1.25.x(≥ 1.8.4) |
|
Anthos(Anthos 接続クラスタを使用した OpenShift 上のマルチクラウド コンテキスト) | 4.6 4.7 4.8 |
4.7
4.8 |
4.8
4.9 4.10 |
|
Anthos(Anthos 接続クラスタを使用した Konvoy 上のマルチクラウド コンテキスト) | 1.7.x | なし | なし | |
コンポーネント |
1.6 | 1.7 | 1.8 | |
Anthos Service Mesh(ASM) | 1.9.x 1.10.x 1.12.x |
1.10.x 1.11.x 1.12.x 1.13.x(3) |
1.11.x 1.12.x 1.13.x 1.14.x 1.15.x |
|
JDK | JDK 11 | JDK 11 | JDK 11 | |
cert-manager | 1.5.4 | 1.7.x | 1.7.x | |
Cassandra | 3.11.10 | 3.11.10 | 3.11.10 | |
(1) Anthos バージョン 1.8.2 以降では、
(2) Apigee ハイブリッド バージョン 1.6.6 以降でサポートされています。 (3) Apigee ハイブリッド バージョン 1.7.2 以降でサポートされています。 (4) Apigee ハイブリッド バージョン 1.6、1.7、1.8 は正式なサポートが終了しました。今後、定期的な月次パッチは提供されません。サポートの継続が正式に提示されているお客様を除き、これらのリリースの正式なサポートは提供されません。他のお客様はアップグレードが必要です。 (5)Anthos on bare metal と VMWare には ASM 1.14 が必要です。ハイブリッド v1.8 にアップグレードして Apigee Ingress ゲートウェイに切り替えることをおすすめします。これにより、ハイブリッド クラスタに ASM をインストールする必要がなくなります。 (6) Apigee ハイブリッド バージョン 1.8.4 以降でサポートされています。 (7) Anthos on bare metal と VMWare の 1.12 以前のバージョンは、サポートが終了しています。Anthos on bare metal バージョン サポート ポリシーと Anthos clusters on VMware のバージョンをご覧ください。 (8) Apigee ハイブリッド バージョン 1.8.4 以降ではサポートされていません。 (9) Apigee ハイブリッド バージョン 1.7.6 以降でサポートされています。 (10) Apigee ハイブリッド バージョン 1.8.5 以降ではサポートされていません。 |
接続クラスタについて
Apigee ハイブリッド バージョン 1.7.x 以前で、Elastic Kubernetes Service(EKS)、Azure Kubernetes Service(AKS)、またはサポートされているサードパーティの Kubernetes サービス プロバイダのマルチクラウド コンテキストで Apigee ハイブリッドを実行する場合は、Anthos 接続クラスタを使用する必要があります。Google では、クラスタ アタッチメントを使用して Anthos Service Mesh(ASM)の使用状況を測定しています。サードパーティ クラスタの登録は任意です。Google Cloud コンソールで接続クラスタを表示する場合にのみ登録が必要になります。詳細については、サードパーティの Kubernetes クラスタを Google Cloud に接続するをご覧ください。
Apigee ハイブリッド バージョン 1.8.x で Ingress ゲートウェイに Anthos Service Mesh を使用する場合、Anthos に関連付けられたクラスタが必要です。Apigee Ingress ゲートウェイを使用している場合、Anthos 接続クラスタはオプションです。
apigee-runtime
サービス アカウントに Cloud Trace エージェントのロールを割り当てる
省略可: Cloud Trace を使用する場合は、apigee-runtime
サービス アカウントに Cloud Trace エージェント(roles/cloudtrace.agent
)ロールがあることを確認してください。確認するには、UI で [Cloud コンソール] > [IAM と管理] > [サービス アカウント] に移動するか、次のコマンドを実行します。
- 次のコマンドで
apigee-runtime
サービス アカウントのメールアドレスを取得します。gcloud iam service-accounts list --filter "apigee-runtime"
パターン
apigee-runtime@$ORG_NAME.iam.gserviceaccount.com
と一致する場合、そのパターンは次のステップで使用できます。 - サービス アカウントに Cloud Trace エージェントのロールを割り当てます。
gcloud projects add-iam-policy-binding
$PROJECT_ID \ --member="serviceAccount:apigee-runtime@$PROJECT_ID .iam.gserviceaccount.com" \ --role="roles/cloudtrace.agent"ここで、$PROJECT_ID は Apigee ハイブリッドがインストールされている Google Cloud プロジェクトの名前です。
オーバーライドで metrics:stackdriverExporter
プロパティを置き換えます。
ハイブリッド バージョン 1.7 から、metrics:stackdriverExporter
は metrics:appStackdriverExporter
と metrics:proxyStackdriverExporter
に置き換えられました。これらのプロパティを同等のプロパティに置き換えてください。たとえば、
metrics: ... ... stackdriverExporter: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 128m memory: 512Mi
次のように置き換えます。
metrics: ... ... appStackdriverExporter: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 128m memory: 512Mi proxyStackdriverExporter: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 128m memory: 512Mi
構成プロパティ リファレンス: 指標をご覧ください。
ハイブリッド 1.7.6 ランタイムをインストールする
-
次のコマンドを使用して、最新のバージョン番号を変数に格納します。
export VERSION=$(curl -s \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)
export VERSION=$(curl -s \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt)
for /f "tokens=*" %a in ('curl -s ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt') ^ do set VERSION=%a
-
次のコマンドを使用して、変数にバージョン番号が挿入されていることを確認します。別のバージョンを使用する場合は、そのバージョンを環境変数に格納してください。
echo $VERSION
1.7.6
- ハイブリッド ベース ディレクトリ(
apigeectl
実行可能ファイルが配置されているディレクトリの親)にいることを確認します。cd $APIGEECTL_HOME/..
-
次のコマンドを使用して、ご使用のオペレーティング システムに対応したリリース パッケージをダウンロードします。ご利用のプラットフォームを次の表から選択します。
Linux 64 ビット:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_64.tar.gz
Mac 64 ビット:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_64.tar.gz
Windows 64 ビット:
curl -LO ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/%VERSION%/apigeectl_windows_64.zip
- 現在の
apigeectl/
ディレクトリをバックアップ ディレクトリ名に変更します。次に例を示します。mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.6/
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.6/
rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.6
-
ダウンロードした gzip ファイルの内容をハイブリッドのベース ディレクトリに展開します。ハイブリッドのベース ディレクトリは、名前を変更した
apigeectl-v1.6
ディレクトリのあるディレクトリです。tar xvzf
filename .tar.gz -C ./tar xvzf
filename .tar.gz -C ./tar xvzf
filename .zip -C ./ -
デフォルトでは、tar の内容が展開されるディレクトリの名前には、バージョンとプラットフォームが含まれています。たとえば、
./apigeectl_1.7.6-d591b23_linux_64
となります。次のコマンドを使用して、このディレクトリの名前をapigeectl
に変更します。mv
directory-name-linux apigeectlmv
directory-name-mac apigeectlrename
directory-name-windows apigeectl apigeectl
ディレクトリに変更します。cd ./apigeectl
apigeectl
実行可能ファイルはこのディレクトリにあります。- この手順では、
apigeectl
ユーティリティがインストールされているファイル システムのディレクトリを環境変数$APIGEECTL_HOME
で表しています。必要であれば、cd
でapigeectl
ディレクトリに移動して、次のコマンドで変数を定義してください。export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
version
コマンドでapigeectl
のバージョンを確認します。./apigeectl version
Version: 1.7.6
hybrid-base-directory/hybrid-files
ディレクトリに移動します。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
- ドライランの初期化を行ってエラーを確認します。
${APIGEECTL_HOME}/apigeectl init -f ./overrides/
OVERRIDES .yaml --dry-run=clientここで、OVERRIDES は、オーバーライド ファイルの名前です。
- エラーがなければ、ハイブリッド 1.7.6 を初期化します。
${APIGEECTL_HOME}/apigeectl init -f ./overrides/
OVERRIDES .yaml - 初期化のステータスを確認します。
${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yaml apply
コマンドのドライランでエラーを確認します。${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --dry-run=client- エラーがない場合、オーバーライドを適用します。インストール先の環境に応じて、本番環境またはデモ / 試験運用環境の手順を選択して実施します。
本番環境では、ハイブリッド コンポーネントを個別にアップグレードし、アップグレードされたコンポーネントのステータスを確認してから次のコンポーネントに進んでください。
- 現在のディレクトリが
hybrid-files
ディレクトリであることを確認します。 - オーバーライドを適用して Cassandra をアップグレードします。
${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --datastore - 完了を確認します。
${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yamlPod の準備ができた場合にのみ、次の手順に進みます。
- オーバーライドを適用してテレメトリー コンポーネントをアップグレードし、完了を確認します。
${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --telemetry${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yaml - Redis コンポーネントを起動します。
${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --redis - オーバーライドを適用して、組織レベルのコンポーネント(MART、Watcher、Apigee Connect)をアップグレードし、完了を確認します。
${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --org${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yaml - オーバーライドを適用して環境をアップグレードします。次の 2 つの選択肢があります。
- 環境ごと: 一度に 1 つの環境にオーバーライドを適用して、完了を確認します。この手順を環境ごとに繰り返します。
${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --envENV_NAME ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yamlここで、ENV_NAME はアップグレードする環境の名前です。
- 一度にすべての環境: すべての環境にオーバーライドを一度に適用して、完了を確認します。
${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml --all-envs${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yaml
- 環境ごと: 一度に 1 つの環境にオーバーライドを適用して、完了を確認します。この手順を環境ごとに繰り返します。
ほとんどのデモまたは試験運用環境では、すべてのコンポーネントにオーバーライドを一度に適用できます。デモ / 試験運用環境が大規模で複雑な場合や本番環境に酷似している場合は、本番環境のアップグレード手順を使用します。
- 現在のディレクトリが
hybrid-files
ディレクトリであることを確認します。 ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
OVERRIDES .yaml- ステータスを確認します。
${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/
OVERRIDES .yaml
- 現在のディレクトリが
-
以下の
cert-manager をバージョン v1.7.2 にアップグレードする
バージョン v1.7.2 より前の cert-manager
を実行している場合は、v1.7.2 にアップグレードする必要があります。
-
次のコマンドを使用して、
cert-manager
の現在のバージョンを確認します。kubectl -n cert-manager get deployment -o yaml | grep 'image:'
次のようなバージョン名が返されます。
image: quay.io/jetstack/cert-manager-controller:v1.7.2 image: quay.io/jetstack/cert-manager-cainjector:v1.7.2 image: quay.io/jetstack/cert-manager-webhook:v1.7.2
-
次のコマンドを使用してデプロイを削除します。
$ kubectl delete -n cert-manager deployment cert-manager cert-manager-cainjector cert-manager-webhook
-
次のコマンドを使用して、
cert-manager
を v1.7.2 バージョンにアップグレードします。$ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.7.2/cert-manager.yaml
ASM をバージョン 1.12にアップグレードする
ご使用のプラットフォームに適した ASM のドキュメントを参照してアップグレードを行います。
ASM をインストールして構成する手順は、プラットフォームによって異なります。プラットフォームは、次のカテゴリに分類されます。
- GKE: Google Cloud で実行されている Google Kubernetes Engine クラスタ。
- Google Cloud 以外: 次の場所で実行されている Anthos clusters。
- Anthos clusters on VMware(GKE On-Pprem)
- Anthos on bare metal
- Anthos clusters on AWS
- Amazon EKS
- その他の Kubernetes プラットフォーム: 以下で作成され、実行される正規のクラスタ。
- AKS
- EKS
- OpenShift
ハイブリッド インストールで ASM をバージョン 1.12.9 にアップグレードする手順は次のとおりです。
- アップグレードの準備を行います。
- 新しいバージョンの ASM をインストールします。
- 現在のインストールから、以前のバージョンの ASM のデプロイ、サービス、Webhook を削除します。
- ゲートウェイをアップグレードして新しい Webhook を構成します。
GKE でハイブリッドの ASM をバージョン 1.12.9 にアップグレードするには:
- Anthos Service Mesh のアップグレードの要件を確認します。ただし、まだアップグレードは行わないでください。
- 新しいバージョンをインストールする前に、現在のリビジョンを確認します。この情報は、現在のインストールより前のバージョンの ASM のデプロイ、サービス、Webhook を削除する際に必要になります。現在の istiod リビジョンを環境変数に格納するには、次のコマンドを使用します。
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV}
- 新しい
overlay.yaml
ファイルを作成するか、既存のoverlay.yaml
に次の内容が含まれていることを確認します。apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1129-3 components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP:
STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' - ASM のドキュメントの次のセクションの説明に従ってください。
- asmcli をダウンロードする
- クラスタ管理者の権限を付与する
- プロジェクトとクラスタを検証する
- オプション機能を使用してアップグレードする。「Gateway をアップグレードする」には、まだ進まないでください。
- 変更用 Webhook と検証用 Webhook を削除します。
cd
を実行して、asmcli
がインストールされたディレクトリに移動します。- Webhook を削除するスクリプトで使用するため、現在の新しいリビジョンを環境変数に保存します。
UPGRADE_REV="asm-1129-3"
- 次のコマンドを含むシェル スクリプトを作成します。
#!/bin/bash set -ex PROJECT_ID="
YOUR_PROJECT_ID " CLUSTER_NAME="YOUR_CLUSTER_NAME " CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION " kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY istio-ingressgateway kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY /istio-ingressgateway-connectors if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi - 現在の Webhook を削除するスクリプトを実行します。
- ゲートウェイのアップグレードの手順に沿って、新しい Webhook を作成し、トラフィックを新しいゲートウェイに切り替えます。
ここでは、以下で行われる ASM のアップグレードについて説明します。
- Anthos clusters on VMware(GKE On-Prem)
- Anthos on bare metal
- Anthos clusters on AWS
- Amazon EKS
ハイブリッド インストールで ASM をバージョン 1.12.9 にアップグレードする手順は次のとおりです。
- アップグレードの準備を行います。
- 新しいバージョンの ASM をインストールします。
- 現在のインストールから、以前のバージョンの ASM のデプロイ、サービス、Webhook を削除します。
- ゲートウェイをアップグレードして新しい Webhook を構成します。
- Anthos Service Mesh のアップグレードの要件を確認します。ただし、まだアップグレードは行わないでください。
- 新しいバージョンをインストールする前に、現在のリビジョンを確認します。この情報は、現在の ASM インストールから検証 Webhook と変更 Webhook を削除する際に必要になります。現在の istiod リビジョンを環境変数に格納するには、次のコマンドを使用します。
export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}') echo ${DELETE_REV}
- 新しい
overlay.yaml
ファイルを作成するか、既存のoverlay.yaml
に次の内容が含まれていることを確認します。apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: revision: asm-1129-3 components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP:
STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 values: gateways: istio-ingressgateway: runAsRoot: true meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' - ASM のドキュメントの次のセクションの説明に従ってください。
- asmcli をダウンロードする
- クラスタ管理者の権限を付与する
- プロジェクトとクラスタを検証する
- オプション機能を使用してアップグレードする。「Gateway をアップグレードする」には、まだ進まないでください。
- 変更用 Webhook と検証用 Webhook を削除します。
cd
を実行して、asmcli
がインストールされたディレクトリに移動します。- Webhook を削除するスクリプトで使用するため、現在の新しいリビジョンを環境変数に保存します。
UPGRADE_REV="asm-1129-3"
- 次のコマンドを含むシェル スクリプトを作成します。
#!/bin/bash set -ex PROJECT_ID="
YOUR_PROJECT_ID " CLUSTER_NAME="YOUR_CLUSTER_NAME " CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION " gcloud config configurations activate ${PROJECT_ID} gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID} kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY istio-ingressgateway kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY /istio-ingressgateway-connectors if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi - 現在の Webhook を削除するスクリプトを実行します。
- ゲートウェイのアップグレードの手順に沿って、新しい Webhook を作成し、トラフィックを新しいゲートウェイに切り替えます。
これらの手順において、Anthos 接続クラスタで Anthos Service Mesh(ASM)バージョン istio-1.12.9-asm.3 をアップグレードするプロセスは、新規インストールのプロセスと同じです。
Anthos Service Mesh のインストールの準備
- 変更用 Webhook と検証用 Webhook を削除します。
cd
を実行して、asmcli
がインストールされたディレクトリに移動します。- Webhook を削除するスクリプトで使用するため、現在の新しいリビジョンを環境変数に保存します。
UPGRADE_REV="asm-1129-3"
- 次のコマンドを含むシェル スクリプトを作成します。
#!/bin/bash set -ex kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -f
PATH_TO_INGRESSGATEWAY istio-ingressgateway if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi - 現在の Webhook を削除するスクリプトを実行します。
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests/profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
export PATH=$PWD/bin:$PATH
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-osx.tar.gz
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests/profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
export PATH=$PWD/bin:$PATH
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-win.zip
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests\profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、\bin ディレクトリ内のツールを PATH に追加します。
set PATH=%CD%\bin:%PATH%
- ASM Istio がインストールされたので、
istioctl
のバージョンを確認します。istioctl version
- コントロール プレーン コンポーネント用に istio-system という名前空間を作成します。
kubectl create namespace istio-system
Anthos Service Mesh のインストール
overlay.yaml
ファイルを編集するか、次の内容の新しいファイルを作成します。apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: - enabled: true name: istio-ingressgateway k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
asm-multicloud
プロファイルを使用して、istioctl
を使用して Anthos Service Mesh をインストールします。istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3" \ --filename overlayfile.yaml
出力は次のようになります。
kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-798ffb964-fnj8c 1/1 Running 1 3m21s
--set revision
引数は、istio.io/rev=asm-1129-3
形式のリビジョン ラベルを istiod に追加します。リビジョン ラベルは、自動サイドカー インジェクタ Webhook によって使用され、挿入されたサイドカーを特定の istiod リビジョンに関連付けます。Namespace のサイドカー自動挿入を有効にするには、istiod のラベルと一致するリビジョンのラベルを付ける必要があります。- インストールが完了したことを確認します。
kubectl get svc -n istio-system
出力は次のようになります。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
これらの手順において、Anthos 接続クラスタで Anthos Service Mesh(ASM)バージョン istio-1.12.9-asm.3 をアップグレードするプロセスは、新規インストールのプロセスと同じです。
Anthos Service Mesh のインストールの準備
- 変更用 Webhook と検証用 Webhook を削除します。
cd
を実行して、asmcli
がインストールされたディレクトリに移動します。- Webhook を削除するスクリプトで使用するため、現在の新しいリビジョンを環境変数に保存します。
UPGRADE_REV="asm-1129-3"
- 次のコマンドを含むシェル スクリプトを作成します。
#!/bin/bash set -ex kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite kubectl rollout restart deployment -n istio-system kubectl apply -n istio-system -f
PATH_TO_INGRESSGATEWAY istio-ingressgateway kubectl apply -n istio-system -fPATH_TO_INGRESSGATEWAY /istio-ingressgateway-connectors if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then kubectl apply -f out/asm/istio/istiod-service.yaml kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true fi - 現在の Webhook を削除するスクリプトを実行します。
- 次の OpenShift CLI(
oc
)コマンドを使用して、anyuid
セキュリティ コンテキスト制約(SCC)を istio-system に付与します。oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests/profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
export PATH=$PWD/bin:$PATH
- 次の OpenShift CLI(
oc
)コマンドを使用して、anyuid
セキュリティ コンテキスト制約(SCC)を istio-system に付与します。oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-osx.tar.gz
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests/profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、/bin ディレクトリ内のツールを PATH に追加します。
export PATH=$PWD/bin:$PATH
- 次の OpenShift CLI(
oc
)コマンドを使用して、anyuid
セキュリティ コンテキスト制約(SCC)を istio-system に付与します。oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- Anthos Service Mesh インストール ファイルを現在の作業ディレクトリにダウンロードします。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
- 署名ファイルをダウンロードし、openssl を使用して署名を検証します。
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3.win.zip <<'EOF'
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - ファイル システム上の任意の場所にファイルの内容を抽出します。たとえば、現在の作業ディレクトリに内容を抽出するには、次のコマンドを実行します。
tar xzf istio-1.12.9-asm.3-win.zip
このコマンドにより、現在の作業ディレクトリに
istio-1.12.9-asm.3
という名前のインストール ディレクトリが作成されます。このディレクトリには、次のものが含まれます。samples
ディレクトリにあるサンプル アプリケーション。- Anthos Service Mesh のインストールに使用する
istioctl
コマンドライン ツールは、bin
ディレクトリにあります。 - Anthos Service Mesh 構成プロファイルは
manifests\profiles
ディレクトリにあります。
- Anthos Service Mesh インストールのルート ディレクトリに移動していることを確認します。
cd istio-1.12.9-asm.3
- 利便性を考えて、\bin ディレクトリ内のツールを PATH に追加します。
set PATH=%CD%\bin:%PATH%
- ASM Istio がインストールされたので、
istioctl
のバージョンを確認します。istioctl version
- コントロール プレーン コンポーネント用に istio-system という名前空間を作成します。
kubectl create namespace istio-system
Anthos Service Mesh のインストール
overlay.yaml
ファイルを編集するか、次の内容の新しいファイルを作成します。apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: - enabled: true name: istio-ingressgateway k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443
asm-multicloud
プロファイルを使用して、istioctl
を使用して Anthos Service Mesh をインストールします。istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1129-3" \ --filename overlayfile.yaml
出力は次のようになります。
kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1129-3-798ffb964-2ls88 1/1 Running 0 3m21s istiod-asm-1129-3-798ffb964-fnj8c 1/1 Running 1 3m21s
--set revision
引数は、istio.io/rev=1.6.11-asm.1
形式のリビジョン ラベルを istiod に追加します。リビジョン ラベルは、自動サイドカー インジェクタ Webhook によって使用され、挿入されたサイドカーを特定の istiod リビジョンに関連付けます。Namespace のサイドカー自動挿入を有効にするには、istiod のラベルと一致するリビジョンのラベルを付ける必要があります。- インストールが完了したことを確認します。
kubectl get svc -n istio-system
出力は次のようになります。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1129-3 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
アップグレードのロールバック
以前のアップグレードをロールバックする手順は次のとおりです。
- ハイブリッド ランタイムの名前空間に対して、完了したジョブのクリーンアップを行います。ここで、名前空間を指定した場合、NAMESPACE はオーバーライド ファイルで指定した名前空間になります。指定しない場合、デフォルトの名前空間は
apigee
です。kubectl delete job -n
NAMESPACE \ $(kubectl get job -nNAMESPACE \ -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_HOME}/apigeectl apply
を実行し、Pod のステータスを確認してから${APIGEECTL_HOME}/apigeectl init
を実行します。ロールバックするバージョンの元のオーバーライド ファイルを必ず使用してください。hybrid-files
ディレクトリで${APIGEECTL_HOME}/apigeectl apply
を実行します。${APIGEECTL_HOME}/apigeectl apply -f ./overrides/
ORIGINAL_OVERRIDES .yamlここで、ORIGINAL_OVERRIDES は以前のバージョンのハイブリッド インストールのオーバーライド ファイルです(例:
overrides1.6.yaml
)。- Pod のステータスを確認します。
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 が実行されている場合にのみ、次の手順に進みます。apigeectl init
を実行します。${APIGEECTL_HOME}/apigeectl init -f ./overrides/
ORIGINAL_OVERRIDES .yaml