データセンターの追加

このドキュメントでは、データセンター(リージョン)を既存のデータに追加する方法について説明します。 選択します。

データセンターを追加する前の考慮事項

データセンターを追加する前に、OpenLDAP の構成方法、 データセンター全体で稼働する ZooKeeper、Cassandra、Postgres サーバー。また、kubectl の「get pods」 2 つのデータセンターのノード間で必要なポートが開放されている必要があります。

  • OpenLDAP

    各データセンターには、レプリケーションを有効にして構成された独自の OpenLDAP サーバーがあります。ユーザーが OpenLDAP でレプリケーションを使用するように構成し、 レプリケーションを使用するように既存のデータセンターの OpenLDAP サーバーを再構成する。

  • ZooKeeper

    次の ZK_HOSTS プロパティでは、 両方のデータセンターのすべての ZooKeeper ノードの IP アドレスまたは DNS 名を指定する すべてのノードを「:observer」修飾子でマークします。 :observer 修飾子のないノードは「ボーター」と呼ばれます。奇妙なものがあるはずです 「投票者」の数必要があります。

    このトポロジでは、ホスト 9 の ZooKeeper ホストがオブザーバーです。

    以下の構成ファイルの例では、ノード 9 に :observer 修飾子を指定して、ノード 1、2、3、7、8 の 5 つのボーターになるようにします。

    ZK_CLIENT_HOSTS プロパティを使用して、ZooKeeper のみの IP アドレスまたは DNS 名を指定します。 データ内のすべての ZooKeeper ノードに対して同じ順序で 選択します。

  • Cassandra

    データセンターごとの CASS_HOSTS には、すべての Cassandra IP を指定してください。 両方のデータのアドレス(DNS 名ではない) 提供しますデータセンター 1 の場合は、そのデータセンター内の Cassandra ノードを最初にリストします。データセンター向け 2. そのデータセンター内の Cassandra ノードを最初にリストします。同じリージョンの Cassandra ノードを データセンター内のすべての Cassandra ノードの順序で並べます。

    すべての Cassandra ノードには、「:d,r」という接尾辞を付ける必要があります。例: 'ip:1,1 = データセンター 1 とラック/アベイラビリティ ゾーン 1 = 'ip:2,1 = データセンター 2 とラック/アベイラビリティ ゾーン 1 です。

    例: "192.168.124.201:1,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 192.168.124.205:2,1 192.168.124.206:2,1」

    各データセンターのラック/アベイラビリティ ゾーン 1 の最初のノードがシードとして使用されます。 あります。このデプロイモデルでは、Cassandra の設定は次のようになります。

  • Postgres

    デフォルトでは、すべての Postgres ノードがマスターモードでインストールされます。ただし、 Postgres ノードを構成してマスター / スタンバイ レプリケーションを使用し、 スタンバイ ノードはサーバー トラフィックを継続できます。通常は 1 つのデータセンターにマスター Postgres サーバーを配置し、2 つ目のデータセンターにスタンバイ サーバーを配置します。 選択します。

    既存のデータセンターが 2 つの Postgres ノードを同じリージョン内で実行するようにすでに構成されている場合は、 既存のスタンバイ ノードを登録解除します。この手順では、既存のスタンバイ ノードを登録解除します。 新しいデータセンターのスタンバイ ノードに置き換えます。

    次の表に、両方の Postgres の構成の前後を示します。 シナリオ:

    変更前 変更後

    dc-1 に単一のマスター Postgres ノード

    dc-1 のマスター Postgres ノード

    dc-2 にスタンバイ Postgres ノード

    dc-1 のマスター Postgres ノード

    dc-1 にスタンバイ Postgres ノード

    dc-1 のマスター Postgres ノード

    dc-2 にスタンバイ Postgres ノード

    dc-1 の古いスタンバイ Postgres ノードの登録を解除します

  • ポート要件

    2 つのデータセンターのノード間で必要なポートを開く必要があります。 ポートの図については、ポートの要件をご覧ください。

