Deploying your Kubernetes cluster#

概要#

前提条件#

結果#

  • ハイブリッドマネージャーHMのコンピューティング、ストレージ、およびネットワーキング要件をすべて満たす、実行中の到達可能なKubernetesクラスター。

注釈

EDB support context: お客様は、Kubernetesクラスターのインストールとライフサイクル操作を所有します。 プロフェッショナルサービスは、作業ステートメントSoWを介して従事でき、サポートはナレッジベース記事を介して支援を提供できます。

次のフェーズ フェーズ4 Preparing your environment

プロビジョニングプロセスを開始する#

システム要件を定義したら、インフラストラクチャをプロビジョニングする準備が整います。 このフェーズでは、Hybrid ManagerHMプラットフォームをホストするベースKubernetesクラスターの展開について説明します。

HMは主にプラットフォームに依存せず、主要なクラウドプロバイダーとオンプレミスディストリビューションをサポートしています。 プラットフォーム固有の変動の場合、

管理ワークステーションをセットアップする#

前のフェーズ フェーズ2システム要件の収集 で計画したように、管理ワークステーションBastionまたはその他をプロビジョニングおよび構成します。

コアツールのインストール#

展開をオーケストレーションするには、次のCLIツールをインストールする必要があります。

  1. Kubernetesツール ``kubectl`` および``helm`` をインストールします。 公式ガイドに従って、 kubectl および Helm をインストールします。

  2. ``edbctl`` EDBハイブリッドマネージャーCLIをインストールします。 インストールスクリプトを実行して、バイナリをダウンロードします。

