注意
このチュートリアルでは、 Kubernetesに関するある程度の知識を前提としています。 Kubernetesに詳しくない場合は、開始する前にKubernetesオブジェクトとカスタム リソースに関するKubernetes のドキュメントを確認してください。 Kubernetes演算子は、Ops Manager とMongoDB の配置をカスタムkubectl リソースとして表します。これらは、他のKubernetesオブジェクトと同じ方法で作成、管理します。これらのカスタム リソースが相互にどのように関連するかについては、「 Kubernetes演算子アーキテクチャ用のMongoDBコントロールの概要 」を参照してください。
前提条件
Kubernetes Operator をインストールする前に、次の前提条件を完了してください。
使用可能な Kubernetes ソリューションを用意し、ハードウェア アーキテクチャのサポートを確認します。
Kubernetesソリューションが必要な場合は、 適切なソリューションの選択 に関するKubernetes のドキュメントを参照してください。サポートされているハードウェアアーキテクチャを確認します。
Kubernetes Operatorリポジトリ用のMongoDBコントロールをクローンします。
git clone https://github.com/mongodb/mongodb-kubernetes.git
注意
Helm を使用してKubernetes Operator をインストールできます。Helm をインストールする方法については、 Githubのドキュメントを参照してください。
Kubernetes配置用の名前空間を作成します。
デフォルトでは 、 Kubernetes演算子は mongodb名前空間を使用します。インストールを簡素化するために、次の kubernetes コマンドを使用して mongodb というラベルの付いた名前空間を作成することを検討してください。
kubectl create namespace mongodb
mongodb名前空間を使用しない場合は、名前空間に次のようにラベルを付けることができます。
kubectl create namespace <namespaceName>
オプション:実行中のOps Managerを用意します。
Operator MongoDB Ops Managerを使用して リソースを配置しない場合は、 クラスターの外部でKubernetesMongoDB Ops Manager Kubernetesを実行する必要があります。Operator を使用して にMongoDB Ops Manager リソースを配置する場合は、この前提条件をスキップします。KubernetesKubernetes
重要
MongoDB Ops Managerインストールでは、アクティブなNTPサービスを実行する必要があります。 MongoDB Ops Managerホストのクロックが同期しない場合、そのホストはKubernetes Operator と通信できなくなります。
MongoDB Ops Managerホストの NTP サービスを確認する方法については、 RHEL のドキュメントを参照してください。
Considerations
次の計画トピックを確認します。詳細については、「 Kubernetes Operator インストール用のMongoDBコントロールの計画 」を参照してください。
を単一のKubernetesクラスターにインストールするか、複数のKubernetesクラスターにインストールするかを決定します。 「 Kubernetes Operator インストール モードの選択:単一またはマルチ Kubernetes クラスター 」を参照してください。
Kubernetes、 OpenShift、 MongoDB 、および Ops Manager のバージョンが互換性があることを確認します。 「 Kubernetes Operator 互換性のあるMongoDBドライバー 」を参照してください。
Kubernetes Operator 配置のスコープを設定します。これにより、 Kubernetes Operator が監視する名前空間が決定されます。 「 Kubernetes Operator 配置用のMongoDBドライバーのスコープの設定 」を参照してください。
ストレージ、永続性、CPU とメモリの限界の本番環境での推奨事項を適用します。ベストプラクティス を参照してください。
Kubernetes を使用したインストール
インストール手順は、環境の構成方法によって異なります。
注意
全体で同じ名前空間を使用する
デフォルトでは、Kubernetes Operator はKubernetesクラスター内のすべてのリソースを名前空間 mongodb に配置します。mongodb-kubernetes.yaml で metadata.namespace のすべての値を編集することで、 Kubernetes Operator リソースを別の名前空間に配置できます。
apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-operator namespace: production apiVersion: apps/v1 kind: Deployment metadata: name: mongodb-kubernetes-operator namespace: production # Example truncated ...
オプション: Kubernetes 演算子 YAML をインストールする前にカスタマイズします。
Kubernetes Operator のインストール設定の詳細については、「 Operator kubernetes および oc インストール設定 」を参照してください。
注意
静的コンテナのパブリック プレビューを有効にしてセキュリティを向上および簡素化するには、静的コンテナ(パブリック プレビュー)を参照してください。この機能は、パブリック プレビュー段階で本番環境で使用することは推奨しません。詳しくは、「 プレビュー機能 」を参照してください。
Kubernetes用のMongoDB Helm Charts を使用します。
Kubernetes用のMongoDB Helm Charts を追加します。
Kubernetes Operator Helm Chart は、次のコマンドを実行することでローカルに追加できます。
helm repo add mongodb https://mongodb.github.io/helm-charts
配置する前に Helm Chart をカスタマイズします。
任意の Kubernetes Operator インストール設定の詳細については、「 Operator Helm のインストール設定 」を参照してください。
Kubernetes 演算子 を配置します。
次のhelmコマンドを実行して、Kubernetes Operator を Kubernetes クラスター内のデフォルトの名前空間に配置します。
helm upgrade --install mongodb-kubernetes-operator mongodb/mongodb-kubernetes
次のように、 --namespaceと--create-namespaceフラグを渡して、Kubernetes Operator をデフォルト以外の名前空間に配置できます。
helm upgrade --install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --namespace mongodb \ --create-namespace
Helm で特定の日次ビルドをインストール
MongoDB は毎日 Kubernetes Operator イメージを再ビルドして、最新のセキュリティと OS のアップデートを統合します。
デフォルトでは、 helmは指定したバージョンの Kubernetes Operator の最新ビルドをインストールします。
以前のビルドをインストールするには、 --set build=<build-id>を使用してパラメーターとしてビルド ID を指定します。 ビルド ID は常に-b<YYYYMMDD>T000000Zの形式で、 <YYYYMMDD>は使用するビルドが作成された日付です。
例
以下の例では、最新のイメージを使用して Kubernetes Operator をインストールする方法を示しています。
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes
以下の例では、2021 年 2 月 5 日の午前 0 時に作成されたイメージで Kubernetes Operator をインストールする方法を示しています。
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --set build=-b20210205T000000Z
注意
MongoDB では、デフォルト(最新)のビルドを使用することを推奨しています。
OpenShift を使用したインストール
開始する前に、 Kubernetes Operator をOpenShiftに配置するときに、MANAGED_SECURITY_CONTEXT フラグが true に設定されていることを確認してください。この値は、values-openshift.YAMLファイルで事前定義されています。
インストール手順は、環境の構成方法によって異なります。
注意
全体で同じ名前空間を使用する
デフォルトでは、Kubernetes Operator はKubernetesクラスター内のすべてのリソースを名前空間 mongodb に配置します。mongodb-kubernetes-openshift.yaml で metadata.namespace のすべての値を編集することで、 Kubernetes Operator リソースを別の名前空間に配置できます。
apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-operator namespace: production apiVersion: apps/v1 kind: Deployment metadata: name: mongodb-kubernetes-operator namespace: production # Example truncated ...
Kubernetes Operatorリポジトリ用のMongoDBコントロールをクローンします。
次のgitコマンドを呼び出します。
git clone https://github.com/mongodb/mongodb-kubernetes.git
Kubernetes Operatorリポジトリ用のMongoDBコントロール をクローンしたディレクトリに移動します。
たとえば、ホームページ ディレクトリのリポジトリをクローンした場合は、次を実行します。
cd ~/mongodb-kubernetes
MongoDB配置用の CustomResourceDefinitions をインストールします。
次の OC コマンドを呼び出します。
oc apply -f crds.yaml
オプション: Kubernetes 演算子 YAML をインストールする前にカスタマイズします。
Kubernetes Operator のインストール設定の詳細については、「 Operator kubernetes および oc インストール設定 」を参照してください。
注意
静的コンテナのパブリック プレビューを有効にしてセキュリティを向上および簡素化するには、静的コンテナ(パブリック プレビュー)を参照してください。この機能は、パブリック プレビュー段階で本番環境で使用することは推奨しません。詳しくは、「 プレビュー機能 」を参照してください。
<openshift-pull-secret>ServiceAccountインストール前に、Kubernetes Operator YAML で 定義に追加してください。
apiVersion: v1 kind: ServiceAccount metadata: name: enterprise-operator namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret> apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-appdb namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret> apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-database-pods namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret>
詳しくは、 Helm インストール設定のregistry.imagePullSecrets設定を参照してください。
次の OC コマンドを使用してKubernetes Operator をインストールします。
次の OC コマンドを呼び出します。
oc apply -f mongodb-kubernetes-openshift.yaml
Kubernetes用のMongoDB Helm Charts を使用します。
Helm 3 を使用してKubernetes Operator をインストールできます。
MongoDB Helm Charts for Kubernetesリポジトリを Helm に追加します。
helm repo add mongodb https://mongodb.github.io/helm-charts
を使用してKubernetes Operatorhelm をインストールします。
Kubernetes用のMongoDB Helm Charts のインストール:
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --values https://raw.githubusercontent.com/mongodb/helm-charts/main/charts/mongodb-kubernetes/values-openshift.yaml
値 -openshift.YAML 設定を使用します。任意のKubernetes Operator インストール設定の詳細については、Operator Helm のインストール設定を参照してください。
注意
静的コンテナのパブリック プレビューを有効にしてセキュリティを向上および簡素化するには、静的コンテナ(パブリック プレビュー)を参照してください。この機能は、パブリック プレビュー段階で本番環境で使用することは推奨しません。詳しくは、「 プレビュー機能 」を参照してください。
Helm で特定の日次ビルドをインストール
MongoDB は毎日 Kubernetes Operator イメージを再ビルドして、最新のセキュリティと OS のアップデートを統合します。
デフォルトでは、 helmは指定したバージョンの Kubernetes Operator の最新ビルドをインストールします。
以前のビルドをインストールするには、 --set build=<build-id>を使用してパラメーターとしてビルド ID を指定します。 ビルド ID は常に-b<YYYYMMDD>T000000Zの形式で、 <YYYYMMDD>は使用するビルドが作成された日付です。
例
以下の例では、最新のイメージを使用して Kubernetes Operator をインストールする方法を示しています。
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes
以下の例では、2021 年 2 月 5 日の午前 0 時に作成されたイメージで Kubernetes Operator をインストールする方法を示しています。
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --set build=-b20210205T000000Z
注意
MongoDB では、デフォルト(最新)のビルドを使用することを推奨しています。
インストールを確認します
Kubernetes Operator が正しくインストールされたことを確認するには、次のコマンドを実行し、出力を確認します。
kubectl describe deployments mongodb-kubernetes-operator -n <metadata.namespace>
oc describe deployments mongodb-kubernetes-operator -n <metadata.namespace>
デフォルトでは、配置はmongodb名前空間に存在します。 次のエラー メッセージが表示される場合は、正しい名前空間を使用していることを確認してください。
Error from server (NotFound): deployments.apps "mongodb-kubernetes-operator" not found
Kubernetes Operator のトラブルシューティングについては、「 Kubernetes Operator からのログの確認 」やその他のトラブルシューティング トピックを参照してください。
重要
Kubernetes Operator または名前空間を削除する必要がある場合は、まずMongoDB リソースを削除する必要があります。
次のステップ
Kubernetes Operator 用のMongoDBコントロール をインストールすると、次のことが可能になります。