既存のデータセンターを更新する

データセンターを追加するには、新しいデータをインストールして構成する手順を行う必要があります。 ただし、元のデータセンターのノードを更新する必要もあります。これらの 変更する必要があるのは、新しい Cassandra ノードと ZooKeeper ノードを新しい 既存のデータセンターからアクセスできる必要があり、構成を再構成して、 OpenLDAP でレプリケーションを使用する。

構成ファイルの作成

以下に、2 つのデータセンターのサイレント構成ファイルを示します。 インストール トポロジに示すように、6 つのノードがあります。dc-1 の構成ファイルに次の内容が追加されます。 以下を行えます。

  • 2 つの OpenLDAP ノード間でレプリケーションを行うように OpenLDAP を構成します。
  • dc-2 の新しい Cassandra ノードと ZooKeeper ノードを dc-1 の構成ファイルに追加します。
# Datacenter 1
IP1=IPorDNSnameOfNode1
IP2=IPorDNSnameOfNode2
IP3=IPorDNSnameOfNode3
IP7=IPorDNSnameOfNode7
IP8=IPorDNSnameOfNode8
IP9=IPorDNSnameOfNode9 
HOSTIP=$(hostname -i)
MSIP=$IP1
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=2
LDAP_SID=1
LDAP_PEER=$IP7
APIGEE_LDAPPW=secret
MP_POD=gateway-1
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1 $IP7:2,1 $IP8:2,1 $IP9:2,1"
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com 
SMTPPASSWORD=smtppwd   
SMTPSSL=n
SMTPPORT=25
SMTPMAILFROM="My Company <myco@company.com>"
# Datacenter 2
IP1=IPorDNSnameOfNode1
IP2=IPorDNSnameOfNode2
IP3=IPorDNSnameOfNode3
IP7=IPorDNSnameOfNode7
IP8=IPorDNSnameOfNode8
IP9=IPorDNSnameOfNode9 
HOSTIP=$(hostname -i)
MSIP=$IP7
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=2
LDAP_SID=2
LDAP_PEER=$IP1
APIGEE_LDAPPW=secret
MP_POD=gateway-2
REGION=dc-2
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP7:2,1 $IP8:2,1 $IP9:2,1 $IP1:1,1 $IP2:1,1 $IP3:1,1"
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com 
SMTPPASSWORD=smtppwd   
SMTPSSL=n
SMTPPORT=25
SMTPMAILFROM="My Company <myco@company.com>"

新しいデータセンターを追加する

以下の手順で新しいデータセンターを設置します。

この手順では、データセンターに次の名前を付けます。

  • dc-1: 既存のデータセンター
  • dc-2: 新しいデータセンター

