ここでは、Apigee ハイブリッド バージョン 1.15.x から Apigee ハイブリッド バージョン 1.16.0 へのアップグレードについて説明します。
Apigee ハイブリッド v1.15 からの変更
次の変更点にご注意ください。
-
Seccomp プロファイル: バージョン 1.16 以降、Apigee ハイブリッドでは、Seccomp プロファイルをランタイム コンポーネントに適用する機能が提供されるようになりました。これにより、デプロイのセキュリティ体制が大幅に強化されます。この機能を使用すると、Apigee 管理者とセキュリティ チームは、コンテナ化されたプロセスがホストのカーネルに対して実行できるシステム呼び出しを制限できます。コンテナを必要な syscall のみに制限すると、次のことが可能になります。
- セキュリティの強化: コンテナ ブレイクアウトと権限昇格のリスクを軽減します。
- 最小権限の適用: コンポーネントが、そのオペレーションに必要なシステムコールのみにアクセスできるようにします。
- コンプライアンスの遵守: 厳しいセキュリティ コンプライアンス要件を満たすための重要な制御を提供します。
- Apigee ハイブリッドでの UDCA の削除: Apigee ハイブリッド バージョン 1.16 で、Unified Data Collection Agent(UDCA)コンポーネントが削除されました。分析、トレース、デプロイ ステータス データを Apigee コントロール プレーンに送信する処理は、Google Cloud Pub/Sub ベースのデータ パイプラインを使用して処理されるようになりました。Apigee ハイブリッド バージョン 1.14.0 以降、Pub/Sub ベースのデータ パイプラインの使用がデフォルトのデータ収集メカニズムになっています。
-
apigee-guardrailsサービス アカウント: v1.16.0 では、Apigee ハイブリッドにapigee-guardrailsGoogle IAM サービス アカウントが導入されています。これは、インストール中にapigee-operatorチャートで使用され、必要な API がすべてプロジェクトで有効になっていることを確認します。参照:
-
cert-manager リリース 1.18 と 1.19 のサポート: Apigee ハイブリッド v1.16 は、cert-manager のリリース 1.18 とリリース 1.19 をサポートしています。cert-manager リリース 1.18 では、トラフィックに影響する可能性がある
Certificate.Spec.PrivateKey.rotationPolicyのデフォルト値が変更されています。以前のバージョンの Apigee ハイブリッドからアップグレードし、cert-manager リリース 1.18 以降にアップグレードする場合は、このガイドの cert-manager をアップグレードするの手順に沿って操作します。
ハイブリッド バージョン 1.16 の機能の詳細については、Apigee ハイブリッド v1.16.0 リリースノートをご覧ください。
前提条件
ハイブリッド バージョン 1.16 にアップグレードする前に、インストールが次の要件を満たしていることを確認してください。
- ハイブリッド インストールで v1.15 より前のバージョンを実行している場合は、v1.16 にアップグレードする前にバージョン 1.15 にアップグレードする必要があります。Apigee ハイブリッドのバージョン 1.15 へのアップグレードをご覧ください。
- Helm バージョン v3.14.2 以降。
kubectl: Kubernetes プラットフォームのバージョンに適したkubectlのサポート対象バージョン。サポートされているプラットフォームとバージョン:kubectlをご覧ください。- cert-manager: サポートされているバージョンの cert-manager。サポートされているプラットフォームとバージョン: cert-manager をご覧ください。必要に応じて、後述のバージョン 1.16 へのアップグレードを準備するセクションを参考に、cert-manager をアップグレードしてください。
1.16.0 にアップグレードする前に - 制限事項と重要な注意事項
Apigee ハイブリッド 1.16.0 では、環境ごとのプロキシの上限が強化され、単一の環境にデプロイできるプロキシと共有フローの数が増えました。環境ごとにデプロイできるプロキシと共有フローの数の上限については、上限: API プロキシをご覧ください。この機能は、新しく作成されたハイブリッド組織でのみ使用できます。アップグレードされた組織には適用できません。この機能を使用するには、ハイブリッド 1.16.0 を新規にインストールし、新しい組織を作成します。
この機能は 2024 サブスクリプション プランにご加入いただいた場合にのみ使用でき、そのサブスクリプションに付与されている利用資格の影響を受けます。この機能の詳細については、環境ごとのプロキシの上限の強化をご覧ください。
Apigee ハイブリッド バージョン 1.16 へのアップグレード中は、ダウンタイムが発生する場合があります。
Apigee コントローラをバージョン 1.16.0 にアップグレードすると、すべての Apigee デプロイでローリング再起動が行われます。本番環境ハイブリッド環境のダウンタイムを最小限に抑えるには、少なくとも 2 つのクラスタ(同じまたは異なるリージョン/データセンター)を実行している必要があります。本番環境のすべてのトラフィックを 1 つのクラスタに戻し、オフラインでアップグレードしようとしているクラスタを取得して、アップグレード プロセスを続行します。この手順をクラスタごとに繰り返します。
本番環境に影響する可能性を低減するため、アップグレードを開始した後できるだけ早くすべてのクラスタをアップグレードすることをおすすめします。最初のクラスタをアップグレードした後に、残りのすべてのクラスタをいつアップグレードする必要があるかについては、時間制限はありません。ただし、Cassandra のバックアップと復元はバージョンが混在している環境では機能しないため、残りのクラスタがすべてアップグレードされるまで使用できません。たとえば、ハイブリッド 1.15 のバックアップを使用してハイブリッド 1.16 のインスタンスを復元することはできません。
アップグレード中に管理プレーンの変更を完全に一時停止する必要はありません。管理プレーンの変更の一時停止が必要な場合は、以下のアップグレード手順に記載されています。
バージョン 1.16.0 へのアップグレードの概要
以降のセクションでは、Apigee Hybrid のアップグレード手順を次の順番で説明します。
バージョン 1.16 へのアップグレードを準備する
ハイブリッド インストールをバックアップする
- この手順では、ファイル システム内で Helm チャートをインストールしたディレクトリに対し、環境変数 APIGEE_HELM_CHARTS_HOME を使用します。必要に応じてこのディレクトリに移動し、次のコマンドで変数を定義します。
Linux
export APIGEE_HELM_CHARTS_HOME=$PWD
echo $APIGEE_HELM_CHARTS_HOMEMac OS
export APIGEE_HELM_CHARTS_HOME=$PWD
echo $APIGEE_HELM_CHARTS_HOMEWindows
set APIGEE_HELM_CHARTS_HOME=%CD%
echo %APIGEE_HELM_CHARTS_HOME% - バージョン 1.15 の
$APIGEE_HELM_CHARTS_HOME/ディレクトリのバックアップを作成します。任意のバックアップ プロセスを使用できます。たとえば、次のコマンドを使用して、ディレクトリ全体のtarファイルを作成します。tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.15-backup.tar.gz $APIGEE_HELM_CHARTS_HOME - Cassandra のバックアップと復元の手順に沿って Cassandra データベースをバックアップします。
-
TLS 証明書ファイルと鍵ファイル(
.crt、.key、.pem)が$APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/ディレクトリにあることを確認します。
Kubernetes のバージョンをアップグレードする
Kubernetes プラットフォームのバージョンを確認し、必要に応じて Kubernetes プラットフォームを、ハイブリッド 1.15 とハイブリッド 1.16 の両方でサポートされているバージョンにアップグレードします。ヘルプが必要な場合は、プラットフォームのドキュメントをご覧ください。
Apigee Helm チャートを pull します。
Apigee ハイブリッド チャートは Google Artifact Registry でホストされます。
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
次のコマンドで pull コマンドを使用して、すべての Apigee ハイブリッド Helm チャートをローカル ストレージにコピーします。
export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-chartsexport CHART_VERSION=1.16.0helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
カスタム Apigee Namespace の kustomization.yaml を編集する
Apigee Namespace が apigee でない場合は、apigee-operator/etc/crds/default/kustomization.yaml ファイルを編集して、namespace 値を Apigee Namespace に置き換えます。
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: APIGEE_NAMESPACE
Namespace として apigee を使用している場合は、ファイルを編集する必要はありません。
-
次のコマンドを実行して、
kubectlドライラン機能を使用します。kubectl apply -k apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run=server
-
dry-run コマンドで検証した後、次のコマンドを実行します。
kubectl apply -k apigee-operator/etc/crds/default/ \ --server-side \ --force-conflicts \ --validate=false
kubectl get crdsコマンドを使用してインストールを検証します。kubectl get crds | grep apigee
出力は次のようになります。
apigeedatastores.apigee.cloud.google.com 2024-08-21T14:48:30Z apigeedeployments.apigee.cloud.google.com 2024-08-21T14:48:30Z apigeeenvironments.apigee.cloud.google.com 2024-08-21T14:48:31Z apigeeissues.apigee.cloud.google.com 2024-08-21T14:48:31Z apigeeorganizations.apigee.cloud.google.com 2024-08-21T14:48:32Z apigeeredis.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeerouteconfigs.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeeroutes.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeetelemetries.apigee.cloud.google.com 2024-08-21T14:48:34Z cassandradatareplications.apigee.cloud.google.com 2024-08-21T14:48:35Z
クラスタノードのラベルを確認します。デフォルトでは、Apigee はラベルが cloud.google.com/gke-nodepool=apigee-data のノードでデータ Pod をスケジューリングし、ランタイム Pod はラベルが cloud.google.com/gke-nodepool=apigee-runtime のノードでスケジューリングされます。ノードプールのラベルは、overrides.yaml ファイルでカスタマイズできます。
詳細については、専用ノードプールの構成をご覧ください。
apigee-guardrails サービス アカウントを設定する
ハイブリッド v1.16 以降では、apigee-operator チャートをアップグレードするために apigee-guardrails サービス アカウントが必要です。
次の手順では、使用しているサービス アカウント認証のタイプを選択します。
-
create-service-accountを実行できることを確認します。チャートをダウンロードしたばかりの場合は、create-service-accountファイルが実行可能モードになっていない可能性があります。APIGEE_HELM_CHARTS_HOME ディレクトリで、次のコマンドを実行します。./apigee-operator/etc/tools/create-service-account --help
出力に
permission deniedと表示された場合は、ファイルを実行可能にする必要があります。たとえば、Linux、MacOS、UNIX、Windows エクスプローラーではchmodを、Windows ではicaclsコマンドを使用します。次に例を示します。chmod +x ./apigee-operator/etc/tools/create-service-account
-
apigee-guardrailsサービス アカウントを作成します。Kubernetes Secret
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
このコマンドは、
apigee-guardrailsサービス アカウントを作成し、キーをservice-accounts/ディレクトリにダウンロードします。JSON ファイル
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir ./apigee-operator/
このコマンドは、
apigee-guardrailsサービス アカウントを作成し、キーをapigee-operator/チャート ディレクトリにダウンロードします。Vault
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
このコマンドは、
apigee-guardrailsサービス アカウントを作成し、キーをservice-accounts/ディレクトリにダウンロードします。WIF for GKE
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
このコマンドは、
apigee-guardrailsサービス アカウントを作成し、キーをapigee-operator/etc/tools/service-accounts/ディレクトリにダウンロードします。ダウンロードした鍵ファイルは不要になったため、削除できます。他のプラットフォームでの WIF
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
このコマンドは、
apigee-guardrailsサービス アカウントを作成し、キーをservice-accounts/ディレクトリにダウンロードします。 -
apigee-guardrailsサービス アカウントの認証を設定します。Kubernetes Secret
service-accounts/ディレクトリのapigee-guardrailsサービス アカウント キーファイルを使用して Kubernetes Secret を作成します。kubectl create secret generic apigee-guardrails-svc-account \ --from-file="client_secret.json=$APIGEE_HELM_CHARTS_HOME/service-accounts/$PROJECT_ID-apigee-guardrails.json" \ -n $APIGEE_NAMESPACE次のコードを
overrides.yamlファイルに追加します。guardrails: serviceAccountRef: apigee-guardrails-svc-account
JSON ファイル
apigee-operator/ディレクトリのapigee-guardrailsサービス アカウント キーファイルのパスを使用して、overrides.yamlファイルに以下を追加します。guardrails: serviceAccountPath: $PROJECT_ID-apigee-guardrails.json
Vault
- Vault シークレット
secret/data/apigee/orgsakeysを更新して、apigee-guardrailsサービス アカウント キーファイルの内容を含むguardrailsエントリを追加します。vault kv patch secret/apigee/orgsakeys guardrails="$(cat ./service-accounts/hybrid115-apigee-guardrails.json)"
-
ガードレールの Kubernetes サービス アカウント(KSA)の名前は
apigee-operator-guardrails-saです。Guardrails KSA を、Vault のapigee-orgsakeysロールにバインドされた組織固有のサービス アカウントに追加します。- KSA バインディングの現在のリストを取得します。
vault read auth/kubernetes/role/apigee-orgsakeys
出力は次の形式になります。
Key Value --- ----- alias_name_source serviceaccount_uid bound_service_account_names BOUND_SERVICE_ACCOUNT_NAMES bound_service_account_namespace_selector n/a bound_service_account_namespaces APIGEE_NAMESPACE
出力では、
BOUND_SERVICE_ACCOUNT_NAMESはカンマ区切りのサービス アカウント名のリストです。名前のリストにapigee-operator-guardrails-saを追加します(読みやすくするために改行を追加しています)。apigee-manager,apigee-cassandra-default,apigee-cassandra-backup-sa, apigee-cassandra-restore-sa,apigee-cassandra-schema-setup-myhybrido rg-5b044c1,apigee-cassandra-schema-val-myhybridorg-5b044c1,apigee-c assandra-user-setup-myhybridorg-5b044c1,apigee-mart-myhybridorg-5b0 44c1,apigee-mint-task-scheduler-myhybridorg-5b044c1,apigee-connect- agent-myhybridorg-5b044c1,apigee-watcher-myhybridorg-5b044c1,apigee -metrics-apigee-telemetry,apigee-open-telemetry,apigee-synchronizer -myhybridorg-dev-ee52aca,apigee-runtime-telemetry-collector-apigee- telemetry,apigee-logger-apigee-e-myhybrridorg-dev-ee52aca,apigee-sy nchronizer-myhybridog-prod-2d0221c,apigee-runtime-myhybridorg-prod- 2d0221c,apigee-operator-guardrails-sa
- 更新されたサービス アカウント名のリストを使用して、
apigee-orgsakeysロールのバインディングを更新します。vault write auth/kubernetes/role/apigee-orgsakeys \ bound_service_account_names=UPDATED_BOUND_SERVICE_ACCOUNT_NAMES \ bound_service_account_namespaces=APIGEE_NAMESPACE \ policies=apigee-orgsakeys-auth \ ttl=1m
- KSA バインディングの現在のリストを取得します。
-
SecretProviderClassに「ガードレール」を追加します。spc-org.yamlファイルを編集します。spec.parameters.objectsに、ガードレールのエントリを追加します。- objectName: "guardrails" secretPath: "" secretKey: ""SecretProviderClassを更新します。kubectl -n APIGEE_NAMESPACE apply -f spc-org.yaml
WIF for GKE
ガードレールの Kubernetes サービス アカウント(KSA)の名前は
apigee-operator-guardrails-saです。次のコマンドを使用して、apigee-guardrailsGoogle サービス アカウント(GSA)のバインディングを作成します。gcloud iam service-accounts add-iam-policy-binding apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$APIGEE_NAMESPACE/apigee-operator-guardrails-sa]" \ --project $PROJECT_ID次のコードを
overrides.yamlファイルに追加します。guardrails: gsa: apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com
他のプラットフォームでの WIF
ガードレールの Kubernetes サービス アカウント(KSA)の名前は
apigee-operator-guardrails-saです。ガードレール KSA にapigee-guardrailsGoogle サービス アカウント(GSA)の権限を借用する権限を付与し、認証情報の構成ファイルを使用するようにオーバーライドを構成する必要があります。- 次のコマンドを使用して、KSA に GSA の権限を借用する権限を付与します。
テンプレート
gcloud iam service-accounts add-iam-policy-binding \ apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/system:serviceaccount:APIGEE_NAMESPACE:apigee-operator-guardrails-sa" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-guardrails@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-operator-guardrails-sa" \ --role=roles/iam.workloadIdentityUser
ここで
PROJECT_ID: Google Cloud プロジェクト ID。PROJECT_NUMBER: Workload Identity プールを作成したプロジェクトのプロジェクト番号。POOL_ID: Workload Identity プール ID。APIGEE_NAMESPACE: Apigee ハイブリッドがインストールされている Namespace。
apigee-guardrailsサービス アカウントの認証情報構成ファイルを作成します。gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com \ --credential-source-file=/var/run/service-account/token \ --credential-source-type=text \ --output-file=apigee-guardrails-credential-configuration.jsonここで、
WORKLOAD_PROVIDER_IDは Workload Identity プール プロバイダ ID です。- 次のいずれかの方法で Workload Identity 連携を使用するように
apigee-guardrailsを構成します。WIF: Secret
-
認証情報構成ファイルごとに認証情報ソースファイルを使用して、新しい Kubernetes Secret を作成します。
kubectl create secret -n APIGEE_NAMESPACE generic guardrails-workload-identity-secret --from-file="client_secret.json=./apigee-guardrails-credential-configuration.json"
-
serviceAccountRefの値を新しい Secret に置き換えます。guardrails: serviceAccountRef: guardrails-workload-identity-secret
WIF: ファイル
生成された
apigee-guardrails-credential-configuration.jsonファイルをapigee-operator/グラフ ディレクトリに移動します。次のコードを
overrides.yamlファイルに追加します。guardrails: serviceAccountPath: apigee-guardrails-credential-configuration.json
WIF: Vault
Vault の
guardrailsのサービス アカウント キーを、対応する認証情報ソースファイルで更新します。SAKEY=$(cat .apigee-guardrails-credential-configuration.json); kubectl -n APIGEE_NAMESPACE exec vault-0 -- vault kv patch secret/apigee/orgsakeys guardrails="$SAKEY"
詳細については、
Storing service account keys in Hashicorp Vaultをご覧ください。 -
認証情報構成ファイルごとに認証情報ソースファイルを使用して、新しい Kubernetes Secret を作成します。
- Vault シークレット
cert-manager をアップグレードする
Apigee ハイブリッド v1.16 は、cert-manager リリース 1.16 ~ 1.19 をサポートしています。cert-manager 1.18 には、トラフィックに関する問題を引き起こす可能性のある変更があります。cert-manager リリース 1.18 で、Certificate.Spec.PrivateKey.rotationPolicy のデフォルト値が Never から Always に変更されました。アップグレードされた Apigee ハイブリッド インストールの場合、これによりトラフィックに関する問題が発生する可能性があります。以前のバージョンからハイブリッド v1.16 にアップグレードする場合は、この変更を補うように apigee-ca 証明書を編集するか、cert-manager のバージョンをリリース 1.17.x 以下に維持する必要があります。
cert-manager を 1.18 または 1.19 にアップグレードする前に、次の手順で apigee-ca 証明書を編集して、Certificate.Spec.PrivateKey.rotationPolicy の値を Never に設定します。
-
apigee-ca証明書の内容を調べて、rotationPolicyが設定されているかどうかを確認します。kubectl get certificate apigee-ca -n cert-manager -o yaml
出力で
spec.privateKeyの下の値を探します。... spec: commonName: apigee-hybrid duration: 87600h isCA: true issuerRef: group: cert-manager.io kind: ClusterIssuer name: apigee-root-certificate-issuer privateKey: algorithm: ECDSA # Note: rotationPolicy would appear here if it is set. size: 256 secretName: apigee-ca ... -
rotationPolicyが設定されていない場合、またはAlwaysに設定されている場合は、apigee-ca証明書を編集してrotationPolicyの値をNeverに設定します。- 最初にドライランを実行します。
kubectl patch Certificate \ --dry-run=server \ -n cert-manager \ --type=json \ -p='[{"op": "replace", "path": "/spec/privateKey/rotationPolicy", "value": "Never"}]' \ -o=yaml \ apigee-ca - 証明書にパッチを適用します。
kubectl patch Certificate \ -n cert-manager \ --type=json \ -p='[{"op": "replace", "path": "/spec/privateKey/rotationPolicy", "value": "Never"}]' \ -o=yaml \ apigee-ca
- 最初にドライランを実行します。
-
rotationPolicyの値がNeverに設定されていることを確認します。kubectl get certificate apigee-ca -n cert-manager -o yaml
出力は次のようになります。
... spec: commonName: apigee-hybrid duration: 87600h isCA: true issuerRef: group: cert-manager.io kind: ClusterIssuer name: apigee-root-certificate-issuer privateKey: algorithm: ECDSA rotationPolicy: Never size: 256 secretName: apigee-ca ... -
cert-manager をアップグレードします。次のコマンドは、cert-manager v1.19.2 をダウンロードしてインストールします。
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.2/cert-manager.yaml
サポートされているバージョンの一覧については、サポートされているプラットフォームとバージョン: cert-manager をご覧ください。
参照:
- 既知の問題 465834046
- cert-manager リリース 1.18:
Certificate.Spec.PrivateKey.rotationPolicyのデフォルト値がAlwaysになりました
ハイブリッド 1.16.0 ランタイムをインストールする
- まだ行っていない場合は、
APIGEE_HELM_CHARTS_HOMEディレクトリに移動します。このディレクトリから次のコマンドを実行します。 - Apigee Operator/Controller をアップグレードします。
ドライランを実行します。
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
チャートをアップグレードします。
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
Apigee Operator のインストールを確認します。
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2024-08-21 00:42:44.492009 -0800 PST deployed apigee-operator-1.16.0 1.16.0
可用性をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 7d20h
- Apigee データストアをアップグレードします。
ドライランを実行します。
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
チャートをアップグレードします。
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
状態をチェックして、
apigeedatastoreが稼働していることを確認します。kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 2d
- Apigee テレメトリーをアップグレードします。
ドライランを実行します。
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
チャートをアップグレードします。
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 2d
- Apigee Redis をアップグレードします。
ドライランを実行します。
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
チャートをアップグレードします。
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 2d
- Apigee Ingress Manager をアップグレードします。
ドライランを実行します。
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
チャートをアップグレードします。
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
可用性をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 2d
- Apigee 組織をアップグレードします。
ドライランを実行します。
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
チャートをアップグレードします。
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
それぞれの組織の状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE apigee-my-org-my-env running 2d
- 環境をアップグレードします。
同時にインストールできる環境は 1 つだけです。
--set env=ENV_NAME で環境を指定します。ドライランを実行します。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE \ --dry-run=server
- ENV_RELEASE_NAME は、
apigee-envチャートのインストールとアップグレードの追跡に使用する名前です。この名前は、インストール内の他の Helm リリース名と重複していない必要があります。通常、これはENV_NAMEと同じにします。ただし、環境と環境グループの名前が同じである場合は、環境と環境グループに対して異なるリリース名(dev-env-releaseとdev-envgroup-releaseなど)を使用する必要があります。Helm でのリリースの詳細については、Helm ドキュメントの 3 つの大きなコンセプトをご覧ください。 - ENV_NAME はアップグレードする環境の名前です。
- OVERRIDES_FILE は、v.1.16.0 の新しいオーバーライド ファイルです。
チャートをアップグレードします。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
それぞれの環境の状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-org-my-env running 2d
- ENV_RELEASE_NAME は、
-
環境グループ(
virtualhosts)をアップグレードします。- 一度にアップグレードできる環境グループ(virtualhost)は 1 つだけです。
--set envgroup=ENV_GROUP_NAME を使用して環境グループを指定します。overrides.yaml ファイルに記載されている環境グループごとに、次のコマンドを繰り返します。ドライランを実行します。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE \ --dry-run=server
ENV_GROUP_RELEASE_NAME は、以前に
apigee-virtualhostチャートをインストールしたときに使用した名前です。通常は ENV_GROUP_NAME です。チャートをアップグレードします。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE
- ApigeeRoute(AR)の状態を確認します。
virtualhostsをインストールすると、ApigeeRouteConfig(ARC)が作成されます。これにより、Apigee ウォッチャーがコントロール プレーンから環境グループ関連の詳細を pull した時点で、ApigeeRoute(AR)が内部で作成されます。このため、対応する AR の状態が実行中であることを確認します。kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2d
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-org1-dev-egroup-123abc running 2d
- 一度にアップグレードできる環境グループ(virtualhost)は 1 つだけです。
- すべてのインストールが正常にアップグレードされたことを確認したら、古い
apigee-operatorリリースをapigee-systemNamespace から削除します。- 古い
operatorリリースをアンインストールします。helm delete operator -n apigee-system
apigee-systemNamespace を削除します。kubectl delete namespace apigee-system
- 古い
- Apigee Namespace で
operatorを再度アップグレードして、削除されたクラスタ スコープのリソースを再インストールします。helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
以前のバージョンにロールバックする
以前のバージョンにロールバックするには、古いチャート バージョンを使用して、アップグレード プロセスを逆の順序でロールバックします。apigee-virtualhost から始めて apigee-operator までロールバックしてから、CRD を元に戻します。
- すべてのチャートを
apigee-virtualhostからapigee-datastoreに戻します。次のコマンドは、以前のバージョン(v1.15.x)のチャートを使用していることを前提としています。環境グループごとに次のコマンドを実行します。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f 1.15_OVERRIDES_FILE
環境ごとに次のコマンドを実行します。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f 1.15_OVERRIDES_FILE
apigee-operatorを除く残りのチャートを元に戻します。helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
helm upgrade redis apigee-redis/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f 1.15_OVERRIDES_FILE
apigee-systemNamespace を作成します。kubectl create namespace apigee-system
- リソース アノテーションを
apigee-systemNamespace に適用します。kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-namespace='apigee-system'
- リリース名も変更した場合は、
operatorリリース名でアノテーションを更新します。kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-name='operator'
apigee-operatorをapigee-systemNamespace に再インストールします。helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.15_OVERRIDES_FILE
- 古い CRD を再インストールして CRD を元に戻します。
kubectl apply -k apigee-operator/etc/crds/default/ \ --server-side \ --force-conflicts \ --validate=false
- APIGEE_NAMESPACE Namespace から
apigee-operatorリリースをクリーンアップして、ロールバック プロセスを完了します。helm uninstall operator -n APIGEE_NAMESPACE
clusterIssuerなどのクラスタ スコープのリソースは、operatorがアンインストールされると削除されます。次のコマンドを使用して再インストールします。helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f 1.15_OVERRIDES_FILE