curl -sfL [https://get.enterprisedb.com/edbctl/install.sh](https://get.enterprisedb.com/edbctl/install.sh) | sh -
  1. ユーティリティのインストール

yq v4+、curl 、およびopenssl がパッケージマネージャーを介してインストールされていることを確認します。

# Example for Ubuntu/Debian
sudo apt-get update && sudo apt-get install -y curl openssl

# Example for MacOS
brew install yq curl openssl
  1. プラットフォームCLIのインストール環境に依存します。

パブリッククラウドに展開する場合は、認証に関連するCLIをインストールします。 *** AWS:** Install AWS CLI

*** Google Cloud:** Install gcloud SDK

*** OpenShift:** Install oc CLI

接続の検証#

構成フェーズに進む前に、ワークステーションが必要なエンドポイントに到達できることを確認します。

  1. インターネット/レジストリアクセスの確認

curl -I [https://docker.enterprisedb.com/v2/](https://docker.enterprisedb.com/v2/)
  1. クラウドIDの検証AWS / GCPを使用する場合

AWSの場合

aws sts get-caller-identity

またはGCPの場合

gcloud auth list
  1. ローカルツールの検証

edbctl version
kubectl version --client

注釈

ワークステーションが、インストール中に一時的なブートストラップクラスターをホストするためのCPUおよびRAMの要件を満たしていることを確認します。

Kubernetesクラスターを展開する#

管理ワークステーションの構成が完了したら、前のフェーズで定義した関連仕様に従ってクラスターを展開する準備が整います。

展開パスを選択してください#

フェーズ1または2で選択した Kubernetesフレーバー と一致する以下のガイドを選択し、 フェーズ2システム要件の収集 で定義されたシステム要件に従ってデプロイを続行します。

パブリッククラウドプロバイダー#

Provider

Official documentation

EDB Knowledge Base

Key considerations

AWS (EKS)

` Creating an EKS cluster <https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html>`__

` HM on EKS Guide <https://knowledge.enterprisedb.com/hc/en-us/articles/24212491501468-Guidance-on-AWS-for-Hybrid-Manager>`__

Requires IAM OIDC provider, EBS CSI driver, and LoadBalancer Controller.

Google Cloud (GKE)

` Creating a regional cluster <https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-regional-cluster>`__

` HM on GKE Guide <https://knowledge.enterprisedb.com/hc/en-us/articles/24212699192732-Guidance-on-GCP-for-Hybrid-Manager>`__

Requires Workload Identity enabled and specific VPC firewall rules.

プライベートクラウドとオンプレミス#

Distribution

Official documentation

EDB Knowledge Base

Key considerations

Rancher RKE2

Troubleshooting AI Factory on Hybrid Manager

` HM on RKE2 Guide <https://knowledge.enterprisedb.com/hc/en-us/articles/24212371387420-Guidance-on-Rancher-for-Hybrid-Manager>`__

Requires manual setup of Longhorn (or similar) storage and MetalLB for ingress.

Red Hat OpenShift

Troubleshooting AI Factory on Hybrid Manager

` HM on OpenShift Guide <https://knowledge.enterprisedb.com/hc/en-us/articles/24212799018780-Guidance-on-RHOS-for-Hybrid-Manager>`__

Requires specific SCC (Security Context Constraints) and Route configuration.

ノードの抽象化を設定する#

コントロールプレーン#

必須ラベルとテイント

  • ラベル edbaiplatform.io/control-plane: "true"

  • Taint: キー: ``edbaiplatform.io/control-plane`` 値: "true" *エフェクト: NoSchedule

spec:
    replicas: 3
    template:
    spec:
        metadata:
        labels:
            edbaiplatform.io/control-plane: "true"
        taints:
        - key: edbaiplatform.io/control-plane
            value: "true"
            effect: NoSchedule

データプレーン#

必須ラベルとテイント

  • ラベル edbaiplatform.io/postgres: "true"

  • Taint: キー: ``edbaiplatform.io/postgres`` 値: "true" *エフェクト: NoSchedule

#  Example Node Pool Specification

spec:
    replicas: 3 # Minimum recommended for High Availability
    template:
      metadata:
        labels:
          edbaiplatform.io/postgres: "true"
      spec:
        taints:
        - key: edbaiplatform.io/postgres
          value: "true"
          effect: NoSchedule

AIモデルノード#

  • サイジング 現在の推奨事項では、 Nvidia B200 GPU または同等のサポートされているハードウェアが必要です。

必須ラベルとテイント

  • ラベル nvidia.com/gpu: "true"

  • Taint: キー: ``nvidia.com/gpu`` 値: "true" *エフェクト: NoSchedule

クラスター仕様の検証#

クラスターの展開が完了したので、続行する前に次のことを行います。

  1. 管理ワークステーションをセットアップする が、次のフェーズ Preparing your environment の構成のすべての関連エンドポイントに到達できることを確認します。

  2. 展開したクラスターが フェーズ2システム要件の収集 で定義した関連仕様と一致することを確認します。

コンピューティングリソース#

出典 Gathering your system requirements>Compute (Node requirements)

  • ノード数 ノードプールが以前のフェーズで決定されたものと一致することを確認します。

  • アーキテクチャ すべてのノードが AMD64 (x86_64) アーキテクチャを使用していることを確認します。 ARMベースのノードは、現在コントロールプレーンでサポートされていません。

ノード抽象化の検証#

インフラストラクチャをプロビジョニングした後、これらのコマンドを実行して、ノードが正しくラベル付けされ、汚染されていることを確認します。これにより、Hybrid Managerインストーラーがポッドを正しくスケジュールできるようになります。

  1. コントロールプレーンノードを検証します。

kubectl get nodes -l edbaiplatform.io/control-plane="true"
  1. テイントの検証

kubectl get nodes -o json | jq .items[] | select(.metadata.labels["edbaiplatform.io/control-plane"]=="true") | {name: .metadata.name, taints: (.spec.taints // [] | map(select(.key=="edbaiplatform.io/control-plane")))}
  1. データプレーンノードの検証

kubectl get nodes -l edbaiplatform.io/postgres="true"
  1. テイントの検証

kubectl get nodes -o json | jq .items[] | {name: .metadata.name, labels: .metadata.labels["edbaiplatform.io/postgres"], taints: (.spec.taints // [] | map(select(.key=="edbaiplatform.io/postgres")))}

ブロックストレージ構成#

出典 Gathering your system requirements>6. Block storage (Database & logs)

  • ストレージクラス クラスターに、コントロールプレーンgp2 のフェーズ2で指定した **Storage Class** default があることを確認します。

  • 機能 必要に応じて、データプレーンPostgresワークロードの任意の数のストレージクラスを確立できます。これらは、HMを使用してデータベースクラスターをプロビジョニングするときに使用するオプションです。

Ingress#

出典 Gathering your system requirements>5. Ingress

  • イングレスコントローラ 選択したイングレスメカニズムロードバランサーまたはノードポートがアクティブで、必要なポートを公開していることを確認します。

  • DNS: CoreDNSまたは同等のサービスが正常で、内部サービス名を解決していることを確認します。

展開後の検証#

クラスターがActive またはReady になったら、これらの簡単なチェックを実行して、 環境の準備 フェーズの準備ができていることを確認します。

APIアクセスの検証#

管理ワークステーションをセットアップする から、APIサーバーに到達できることを確認します。

kubectl cluster-info
  • Success KubernetesコントロールプレーンURLを結果ます。

ストレージ機能の検証#

有効なストレージクラスが存在し、デフォルトに設定されていることを確認します。

kubectl get sc
  • Success 出力は、名前に(default) を含むクラスgp3 などをリストします。

IDの検証クラウドのみ#

EKS / GKE / AKSを使用している場合、現在のIAM IDに管理者権限があることを確認します。

kubectl auth can-i create secrets --all-namespaces
  • 成功 出力はyes です。

次のフェーズ#

インフラストラクチャがプロビジョニングされました。 これで、このクラスターに接続できます。

次に、イメージをローカルレジストリに同期し、シークレットのステージング、TLSの構成、関連する高度な機能を設定し、HM構成ファイルvalues.yaml を適用します。

** Preparing your environment →**