新しいデータセンターを追加するには:

  1. dc-1 の元の Cassandra ノードで setup.sh を再実行します。 次の構成ファイルを作成します。
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. dc-1 の Management Server ノードで setup.sh を再実行します。
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. dc-2 で、すべてのノードに apigee-setup をインストールします。詳細については、Edge apigee-setup ユーティリティをインストールするをご覧ください。
  4. dc-2 で、Cassandra と ZooKeeper を該当するノードにインストールします。
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. dc-2 の場合、すべての Cassandra ノードで rebuild コマンドを実行します。 dc-1 のリージョン名:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1

    ユーザー名とパスワードを渡す必要があるのは、 Cassandra に対して JMX 認証が有効になっている

  6. dc-2 で、適切なノードに Management Server をインストールします。
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. dc-2 の Management Server ノードに、apigee-provision をインストールします。 apigee-adminapi.sh ユーティリティがインストールされます。
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. dc-2 で、Routes と Message Processor を適切なノードにインストールします。
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. dc-2 で、適切なノードに Qpid をインストールします。
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. dc-2 で、適切なノードに Postgres をインストールします。
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. Postgres ノードに Postgres マスター/スタンバイを設定します。dc-1 の Postgres ノードは、 dc-2 の Postgres ノードがスタンバイ サーバーになります。
    1. dc-1 のマスターノードで、構成ファイルを編集して次のように設定します。
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. 新しいマスターでレプリケーションを有効にします。
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. dc-2 のスタンバイ ノードで、構成ファイルを編集して次のように設定します。
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. dc-2 のスタンバイ ノードで、サーバーを停止してからすべてのノードを削除します 既存 Postgres データ:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      rm -rf /opt/apigee/data/apigee-postgresql/

      このデータは、削除する前に必要に応じてバックアップできます。

    5. dc-2 でスタンバイ ノードを構成します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. dc-1 で、分析構成を更新して組織を構成します。
    1. dc-1 の Management Server ノードで、Postgres の UUID を取得します。 node:
      apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \
        --admin adminEmail --pwd adminPword --host localhost

      返されたデータの最後に UUID が表示されます。その値を保存します。

    2. dc-2 の Management Server ノードで、Postgres の UUID を取得します。 ルートノードに追加します。その値を保存します。
    3. dc-1 の Management Server ノードで、ディレクトリの名前を確認します。 コンシューマグループなどがありますこの情報は、以下のコマンドの多くで必要になります。

      デフォルトでは、分析グループの名前は「axgroup-001」で、コンシューマの名前は 「consumer-group-001」です。リージョンのサイレント構成ファイルでは、デフォルト サービス アカウントの名前に AXGROUP プロパティを使って、分析グループのグループを作成する。

      分析グループとコンシューマ グループの名前がわからない場合は、以下を使用します。 それらを表示します。

      apigee-adminapi.sh analytics groups list \
        --admin adminEmail --pwd adminPword --host localhost

      このコマンドは、name フィールドに分析グループ名を返し、コンシューマ グループを返します。 入力します。

    4. dc-1 の Management Server ノードで、既存の Postgres を削除します。 2 つのデータソースから構成されます。 <ph type="x-smartling-placeholder">
        </ph>
      1. consumer-group から Postgres ノードを削除します。
        apigee-adminapi.sh analytics groups consumer_groups datastores remove \
          -g axgroup-001 -c consumer-group-001 -u UUID \
          -Y --admin adminEmail --pwd adminPword --host localhost

        dc-1 が 2 つの Postgres ノードを実行するように構成されている場合、 マスター/スタンバイ モードで、次の両方を削除:

        apigee-adminapi.sh analytics groups consumer_groups datastores remove \
          -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" \
          -Y --admin adminEmail --pwd adminPword --host localhost

      2. 分析グループから Postgres ノードを削除します。
        apigee-adminapi.sh analytics groups postgres_server remove \
          -g axgroup-001 -u UUID -Y --admin adminEmail \
          --pwd adminPword --host localhost

        dc-1 が、マスター/スタンバイ モードで 2 つの Postgres ノードを実行するように構成されている場合、 次の両方を削除します。

        apigee-adminapi.sh analytics groups postgres_server \
          remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \
          --pwd adminPword --host localhost
    5. dc-1 の Management Server ノードで、新しいマスター/スタンバイ ノードを追加します。 Postgres サーバーから分析グループへ: <ph type="x-smartling-placeholder">
        </ph>
      1. 両方の Postgres サーバーを分析グループに追加します。
        apigee-adminapi.sh analytics groups postgres_server \
          add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost

        ここで、UUID_1 は Google Cloud のマスター Postgres ノードに対応します。 dc-1UUID_2 はスタンバイ Postgres に対応します。 dc-2 のノード。

      2. PG サーバーを consumer-group にマスター/スタンバイとして追加します。
        apigee-adminapi.sh analytics groups consumer_groups datastores \
          add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost
    6. dc-2 の Qpid サーバーを分析グループに追加します。 <ph type="x-smartling-placeholder">
        </ph>
      1. dc-1 の Management Server ノードで、Qpid の UUID を取得します。 dc-2 のノード:
        apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \
          --admin adminEmail --pwd adminPword --host localhost

        返されたデータの最後に UUID が表示されます。これらの値を保存します。

      2. dc-1 の Management Server ノードで、Qpid ノードを 分析グループ(両方のコマンドを実行):
        apigee-adminapi.sh analytics groups qpid_server \
          add -g axgroup-001 -u "UUID_1" --admin adminEmail \
          --pwd adminPword --host localhost
        
        apigee-adminapi.sh analytics groups qpid_server \
          add -g axgroup-001 -u "UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost
      3. dc-1 の Management Server ノードで、Qpid ノードを コンシューマ グループ(両方のコマンドを実行):
        apigee-adminapi.sh analytics groups consumer_groups consumers \
          add -g axgroup-001 -c consumer-group-001 -u "UUID_1" \
          --admin adminEmail --pwd adminPword --host localhost
        
        apigee-adminapi.sh analytics groups consumer_groups consumers \
          add -g axgroup-001 -c consumer-group-001 -u "UUID_2" \
          --admin adminEmail --pwd adminPword --host localhost
    7. dc-1 の古い Postgres スタンバイ サーバーを登録解除して削除します。 <ph type="x-smartling-placeholder">
        </ph>
      1. 既存の dc-1 Postgres スタンバイ サーバーを登録解除します。
        apigee-adminapi.sh servers deregister -u UUID -r dc-1 \
          -p analytics -t postgres-server -Y --admin adminEmail \
          --pwd adminPword --host localhost

        ここで、UUID は dc-1 の古いスタンバイ Postgres ノードです。

      2. 既存の dc-1 Postgres スタンバイ サーバーを削除します。
        apigee-adminapi.sh servers delete -u UUID \
          --admin adminEmail --pwd adminPword --host localhost
  13. 2 つのデータセンターの正しいレプリケーション係数を使用して Cassandra キースペースを更新します。マイページ この手順は、次のいずれかのデータセンターの Cassandra サーバーで 1 回だけ実行する必要があります。
    1. Cassandra cqlsh ユーティリティを起動します。
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. 「cqlsh>」で次の CQL コマンドを実行します。レプリケーションを設定 次のとおりです。 <ph type="x-smartling-placeholder">
        </ph>
      1. ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' }; 
      2. ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. 次のコマンドを使用してキースペースを表示します。
        select * from system.schema_keyspaces;
      4. cqlsh を終了します。
        exit
  14. dc-1 のすべての Cassandra ノードで次の nodetool コマンドを実行して解放します。 memory:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

    ユーザー名とパスワードを渡す必要があるのは、 Cassandra に対して JMX 認証が有効になっている

  15. データセンター全体でサポートする組織および環境ごとに、以下を行います。 <ph type="x-smartling-placeholder">
      </ph>
    1. dc-1 の Management Server ノードで新しい MP_POD を 組織:
      apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \
        --admin adminEmail --pwd adminPword --host localhost

      ここで、gateway-2 は、定義されているゲートウェイ Pod の名前です。 dc-2 構成ファイルの MP_POD プロパティ。

    2. 新しい Message Processor を組織と環境に追加します。 <ph type="x-smartling-placeholder">
        </ph>
      1. dc-2 の Management Server ノードで、使用しているアプリケーションの UUID を取得します。 dc-2 の Message Processor ノード:
        apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \
          -t message-processor --admin adminEmail --pwd adminPword --host localhost

        返されたデータの最後に UUID が表示されます。これらの値を保存します。

      2. dc-1 の Management Server ノードで、各 Message Processor を作成します。 dc-2 で、組織の環境に Message Processor を追加します。
        apigee-adminapi.sh orgs envs servers add -o orgName -e envName \
          -u UUID --admin adminEmail --pwd adminPword --host localhost
    3. dc-1 の Management Server ノードで、組織を確認します。
      apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \
        --admin adminEmail --pwd adminPword --host localhost

      ここで、apiProxyName は組織にデプロイされている API プロキシの名前です。