StackGresのデプロイおよび構成

Oracle Container Engine for Kubernetesクラスタを作成し、そこにStackGresをデプロイしてからデータベースを作成する必要があります。

開始する前に、OCIアーキテクチャを設定する必要があります。次の手順は、Kubernetesクラスタおよびデータベース以外のすべての準備が完了していることを前提としています。

Kubernetesクラスタの作成

StackGresデプロイメントのコンパートメントにOracle Cloud Infrastructure Container Engine for Kubernetesインスタンスを作成します。

  1. OCIコンソールのメイン・メニューから、「開発者サービス」を選択します。
  2. 「コンテナとアーティファクト」で、「Kubernetesクラスタ(OKE)」を選択します。
    コンパートメント内の既存のクラスタはすべて、表にリストされます。
  3. 「クラスタの作成」ボタンをクリックします。
  4. 「クラスタの作成」ダイアログで、「クイック作成」を選択して「送信」をクリックします。
    「クイック作成」オプションでは、このデプロイメントに必要なすべてのネットワーク・リソース(サブネットを含む)が作成されます。サブネットをすでに構成している場合は、かわりに「カスタム作成」オプションを使用できます。
  5. クラスタの作成(クイック)ウィザードで、次のフィールドおよびオプションの値を指定し、「次」をクリックします。
    たとえば、小規模(3 CPU)の配備の一般的な値は次のとおりです。
  6. 「確認」ステップで、「作成されるリソース」ページに、クラスタ、ネットワークおよびノード・プール情報のサマリーが表示されます。表示されているすべての情報を慎重に確認し、正しい場合は「クラスタの作成」をクリックします。
    「クラスタと関連ネットワーク・リソースの作成」ページが表示されます。作成される各コンポーネントは、自動プロセスが完了すると更新されるステータスとともにリストされます。通常、プロセスの完了には約15分かかります。
Kubernetesクラスタの作成が完了したら、クラスタへのStackGresのインストールに進むことができます。

クラウド・シェルを使用したStackGresのインストール

Oracle Cloud Infrastructure Cloud Shellコマンドライン・インタフェースを使用して、新しいKubernetesクラスタにStackGresをインストールします。

  1. OCIコンソールで、Kubernetesクラスタの「クラスタの詳細」ページに移動します。次のステップでは、ここに示す情報が必要です。
  2. OCIコンソールの上部バーで、「リージョン」ドロップダウン・メニューの横にあるコード・アイコンをクリックし、「クラウド・シェル」を選択します。
    しばらくすると、CLIが開きます。コンソールとプロンプトに、ユーザー名、テナンシ、リージョンおよびホーム・フォルダが表示されます。
  3. create-kubeconfigコマンドを、「クラスタ詳細」ページに示されている「クラスタID」値およびリージョンとともに使用します:
    oci ce cluster create-kubeconfig --cluster-id your_cluster_id --file $HOME/.kube/config --region your_region --token-version 2.0.0 --kube-endpoint PUBLIC_ENDPOINT
  4. Kubernetesノードが正しく起動したことを確認します:
    kubectl get nodes
    コンソール出力には、各ノードがIPアドレスと「準備完了」ステータスとともにリストされます。
  5. ポッドも正しく起動したことを確認します。
    kubectl get pods -A
    コンソール出力には、kube-systemネームスペースのすべてのポッドが「実行中」としてリストされます。
  6. パッケージのインストールを使用して、StackGresインストール・リポジトリを追加します。
    helm repo add stackgres-charts https://stackgres.io/downloads/stackgres-k8s/stackgres/helm/
    コンソール出力には、リポジトリが正常に追加されたことが示されます。
  7. 次のインストールを実行します。
    helm install --create-namespace --namespace stackgres stackgres-operator stackgres-charts/stackgres-operator
    インストールの実行には約5分かかります。
コンソールは、STATUSが deployedであることを示すメッセージと、StackGresオペレータUIのURIを含むコマンドと、管理者のユーザー名とパスワードを生成するための get secretコマンドを含む、役立つコマンドのリストを出力します。後から参照するために、この出力をすべてテキスト・ファイルにコピーします。

サービスの構成

Oracle Cloud Infrastructure Cloud Shellを使用してStackGresサービスを構成し、StackGres UIにログインします。

  1. Cloud Shellで、「タイプ」フィールドをClusterIPからLoadBalancerに変更して、サービス構成ファイルを編集します:
    kubectl edit services stackgres-restapi -n stackgres
    コンソールは、構成ファイルをviなどのデフォルトのテキスト・エディタにロードします。spec:type:フィールドを見つけ、値をLoadBalancerに変更します。viでEscキーを押したあと、:wqと入力してファイルを保存します。
  2. サービスの参照名を取得します。
    kubectl get pods -n stackgres –w
    stackgres-restapiポッドの名前をコピーします。たとえば、stackgres-restapi-684df1e9b-gx455です。
  3. サービスを公開してWebコンソールにアクセスします。
    kubectl expose pod your_stackgres-restapi-pod -n stackgres --type LoadBalancer --port 9443 --name admin-console
    コンソール出力は service/admin-console公開である必要があります。
  4. サービスのIPおよびアクセス・ポートを取得します:
    kubectl get services -n stackgres –w
    コンソール出力には、admin-consoleの行が含まれます。外部IPとポートの値をコピーします。URL https://<external-ip>:<port>/admin/index.htmlを使用してコンソールにアクセスできます
  5. インストールの実行時に提供されたget secretコマンドを使用して、コンソールのユーザー名とパスワードを生成します。

    kubectl get secret -n stackgres stackgres-restapi --template '{{ printf "username = %s\n" (.data.k8sUsername | base64decode) }}'

    kubectl get secret -n stackgres stackgres-restapi --template '{{ printf "password = %s\n" (.data.clearPassword | base64decode) }}'

    ユーザー名とパスワードをコピーします。
  6. StackGresコンソールにログインします。ステップ4で作成したURLを使用してコンソールに移動し、ステップ5で生成したユーザー名とパスワードを使用してログインします。
  7. 「ネームスペースの選択」ドロップダウンで、インストール中に作成したネームスペースを選択します。たとえば、stackgresです。
StackGresインスタンスは、StackGresコンソールから管理できます。

データベースの作成

StackGresコンソールを使用して、StackGresクラスタでデータベースを作成してアクセスします。

  1. StackGresコンソールで、「StackGresクラスタ」を選択します。次に、表で「新規作成しますか?」リンクをクリックします。
  2. クラスタの作成ウィザードで、PostgreSQLデータベース・インスタンスの値を入力し、「クラスタの作成」をクリックします。たとえば、高可用性本番環境用に3つのインスタンスを作成するには:
    クラスタが作成されると、ステータスは「アクティブ」のコンソールに表示されます。
  3. クラウド・シェルでPostgresクライアントpsqlに接続するためのkubectlコマンドなど、有用なコマンドを表示するには、「接続情報の表示」をクリックします。たとえば:
    kubectl -n stackgres exec -ti prod-0 -c postgres-util – psql
PostgreSQLデプロイメントがOCIで稼働するようになりました。