Installing Hybrid Manager on AWS EKS#

Helmとブートストラップキットを使用して、 Amazon EKS にHybrid ManagerHMをインストールできます。

重要

インストールプロセスのこの部分を開始する前に、 Prerequisites for AI Factory on Hybrid Manager を完了します。

インストールするバージョンを設定します#

EDB Software Deploymentプラットフォームのバージョンは、環境変数EDB_PLATFORM_VERSIONによって設定されます。これは、インストールするプラットフォームのバージョンに設定する必要があります。たとえば、バージョンv1.2.0をインストールするには、次のように環境変数を設定します。

export EDB_PLATFORM_VERSION="v1.2.0"

トークンを設定します#

このインストールプロセスでは、EDBサブスクリプショントークンを環境変数として保存する必要があります。 EDB Account Profile に移動して、取得できます。プロンプトが表示されたら、ログインします。そこに、Repos 2.0トークンのエントリがあります。

Repo Token

Repo Token#

この値を取得して、環境変数として設定します。

export EDB_SUBSCRIPTION_TOKEN="your-token"

ブートストラップキットを入手する#

Hybrid Managerは、ブートストラップキットを使用してインストールされます。このキットは、EDB Software Deploymentプラットフォームのインストールに使用されるスクリプトとHelmチャートのコレクションです。

すべてのファイルをローカルマシンのディレクトリにコピーし、cd をそのディレクトリにコピーします。

シークレットのインストール#

ブートストラッププロセスでは、Kubernetesクラスターに多数のシークレットをインストールする必要があります。これらのシークレットは、EDBダウンロードリポジトリで認証し、EDBソフトウェア展開プラットフォームの資格情報を保存するために使用されます。

ブートストラッププロセスに必要なシークレットをインストールするには、 install-secrets.sh スクリプトを実行します。トークンは環境変数として既に設定しているため、スクリプトにパイプできます。

echo $EDB_SUBSCRIPTION_TOKEN | $SHELL eks-install-secrets.sh
Enter the password for pgai-platform@docker.enterprisedb.com
Creating secret edb-cred
namespace/upm-replicator configured
secret/edb-cred configured
namespace/edbpgai-bootstrap configured
secret/edb-cred configured
secret/edb-cred annotated
PG_CONFOUNDING_KEY is 01234567890123456789ABCDEFG - store safely
Installation completed

このプロセスでは、ハイブリッドマネージャーを実行するために必要なシークレットを作成します。これらのシークレットの詳細については、次の場所で確認できます。

A secret for Griptape and DeltaLake object storage configuration GenAI Builderのオプショナル**

A secret for Catalog カタログを使用する場合のオプショナル**

custom secrets for Migration Portal 移行ポータルとの内部通信を保護するオプション**

も参照してください。

値ファイルの準備#

ブートストラッププロセスでは、Helmチャートで多くの値を設定する必要があります。これらの値は、values.yaml というファイルに保存されます。このファイルは、 default-env.sh ファイルの変数を使用するprepare.sh スクリプトを実行して作成できます。 default-env.sh ファイルを編集して、必要な値を設定します。

これは、デフォルトのdefault-env.sh ファイルです。

#  exports for EKS

export EDB_PLATFORM_VERSION="v1.2.0"
export EDB_TARGET_PLATFORM="eks"
export CONTAINER_REGISTRY_URI="docker.enterprisedb.com/pgai-platform"
export IMAGESET_REGISTRY_URI=$CONTAINER_REGISTRY_URI
export IMAGESET_AUTHTYPE="token"
export PORTAL_DOMAIN_NAME="portal.foo.network"
export TRANSPORTER_RW_SERVICE_DOMAIN_NAME="transporter.foo.network"
export BEACON_SERVICE_DOMAIN_NAME="beacon.foo.network"
export AUTHENTICATION_EMAIL="owner@mycompany.com"
export AUTHENTICATION_USER="owner@mycompany.com"
export LOCATION_NAME="default-location"

#  Set a password hash for the user or pass a password to have it hashed for you.

#  If you pass a password, you will need to remove it from your history.

#  You can hash a password using the following command:

#  echo -n "password" | htpasswd -BinC 10 admin | cut -d: -f2

#

# export AUTHENTICATION_PASSWORD="password"

export AUTHENTICATION_PASSWORD_HASH="$2y$10$vKOAXfLHbeV1OQxMpxlLdOIwnX.JAN.ZrD9ZU//ocrNQwhQIMtXhy"

次に、 default-env.sh ファイルの変数の簡単なガイドを示します。

Variable

Description

EDB_TARGET_PLATFORM

インストールのターゲットプラットフォーム。 Amazon EKSにインストールするため、eksに設定します。

