Deploying your Kubernetes cluster#
概要#
前提条件#
フェーズ1 アーキテクチャの計画 完成品
フェーズ2システム要件の収集 完成品
結果#
ハイブリッドマネージャーHMのコンピューティング、ストレージ、およびネットワーキング要件をすべて満たす、実行中の到達可能なKubernetesクラスター。
注釈
EDB support context: お客様は、Kubernetesクラスターのインストールとライフサイクル操作を所有します。 プロフェッショナルサービスは、作業ステートメントSoWを介して従事でき、サポートはナレッジベース記事を介して支援を提供できます。
次のフェーズ フェーズ4 Preparing your environment
プロビジョニングプロセスを開始する#
システム要件を定義したら、インフラストラクチャをプロビジョニングする準備が整います。 このフェーズでは、Hybrid ManagerHMプラットフォームをホストするベースKubernetesクラスターの展開について説明します。
HMは主にプラットフォームに依存せず、主要なクラウドプロバイダーとオンプレミスディストリビューションをサポートしています。 プラットフォーム固有の変動の場合、
管理ワークステーションをセットアップする#
前のフェーズ フェーズ2システム要件の収集 で計画したように、管理ワークステーションBastionまたはその他をプロビジョニングおよび構成します。
コアツールのインストール#
展開をオーケストレーションするには、次のCLIツールをインストールする必要があります。
Kubernetesツール ``kubectl`` および``helm`` をインストールします。 公式ガイドに従って、 kubectl および Helm をインストールします。
``edbctl`` EDBハイブリッドマネージャーCLIをインストールします。 インストールスクリプトを実行して、バイナリをダウンロードします。
curl -sfL [https://get.enterprisedb.com/edbctl/install.sh](https://get.enterprisedb.com/edbctl/install.sh) | sh -
ユーティリティのインストール
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
プラットフォームCLIのインストール環境に依存します。
パブリッククラウドに展開する場合は、認証に関連するCLIをインストールします。 *** AWS:** Install AWS CLI
*** Google Cloud:** Install gcloud SDK
*** OpenShift:** Install oc CLI
接続の検証#
構成フェーズに進む前に、ワークステーションが必要なエンドポイントに到達できることを確認します。
インターネット/レジストリアクセスの確認
curl -I [https://docker.enterprisedb.com/v2/](https://docker.enterprisedb.com/v2/)
クラウドIDの検証AWS / GCPを使用する場合
AWSの場合
aws sts get-caller-identity
またはGCPの場合
gcloud auth list
ローカルツールの検証
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 |
` 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 |
` 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
クラスター仕様の検証#
クラスターの展開が完了したので、続行する前に次のことを行います。
管理ワークステーションをセットアップする が、次のフェーズ Preparing your environment の構成のすべての関連エンドポイントに到達できることを確認します。
展開したクラスターが フェーズ2システム要件の収集 で定義した関連仕様と一致することを確認します。
コンピューティングリソース#
出典 Gathering your system requirements>Compute (Node requirements)
ノード数 ノードプールが以前のフェーズで決定されたものと一致することを確認します。
アーキテクチャ すべてのノードが AMD64 (x86_64) アーキテクチャを使用していることを確認します。 ARMベースのノードは、現在コントロールプレーンでサポートされていません。
ノード抽象化の検証#
インフラストラクチャをプロビジョニングした後、これらのコマンドを実行して、ノードが正しくラベル付けされ、汚染されていることを確認します。これにより、Hybrid Managerインストーラーがポッドを正しくスケジュールできるようになります。
コントロールプレーンノードを検証します。
kubectl get nodes -l edbaiplatform.io/control-plane="true"
テイントの検証
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")))}
データプレーンノードの検証
kubectl get nodes -l edbaiplatform.io/postgres="true"
テイントの検証
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 →**