FoundationDBをインストール
FoundationDBは Apache 2.0 ライセンスの下でリリースされたオープンソースの分散データベースで、構造化データストレージに強い整合性を提供します。Dorisのコンピュート・ストレージ分離モデルでは、FoundationDBがメタデータストアとして使用され、meta-serviceコンポーネントがFoundationDB内のメタデータを管理します。Kubernetes上でコンピュート・ストレージ分離クラスターをデプロイする際は、事前にFoundationDBをデプロイする必要があります。2つのデプロイメントオプションが推奨されます:
- 仮想マシン(物理マシンを含む)上に直接FoundationDBをデプロイする。
- fdb-kubernetes-operatorを使用してKubernetes上にFoundationDBをデプロイする。
VMデプロイメントについては、Dorisのコンピュート・ストレージ分離ドキュメントのPre-deploymentセクションを参照してFoundationDBクラスターを設定してください。デプロイメント前に、DorisのKubernetesクラスターからFoundationDBにアクセスできることを確認してください。つまり、KubernetesノードはFoundationDBがデプロイされるマシンと同じサブネット上にある必要があります。
Kubernetes上でFoundationDBをデプロイ
Kubernetes上でのFoundationDBクラスターのデプロイメントには、4つの主要なステップがあります:
- FoundationDBCluster CRDsを作成する。
- fdb-kubernetes-operatorサービスをデプロイする。
- FoundationDBクラスターをデプロイする。
- FoundationDBステータスを確認する。
ステップ1:FoundationDBCluster CRDsを作成
kubectl create -f https://raw.githubusercontent.com/FoundationDB/fdb-kubernetes-operator/main/config/crd/bases/apps.foundationdb.org_foundationdbclusters.yaml
kubectl create -f https://raw.githubusercontent.com/FoundationDB/fdb-kubernetes-operator/main/config/crd/bases/apps.foundationdb.org_foundationdbbackups.yaml
kubectl create -f https://raw.githubusercontent.com/FoundationDB/fdb-kubernetes-operator/main/config/crd/bases/apps.foundationdb.org_foundationdbrestores.yaml
ステップ 2: fdb-kubernetes-operator サービスをデプロイする
fdb-kubernetes-operator リポジトリは、IPモードでFoundationDBクラスターを設定するためのデプロイメントサンプルを提供しています。Doris-operatorリポジトリはFQDNモードでのFoundationDBクラスターデプロイメント例を提供しており、必要に応じてダウンロードできます。
-
デプロイメントサンプルをダウンロードする:
-
fdb-kubernetes-operator公式リポジトリから: fdb-kubernetes-operatorはデフォルトでFoundationDBをIPモードでデプロイします。YAML形式のデフォルトデプロイメント設定をダウンロードできます。FQDNモードを使用してデプロイしたい場合は、カスタマイズのために公式ドキュメントのDNSセクションを参照してください。
wget -O fdb-operator.yaml https://raw.githubusercontent.com/foundationdb/fdb-kubernetes-operator/main/config/samples/deployment.yaml
-
-
doris-operatorリポジトリから:
doris-operatorリポジトリは、fdb-kubernetes-operatorバージョン1.46.0に基づくデプロイメント例を提供します。これらの例は、FoundationDBクラスターをデプロイするために直接使用できます。
wget https://raw.githubusercontent.com/apache/doris-operator/master/config/operator/fdb-operator.yaml
-
fdb-kubernetes-operator サービスをデプロイします:
fdb-kubernetes-operator デプロイメント YAML をカスタマイズした後、以下のコマンドを使用して
fdb-kubernetes-operatorをデプロイします:kubectl apply -f fdb-operator.yaml
期待される結果:
serviceaccount/fdb-kubernetes-operator-controller-manager created
clusterrole.rbac.authorization.k8s.io/fdb-kubernetes-operator-manager-clusterrole created
clusterrole.rbac.authorization.k8s.io/fdb-kubernetes-operator-manager-role created
rolebinding.rbac.authorization.k8s.io/fdb-kubernetes-operator-manager-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/fdb-kubernetes-operator-manager-clusterrolebinding created
deployment.apps/fdb-kubernetes-operator-controller-manager created
ステップ3: FoundationDBクラスターをデプロイする
FoundationDBのデプロイメント例は、fdb-kubernetes-operatorリポジトリで利用できます。これらを直接ダウンロードして使用することができます。
-
FoundationDB公式ウェブサイトからIPモードデプロイメントサンプルをダウンロードします:
wget https://raw.githubusercontent.com/foundationdb/fdb-kubernetes-operator/main/config/samples/cluster.yaml -
カスタマイズされたデプロイメントの例:
-
Docker Hubにアクセス可能な環境の場合:
公式サイトが提供するUser Manualに従って最終的なデプロイメント状態をカスタマイズしてください。FQDNデプロイメントを使用する場合は、
routing.useDNSInClusterFileフィールドをtrueに設定し、以下のように設定してください:Doris Operatorの公式リポジトリでは、FQDNを使用してFoundationDBをデプロイするためのサンプルを提供しており、こちらから直接ダウンロードできます。
spec:
routing:
useDNSInClusterFile: true
-
-
プライベートネットワークの場合:
環境がDocker Hubに直接アクセスできない場合は、公式FoundationDBリポジトリから必要なイメージをダウンロードし、プライベートレジストリにプッシュしてください。
fdb-kubernetes-operatorは以下のDockerイメージに依存しています:foundationdb/fdb-kubernetes-operator、foundationdb/foundationdb-kubernetes-sidecar。FoundationDBイメージには以下が含まれます:foundationdb/fdb-kubernetes-monitor。
イメージをプライベートレジストリにプッシュした後、公式のfdb-kubernetes-operatorドキュメントに従ってイメージ設定をカスタマイズしてください。
プライベートレジストリのイメージ設定を追加する設定例:
spec:
mainContainer:
imageConfigs:
- baseImage: foundationdb/fdb-kubernetes-monitor
tag: 7.1.38
sidecarContainer:
imageConfigs:
- baseImage: foundationdb/fdb-kubernetes-monitor
tag: 7.1.38
version: 7.1.38
Doris Operatorリポジトリは、FoundationDBに対して4つのデプロイメント設定を提供しています:最小単一レプリカデプロイメント、最小2レプリカデプロイメント、本番グレード2レプリカデプロイメント、プライベートイメージレジストリを使用する本番グレード2レプリカデプロイメント。
- FoundationDBをデプロイする際は、FoundationDBClusterリソースの
.spec.versionを設定する必要があります。 - FoundationDBがfdb-kubernetes-operatorベースでデプロイされる場合、本番環境の高可用性要件を満たすために最低3台のホストが必要です。
ステップ4:FoundationDBステータスの確認
fdb-kubernetes-operator経由でFoundationDBをデプロイした後、以下のコマンドでFoundationDBクラスターのステータスを確認します:
kubectl get fdb
期待される結果は以下の通りです。AVAILABLEがtrueの場合、クラスターは利用可能です:
NAME GENERATION RECONCILED AVAILABLE FULLREPLICATION VERSION AGE
test-cluster 1 1 true true 7.1.26 13m
FoundationDBアクセス情報を含むConfigMapの取得
fdb-kubernetes-operatorを使用してFoundationDBをデプロイする場合、FoundationDBがデプロイされる名前空間に、FoundationDBのアクセス情報を含む特定のConfigMapが作成されます。このConfigMapの名前は、FoundationDBデプロイメントのリソース名に"-config"が付加されたものになります。以下のコマンドを使用してConfigMapを表示してください:
kubectl get configmap
期待される出力:
test-cluster-config 5 15d