CONTAINER_REGISTRY_URI

使用するコンテナレジストリのURI。これはEDBダウンロードリポジトリに設定されます。

IMAGESET_REGISTRY_URI

イメージセットレジストリのURI。これはEDBダウンロードリポジトリに設定されます。

IMAGESET_AUTHTYPE

イメージセットレジストリの認証タイプ。 EDBダウンロードリポジトリでの認証にトークンを使用するため、トークンに設定します。

PORTAL_DOMAIN_NAME

ドメインは、HMコンソールにアクセスするためのパブリックURLとして機能します。以下の推奨事項を参照してください。

TRANSPORTER_RW_SERVICE_DOMAIN_NAME

Data Migration Service内部的に`transporter`のドメイン名。以下の推奨事項を参照してください。

BEACON_SERVICE_DOMAIN_NAME

ビーコンサービスのドメイン名。

AUTHENTICATION_EMAIL

作成するユーザーのメールアドレス。

AUTHENTICATION_USER

作成するユーザーのユーザー名。

AUTHENTICATION_PASSWORD

作成するユーザーのパスワード。これは、プレーンテキストとして、またはAUTHENTICATION_PASSWORD_HASHを使用したハッシュとして設定できます。

AUTHENTICATION_PASSWORD_HASH

作成するパスワードのハッシュ。

LOCATION_NAME

エージェントのロケーション名。以前はビーコンエージェントとして知られていました。

!!!note PORTAL_DOMAIN_NAMEおよびTRANSPORTER_RW_SERVICE_DOMAIN_NAMEの推奨事項

一貫性と管理を容易にするために、 PORTAL_DOMAIN_NAMEからTRANSPORTER_RW_SERVICE_DOMAIN_NAMEを取得します。最も一般的なアプローチは、 portal サブドメインをdms に置き換えることです。

次の表は、トップレベルドメイン examplecompany.com に基づいたさまざまな例を使用してこの関係を示しています。

PORTAL_DOMAIN_NAME

TRANSPORTER_RW_SERVICE_DOMAIN_NAME

portal.examplecompany.com

dms.examplecompany.com

portal-dev.examplecompany.com

dms-dev.examplecompany.com

portal.hm001.examplecompany.com

dms.hm001.examplecompany.com

portal-hm-us-east-001.examplecompany.com

dms-hm-us-east-001.examplecompany.com

prepare.sh スクリプトを実行して、 values.yaml ファイルを作成します。

$SHELL prepare.sh

これにより、 default-env.sh ファイルで設定された値を使用してvalues.yaml ファイルが作成されます。

次のコマンドを使用してHelmチャートリポジトリをインストールします。

helm repo add edbpgai "https://downloads.enterprisedb.com/${EDB_SUBSCRIPTION_TOKEN}/pgai-platform/helm/charts"

チャートリポジトリが追加されたら、最新の状態であることを確認します。

helm repo update

これで、次のコマンドを使用してhelmリポジトリからvalues.yaml ファイルを作成できます。

helm show values edbpgai/edbpgai-bootstrap > values.yaml

これで、ブートストラッププロセスのチャートのデフォルト値を含むvalues.yaml ファイルが完成しました。

ブートストラッププロセス用に2つの値を作成する必要があります。これらはAES_256_KEYとAUTHENTICATION_PASSWORD_HASHです。次のコマンドを使用してこれらの値を作成できます。

export AES_256_KEY=$(openssl rand -base64 32)

ハッシュするパスワードがある場合は、次のコマンドで行うことができます。

export AUTHENTICATION_PASSWORD_HASH=$(echo -n $AUTHENTICATION_PASSWORD | htpasswd -BinC 10 admin | cut -d: -f2)

