このステップでは、Apigee ハイブリッドを実行するクラスタの作成方法について説明します。ハイブリッドを実行するプラットフォームによって、その手順は異なります。始める前に、次の情報を確認してください。
クラスタを作成する
お使いのプラットフォームの手順を実施してください。
GKE
GKE でクラスタを作成する
この手順では、Google Cloud プロジェクトで GKE クラスタを構成して作成する方法について説明します。
ゾーンクラスタではなく、リージョン クラスタを作成することをおすすめします。リージョンとゾーンの違いについてよく理解していない場合は、リージョンとゾーンをご覧ください。使用可能なリージョンについては、使用可能なリージョンとゾーンをご覧ください。たとえば、us-west1
は有効なリージョン名で、us-west1-a
はリージョン内のゾーンです。
- ハイブリッド バージョン 1.10.4 でサポートされている GKE のバージョンを使用していることを確認します。Apigee ハイブリッドでサポートされているプラットフォームとバージョンをご覧ください。
- 前提条件で説明されているように、すべてのノードとアプリケーション サーバーのクロックがネットワーク タイム プロトコル(NTP)と同期していることを確認します。Cassandra データベースは、ネットワーク タイム プロトコル(NTP)の同期によってデータの整合性を維持します。ハイブリッドを複数のリージョンにインストールする場合は、すべてのリージョンで NTP と同期するようにします。
- (GKE 限定公開クラスタのみ)限定公開クラスタを作成する場合は、ファイアウォール ルールを追加して、GKE マスターノードと GKE ワーカーノード間の通信にポート 9443 を許可し、GKE マスターが Apigee の変更用 Webhook にアクセスできるようにします。Google Kubernetes Engine のドキュメントの特定のユースケースに対するファイアウォール ルールの追加の手順に沿って操作してください。詳細については、GKE の限定公開クラスタをご覧ください。
Standard クラスタまたは一般公開クラスタを作成する場合は、このルールを追加する必要はありません。
- マルチゾーンのノードプールを持つリージョン クラスタを作成するの手順に沿って、Standard クラスタを作成します。デフォルトのノードプールだけを使用してクラスタを作成しても問題ありません。次のステップで、必要な Apigee ハイブリッド ノードプールを構成して作成します。
クラスタの作成が正常に完了した場合にのみ、次のステップに進みます。
- ノードプールの追加と管理の手順に沿って、2 つのノードプールを作成します。次の表に示す最小要件でノードプールを構成してください。
ノードプールの最小要件
ノードプールを作成する場合は、これらの最小要件を満たしていることを確認してください。Cloud コンソールを使用する場合は、ノードプールの詳細とノードの両方のセクションを必ず構成してください。
ノードプール名 説明 最小ノード数 最小
マシンタイプapigee-data
Cassandra データベース用のステートフル ノードプール。 ゾーンあたり 1
(リージョンあたり 3)e2-standard-4
(4 vCPU、16 GB メモリ)apigee-runtime
ランタイムの Message Processor 用のステートレス ノードプール。 ゾーンあたり 1
(リージョンあたり 3)e2-standard-4
(4 vCPU、16 GB メモリ)ノードプールの構成の詳細については、専用ノードプールの構成をご覧ください。
- (省略可)必要に応じて、
default
ノードプールを削除できます。ノードプールを削除するをご覧ください。 - 次の環境変数を作成します。これらの変数は、後続の gcloud コマンドで使用されます。
Linux / macOS
export CLUSTER_NAME="YOUR_CLUSTER_NAME"
export CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION"
Windows
set CLUSTER_NAME="YOUR_CLUSTER_NAME"
set CLUSTER_LOCATION=YOUR_CLUSTER_LOCATION
set PROJECT_ID=YOUR_PROJECT_ID
ここで
CLUSTER_NAME
: クラスタの名前。CLUSTER_LOCATION
: クラスタを作成したリージョン。
- ノードプールの構成を確認します。
リージョン クラスタ
gcloud container node-pools list \ --cluster=${CLUSTER_NAME} \ --region=${CLUSTER_LOCATION} \ --project=${PROJECT_ID}
ゾーンクラスタ
gcloud container node-pools list \ --cluster=${CLUSTER_NAME} \ --zone=${CLUSTER_LOCATION} \ --project=${PROJECT_ID}
- クラスタの情報を取得して、
kubectl
のデフォルト クラスタとして設定していることを確認します。 作成したクラスタのgcloud
認証情報。リージョン クラスタ
gcloud container clusters get-credentials ${CLUSTER_NAME} \ --region ${CLUSTER_LOCATION} \ --project ${PROJECT_ID}
ゾーンクラスタ
gcloud container clusters get-credentials ${CLUSTER_NAME} \ --zone ${CLUSTER_LOCATION} \ --project ${PROJECT_ID}
kubectl コマンドのデフォルト クラスタを設定するをご覧ください。
-
Cassandra 用の永続ソリッド ステート ディスク(SSD)ストレージを構成します。ローカル SSD の使用はサポートされていません。詳細については、Kubernetes ドキュメントのデフォルトのストレージ クラスを変更するをご覧ください。
- 現在のデフォルト StorageClass の名前を取得します:
kubectl get sc
次のような例になります。
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard-rwo
という StorageClass の詳細を確認します。タイプがpd-balanced
であることに注意してください:kubectl describe sc standard-rwo
次に例を示します。
kubectl describe sc standard-rwo
Name: standard-rwo IsDefaultClass: Yes Annotations: components.gke.io/layer=addon,storageclass.kubernetes.io/is-default-class=false Provisioner: pd.csi.storage.gke.io Parameters: type=pd-balanced AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
storageclass.yaml
という名前の新しいファイルを作成します。- 次のコードをファイルに追加します。ここでは新しいクラスの名前を
apigee-sc
にしていますが、任意の名前を付けることができます。また、ストレージ タイプがpd-ssd
であることに注意してください:--- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: "apigee-sc" provisioner: kubernetes.io/gce-pd parameters: type: pd-ssd replication-type: none volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true
- 新しい StorageClass を Kubernetes クラスタに適用します:
kubectl apply -f storageclass.yaml
- 次の 2 つのコマンドを実行して、デフォルトの StorageClass を変更します:
kubectl patch storageclass standard-rwo \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
kubectl patch storageclass apigee-sc \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
- 次のコマンドを実行して、新しいデフォルトの StorageClass が
apigee-sc
であることを確認します:kubectl get sc
次のような例になります。
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE apigee-sc (default) kubernetes.io/gce-pd Delete WaitForFirstConsumer true 14h premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h
- 現在のデフォルト StorageClass の名前を取得します:
- クラスタで Workload Identity を有効にします。Workload Identity を使用すると、GKE クラスタ内のワークロードが Identity and Access Management(IAM)サービス アカウントの権限を借用して Google Cloud サービスにアクセスできます。この処理には最長で 30 分ほどかかります。
リージョン クラスタ
gcloud container clusters update ${CLUSTER_NAME} \ --workload-pool=${PROJECT_ID}.svc.id.goog \ --project ${PROJECT_ID} \ --region ${CLUSTER_LOCATION}
ゾーンクラスタ
gcloud container clusters update ${CLUSTER_NAME} \ --workload-pool=${PROJECT_ID}.svc.id.goog \ --zone ${CLUSTER_LOCATION} \ --project ${PROJECT_ID}
詳細については、Workload Identity を有効にするをご覧ください。
- 次のコマンドを使用して、Workload Identity が正常に有効になっていることを確認します。
リージョン クラスタ
gcloud container clusters describe ${CLUSTER_NAME} \ --project ${PROJECT_ID} \ --region ${CLUSTER_LOCATION} | grep -i "workload"
ゾーンクラスタ
gcloud container clusters describe ${CLUSTER_NAME} \ --zone ${CLUSTER_LOCATION} \ --project ${PROJECT_ID} | grep -i "workload"
クラスタをインストールして起動したら、次のステップに進みます。
GKE On-Prem
GKE On-Prem でクラスタを作成する
この手順では、Apigee ハイブリッド用に GKE On-Prem クラスタを構成して作成する方法について説明します。
- ハイブリッド バージョン 1.10.4 でサポートされている Anthos オンプレミス VMWare のバージョンを使用していることを確認します。Apigee ハイブリッドでサポートされているプラットフォームとバージョンをご覧ください。
- 前提条件で説明されているように、すべてのノードとアプリケーション サーバーのクロックがネットワーク タイム プロトコル(NTP)と同期していることを確認します。Cassandra データベースは、ネットワーク タイム プロトコル(NTP)の同期によってデータの整合性を維持します。ハイブリッドを複数のリージョンにインストールする計画の場合は、すべてのリージョンにわたり NTP と同期するようにします。
- 基本クラスタを作成するの手順に沿ってクラスタを作成します。デフォルトのノードプールだけを使用してクラスタを作成しても問題ありません。次のステップで、必要な Apigee ハイブリッド ノードプールを構成して作成します。
クラスタの作成が正常に完了した場合にのみ、次のステップに進みます。
- ノードプールの作成と管理の手順に沿って、2 つのノードプールを作成します。次の表に示す最小要件でノードプールを構成します。
ノードプールの最小要件
ノードプールを作成する場合は、これらの最小要件を満たしていることを確認してください。
ノードプール名 説明 最小ノード数 最小
マシンタイプapigee-data
Cassandra データベース用のステートフル ノードプール。 ゾーンあたり 1
(リージョンあたり 3)e2-standard-4
(4 vCPU、16 GB メモリ)apigee-runtime
ランタイムの Message Processor 用のステートレス ノードプール。 ゾーンあたり 1
(リージョンあたり 3)e2-standard-4
(4 vCPU、16 GB メモリ)ノードプールの構成の詳細については、専用ノードプールを構成するをご覧ください。
- (省略可)必要に応じて、
default
ノードプールを削除できます。ノードプールを削除するをご覧ください。 -
Cassandra 用の永続ソリッド ステート ディスク(SSD)ストレージを構成します。ローカル SSD の使用はサポートされていません。詳細については、Kubernetes ドキュメントのデフォルトのストレージ クラスを変更するをご覧ください。
- 現在のデフォルト StorageClass の名前を取得します:
kubectl get sc
次に例を示します。
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard-rwo
という StorageClass の詳細を確認します。タイプがpd-balanced
であることに注意してください:kubectl describe sc standard-rwo
次に例を示します。
kubectl describe sc standard-rwo
Name: standard-rwo IsDefaultClass: Yes Annotations: components.gke.io/layer=addon,storageclass.kubernetes.io/is-default-class=false Provisioner: pd.csi.storage.gke.io Parameters: type=pd-balanced AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
storageclass.yaml
という名前の新しいファイルを作成します。- 次のコードをファイルに追加します。ここでは新しいクラスの名前を
apigee-sc
にしていますが、任意の名前を付けることができます。また、ストレージ タイプがpd-ssd
であることに注意してください:--- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: "apigee-sc" provisioner: kubernetes.io/gce-pd parameters: type: pd-ssd replication-type: none volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true
- 新しい StorageClass を Kubernetes クラスタに適用します:
kubectl apply -f storageclass.yaml
- 次の 2 つのコマンドを実行して、デフォルトの StorageClass を変更します:
kubectl patch storageclass standard-rwo \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
kubectl patch storageclass apigee-sc \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
- 次のコマンドを実行して、新しいデフォルトの StorageClass が
apigee-sc
であることを確認します:kubectl get sc
次に例を示します。
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE apigee-sc (default) kubernetes.io/gce-pd Delete WaitForFirstConsumer true 14h premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h
- 現在のデフォルト StorageClass の名前を取得します:
クラスタをインストールして起動したら、次のステップに進みます。
Anthos on bare metal
Anthos on bare metal でクラスタを作成する
Anthos on bare metal で Apigee ハイブリッド用にクラスタを構成して作成する方法について説明します。Anthos on bare metal を使用すると、自分のマシンリソース上で Kubernetes クラスタを直接実行できます。
- ハイブリッド バージョン 1.10.4 でサポートされている Anthos on bare metal のバージョンを使用していることを確認します。Apigee ハイブリッドでサポートされているプラットフォームとバージョンをご覧ください。
- 前提条件で説明されているように、すべてのノードとアプリケーション サーバーのクロックがネットワーク タイム プロトコル(NTP)と同期していることを確認します。Cassandra データベースは、ネットワーク タイム プロトコル(NTP)の同期によってデータの整合性を維持します。ハイブリッドを複数のリージョンにインストールする計画の場合は、すべてのリージョンにわたり NTP と同期するようにします。
- インストールの前提条件の概要とクラスタの作成: 概要を確認します。
- 次の 2 つのノードプールが構成されているクラスタを作成します。
- Anthos clusters on bare metal クイックスタートの手順に沿ってクラスタを作成します。
- 少なくとも 2 つのノードプールを作成します。次の表に示す最小要件でノードプールを構成します。
クラスタの最小構成は次のとおりです。
構成 ステートフル ノードプール ステートレス ノードプール 目的 Cassandra データベース用のステートフル ノードプール。 ランタイムの Message Processor 用のステートレス ノードプール。 ラベル名 apigee-data apigee-runtime ノード数 ゾーンあたり 1(リージョンあたり 3) ゾーンあたり 1(リージョンあたり 3) CPU 4 4 RAM 15 15 ストレージ 動的 ApigeeDeployment CRD で管理 最小ディスク IOPS SAN または直接アタッチされたストレージで 2,000 IOPS。必要な IOPS をサポートできる場合であっても、NFS は推奨されません。 SAN または直接アタッチされたストレージで 2,000 IOPS。必要な IOPS をサポートできる場合であっても、NFS は推奨されません。 マシン インスタンス タイプごとのネットワーク帯域幅 1 Gbps 1 Gbps 最小クラスタ構成の詳細については、最小クラスタ構成をご覧ください。
クラスタをインストールして起動したら、次のステップに進みます。
AKS
AKS でクラスタを作成する
以下の手順では、AKS で Apigee ハイブリッド用にクラスタを構成して作成する方法について説明します。
- ハイブリッド バージョン 1.10.4 でサポートされている AKS のバージョンを使用していることを確認します。Apigee ハイブリッドでサポートされているプラットフォームとバージョンをご覧ください。
- 前提条件で説明されているように、すべてのノードとアプリケーション サーバーのクロックがネットワーク タイム プロトコル(NTP)と同期していることを確認します。Cassandra データベースは、ネットワーク タイム プロトコル(NTP)の同期によってデータの整合性を維持します。ハイブリッドを複数のリージョンにインストールする計画の場合は、すべてのリージョンにわたり NTP と同期するようにします。
- Azure CLI または Azure Portal を使用してクラスタを作成し、以下で説明するように 2 つのノードプールを作成します。
クラスタの最小構成は次のとおりです。
構成 ステートフル ノードプール ステートレス ノードプール 目的 Cassandra データベース用のステートフル ノードプール。 ランタイムの Message Processor 用のステートレス ノードプール。 ラベル名 apigee-data apigee-runtime ノード数 ゾーンあたり 1(リージョンあたり 3) ゾーンあたり 1(リージョンあたり 3) CPU 4 4 RAM 15 15 ストレージ 動的 ApigeeDeployment CRD で管理 最小ディスク IOPS SAN または直接アタッチされたストレージで 2,000 IOPS。必要な IOPS をサポートできる場合であっても、NFS は推奨されません。 SAN または直接アタッチされたストレージで 2,000 IOPS。必要な IOPS をサポートできる場合であっても、NFS は推奨されません。 マシン インスタンス タイプごとのネットワーク帯域幅 1 Gbps 1 Gbps 最小クラスタ構成の詳細については、最小クラスタ構成をご覧ください。
クラスタをインストールして起動したら、次のステップに進みます。
EKS
EKS でクラスタを作成する
以下の手順では、EKS で Apigee ハイブリッド用にクラスタを構成して作成する方法について説明します。
- ハイブリッド バージョン 1.10.4 でサポートされている EKS のバージョンを使用していることを確認します。Apigee ハイブリッドでサポートされているプラットフォームとバージョンをご覧ください。
- 前提条件で説明されているように、すべてのノードとアプリケーション サーバーのクロックがネットワーク タイム プロトコル(NTP)と同期していることを確認します。Cassandra データベースは、ネットワーク タイム プロトコル(NTP)の同期を使用してデータの整合性を維持します。ハイブリッドを複数のリージョンにインストールする場合は、すべてのリージョンで NTP と同期するようにします。
- Kubernetes バージョン 1.24 以降を使用している場合は、Amazon EBS 用の Kubernetes CSI ドライバがインストールされていることを確認してください。
- 次の手順でユーザー クラスタを作成し、以下で説明する 2 つのノードプールを作成します。
クラスタの最小構成は次のとおりです。
構成 ステートフル ノードプール ステートレス ノードプール 目的 Cassandra データベース用のステートフル ノードプール。 ランタイムの Message Processor 用のステートレス ノードプール。 ラベル名 apigee-data apigee-runtime ノード数 ゾーンあたり 1(リージョンあたり 3) ゾーンあたり 1(リージョンあたり 3) CPU 4 4 RAM 15 15 ストレージ 動的 ApigeeDeployment CRD で管理 最小ディスク IOPS SAN または直接アタッチされたストレージで 2,000 IOPS。必要な IOPS をサポートできる場合であっても、NFS は推奨されません。 SAN または直接アタッチされたストレージで 2,000 IOPS。必要な IOPS をサポートできる場合であっても、NFS は推奨されません。 マシン インスタンス タイプごとのネットワーク帯域幅 1 Gbps 1 Gbps 最小クラスタ構成の詳細については、最小クラスタ構成をご覧ください。
クラスタをインストールして起動したら、次のステップに進みます。
GKE on AWS
GKE on AWS でクラスタを作成する
以下の手順では、GKE on AWS で Apigee ハイブリッド用にクラスタを構成して作成する方法について説明します。
- ハイブリッド バージョン 1.10.4 でサポートされている GKE のバージョンを使用していることを確認します。Apigee ハイブリッドでサポートされているプラットフォームとバージョンをご覧ください。
- 前提条件で説明されているように、すべてのノードとアプリケーション サーバーのクロックがネットワーク タイム プロトコル(NTP)と同期していることを確認します。Cassandra データベースは、ネットワーク タイム プロトコル(NTP)の同期を使用してデータの整合性を維持します。ハイブリッドを複数のリージョンにインストールする場合は、すべてのリージョンで NTP と同期するようにします。
- 次の手順でユーザー クラスタを作成し、以下で説明する 2 つのノードプールを作成します。
クラスタの最小構成は次のとおりです。
構成 ステートフル ノードプール ステートレス ノードプール 目的 Cassandra データベース用のステートフル ノードプール。 ランタイムの Message Processor 用のステートレス ノードプール。 ラベル名 apigee-data apigee-runtime ノード数 ゾーンあたり 1(リージョンあたり 3) ゾーンあたり 1(リージョンあたり 3) CPU 4 4 RAM 15 15 ストレージ 動的 ApigeeDeployment CRD で管理 最小ディスク IOPS SAN または直接アタッチされたストレージで 2,000 IOPS。必要な IOPS をサポートできる場合であっても、NFS は推奨されません。 SAN または直接アタッチされたストレージで 2,000 IOPS。必要な IOPS をサポートできる場合であっても、NFS は推奨されません。 マシン インスタンス タイプごとのネットワーク帯域幅 1 Gbps 1 Gbps 最小クラスタ構成の詳細については、最小クラスタ構成をご覧ください。
クラスタをインストールして起動したら、次のステップに進みます。
OpenShift
OpenShift でクラスタを作成する
以下の手順では、OpenShift で Apigee ハイブリッド用にクラスタを構成して作成する方法について説明します。
- ハイブリッド バージョン 1.10.4 でサポートされている OpenShift のバージョンを使用していることを確認します。Apigee ハイブリッドでサポートされているプラットフォームとバージョンをご覧ください。
- 前提条件で説明されているように、すべてのノードとアプリケーション サーバーのクロックがネットワーク タイム プロトコル(NTP)と同期していることを確認します。Cassandra データベースは、ネットワーク タイム プロトコル(NTP)の同期を使用してデータの整合性を維持します。ハイブリッドを複数のリージョンにインストールする場合は、すべてのリージョンで NTP と同期するようにします。
- ランタイム プレーンにデプロイする OpenShift クラスタを構築して、OpenShift ユーザー クラスタに Apigee をインストールし、2 つのノードプールを作成します。
OpenShift のインストールの一環として、CLI ツールの
oc
をインストールして構成します。OpenShift ドキュメントの OpenShift CLI のスタートガイドをご覧ください。クラスタの最小構成は次のとおりです。
構成 ステートフル ノードプール ステートレス ノードプール 目的 Cassandra データベース用のステートフル ノードプール。 ランタイムの Message Processor 用のステートレス ノードプール。 ラベル名 apigee-data apigee-runtime ノード数 ゾーンあたり 1(リージョンあたり 3) ゾーンあたり 1(リージョンあたり 3) CPU 4 4 RAM 15 15 ストレージ 動的 ApigeeDeployment CRD で管理 最小ディスク IOPS SAN または直接アタッチされたストレージで 2,000 IOPS。必要な IOPS をサポートできる場合であっても、NFS は推奨されません。 SAN または直接アタッチされたストレージで 2,000 IOPS。必要な IOPS をサポートできる場合であっても、NFS は推奨されません。 マシン インスタンス タイプごとのネットワーク帯域幅 1 Gbps 1 Gbps 最小クラスタ構成の詳細については、最小クラスタ構成をご覧ください。
クラスタをインストールしたら、次のステップに進みます。
1 (次)ステップ 2: cert-manager をインストールする 3 4 5 6 7 8 9 10 11