次に、 values.yaml ファイルを編集し、インストールに必要な値を設定する必要があります。 values.yaml ファイルで適切なキーを見つけ、次のように値を設定します。 $<name> エントリを、同じ名前の環境変数を設定した値に置き換えます。

  1. bootstrapImageName を\(CONTAINER_REGISTRY_URI、続いて「/edbpgai-bootstrap/bootstrap-」、次に\)EDB_TARGET_PLATFORMを設定します。たとえば、上記の値を指定すると、これはdocker.enterprisedb.com/pgai-platform/edbpgai-bootstrap/bootstrap-eks になります。

  2. bootstrapImageTag を$EDB_PLATFORM_VERSIONに設定します。

  3. parameters.upm-istio.cookie_aeskey を$AES_256_KEYに設定します。

  4. containerRegistryURL を$CONTAINER_REGISTRY_URIに設定します。

  5. system を$EDB_TARGET_PLATFORMに設定します。

  6. parameters.global.portal_domain_name を$PORTAL_DOMAIN_NAMEに設定します。

  7. parameters.transporter-rw-service.domain_name を$TRANSPORTER_RW_SERVICE_DOMAIN_NAMEに設定します。

  8. parameters.transporter-dp-agent.rw_service_url をhttps:// 、続いて$TRANSPORTER_RW_SERVICE_DOMAIN_NAME、/transporter に設定します。前に提供した例の最初の例に従って、これはhttps://dms.examplecompany.com/transporter になります。

  9. parameters.upm-beacon.server_host を\(BEACON_SERVICE_DOMAIN_NAMEに設定します。 10. `pgai.portal.authentication.staticPasswords[0].email\) を`AUTHENTICATION_EMAILに設定します。 11. pgai.portal.authentication.staticPasswords[0].hash を\(AUTHENTICATION_PASSWORD_HASHに設定します。 12. `pgai.portal.authentication.staticPasswords[0].username\) を`AUTHENTICATION_USERに設定します。 13. pgai.portal.authentication.staticPasswords[0].userID “c5998173-a605-449a-a9a5-4a9c33e26df”を設定します。 14. beaconAgent.location を$LOCATION_NAMEに設定します

Helmチャートを適用する#

values.yaml ファイルを準備したら、Helmチャートを適用してブートストラッププロセスを開始できます。これにより、Kubernetesクラスターに必要なリソースが作成され、ブートストラッププロセスを開始します。

helm upgrade -n edbpgai-bootstrap \
   --install -f ./values.yaml \
   --version "${EDB_PLATFORM_VERSION/-appl/+appl}" \
   edbpgai-bootstrap edbpgai/edbpgai-bootstrap

このコマンドは、Kubernetesクラスターにブートストラップコンテナをインストールします。ブートストラップコンテナは、EDB Software Deploymentプラットフォームの残りの部分をインストールします。

ブートストラッププロセスに従います#

ブートストラッププロセスが完了するまでに時間がかかります。ブートストラップコンテナのログを確認することにより、進行状況を追跡できます。

kubectl logs -f -l app=edbpgai-bootstrap -n edbpgai-bootstrap

ホスト名解決の構成#

イングレスゲートウェイのIPアドレスを取得します。実行します

kubectl -n istio-system get service istio-ingressgateway -o jsonpath={.status.loadBalancer.ingress[0].hostname} | strings | nslookup

このコマンドは、次のような出力を結果ます。

Server:         192.168.111.1
Address:        192.168.111.1#53

Non-authoritative answer:
Name:   k8s-istiosys-istioing-b3dc9b4f3c-81dc5c45b1d5f6d2.elb.us-east-1.amazonaws.com
Address: 52.70.180.102

次に、 default-env.sh で指定されたドメインが上記のコマンドから取得したIPアドレスを指すようにDNSサービスまたは/etc/hosts ファイルを構成する必要があります。これらのドメインはPORTAL_DOMAIN_NAME 、TRANSPORTER_RW_SERVICE_DOMAIN_NAME 、およびBEACON_SERVICE_DOMAIN_NAME にあります。上記の例では、それぞれportal.examplecompany.com 、dms.examplecompany.com 、およびbeacon.examplecompany.com に設定されます。

DNSの構成#

DNS構成で、これらのドメインごとに、取得したIPアドレスをポイントするCNAMEレコードを作成します。したがって、この例では、 examplecompany.com のDNSゾーンファイルに次のレコードを作成します。

cluster IN A 52.70.180.102
portal      IN CNAME cluster.examplecompany.com
transporter IN CNAME cluster.examplecompany.com
beacon      IN CNAME cluster.examplecompany.com

これは単純化された例です。実際の構成は、DNSプロバイダーとDNSレコードの管理方法によって異なります。

/etc/hosts の構成DNSサービスがない場合#

DNSサービスを構成していない場合は、IPアドレスをローカルの/etc/hosts ファイルに追加することを検討します。この追加により、default-env.sh ファイルで設定したドメイン名を使用してハイブリッドマネージャーコンソールにアクセスできます。

次に、次のようにIPアドレスを/etc/hosts ファイルに追加できます。

echo "52.70.180.102 portal.examplecompany.com dms.examplecompany.com beacon.examplecompany.com" | sudo tee -a /etc/hosts

IPアドレスを、前に取得した値に置き換えます。これは一時的な解決策であり、運用環境では使用しないでください。運用展開には、適切なDNSサービスを使用することをお勧めします。 /etc/hosts ファイルの設定は、設定したマシンでのみ機能します。

次のステップ#

connecting to the HM Console によるインストールを検証できるようになりました。