注意
このチュートリアルでは、Kubernetes に関する知識があることを前提としています。Kubernetes に詳しくない場合は、開始する前に、Kubernetes のドキュメントで Kubernetes オブジェクト と カスタム リソース を検討してください。Kubernetes Operator は、MongoDB Ops Manager と MongoDB の配置をカスタム リソースとして表します。これらは、他の Kubernetes オブジェクトと同様に kubectl で作成および管理されます。これらのカスタム リソースが互いにどのように関連しているかを知るには、「Kubernetes 演算子アーキテクチャの概要の MongoDB コントローラー」を参照してください。
前提条件
Kubernetes 演算子 をインストールする前に、次の前提条件を満たしてください。
使用可能な Kubernetes ソリューションを用意し、ハードウェア アーキテクチャのサポートを確認します。
Kubernetesソリューションが必要な場合は、 適切なソリューションの選択 に関するKubernetes のドキュメントを参照してください。サポートされているハードウェアアーキテクチャを確認します。
Kubernetes Operator 用のMongoDBリポジトリリポジトリをクローンし、現在のリリースのタグを確認します。
git clone https://github.com/mongodb/mongodb-kubernetes.gitcd mongodb-kubernetesgit checkout 1.15.0注意
Helm を使用してKubernetes Operator をインストールできます。Helm をインストールする方法については、 Githubのドキュメントを参照してください。
Kubernetes配置用の名前空間を作成します。
デフォルトでは 、 Kubernetes演算子は mongodb名前空間を使用します。インストールを簡素化するために、次の kubernetes コマンドを使用して mongodb というラベルの付いた名前空間を作成することを検討してください。
kubectl create namespace mongodbmongodb名前空間を使用しない場合は、名前空間に次のようにラベルを付けることができます。
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 のインストールの計画を参照してください。
単一の Kubernetes クラスターにインストールするか、複数の Kubernetes クラスターにインストールするかを決定します。参照: シングル クラスター またはマルチ クラスター インストール モードの選択。
Kubernetes、OpenShift、MongoDB、MongoDB Ops Managerのバージョンが互換性があることを確認します。Kubernetes 演算子 互換性の MongoDB コントローラーを参照してください。
Kubernetes Operator 配置のスコープを設定します。これにより、 Kubernetes Operator が監視する名前空間が決定されます。Kubernetes Operator 配置用のMongoDBドライバーのスコープの設定 を参照してください。
ストレージ、永続性、CPU およびメモリの制限に関する本番環境の推奨事項を適用します。See ベストプラクティス.
Kubernetes を使用したインストール
インストール手順は、環境の構成方法によって異なります。
注意
全体で同じ名前空間を使用する
デフォルトでは、Kubernetes 演算子はKubernetesクラスター内のすべてのリソースを名前空間 mongodbに配置します。mongodb-kubernetes.yamlのmetadata.namespaceのすべての値を編集することで、Kubernetes演算子リソースを別の名前空間に配置できます。また、同じファイル内のすべてのRoleBindingとClusterRoleBindingのsubjects[0].namespace値も更新する必要があります。この値を省略すると、バインディングはデフォルトのmongodb名前空間でServiceAccountを探しますが、見つけることができません。
apiVersion: v1kind: ServiceAccountmetadata: name: mongodb-kubernetes-operator namespace: production
apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata: name: mongodb-kubernetes-operator namespace: productionroleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: mongodb-kubernetes-operatorsubjects: - kind: ServiceAccount name: mongodb-kubernetes-operator namespace: production
apiVersion: apps/v1kind: Deploymentmetadata: name: mongodb-kubernetes-operator namespace: production
# Example truncated任意: Kubernetes 演算子 YAML をインストールする前にカスタマイズします。
Kubernetes Operator のインストール設定の詳細については、「 Operator kubernetes および oc インストール設定 」を参照してください。
注意
静的コンテナのパブリック プレビューを有効にしてセキュリティを向上および簡素化するには、静的コンテナ(パブリック プレビュー)を参照してください。この機能は、パブリック プレビュー段階で本番環境で使用することは推奨しません。詳しくは、「 プレビュー機能 」を参照してください。
Kubernetes用のMongoDB Helm Charts を使用します。
注意
Helm Chartリポジトリの廃止
MongoDB Helm Charts for KubernetesリポジトリからKubernetes演算子をインストールすることは非推奨であり、MCK2 バージョン.0 で削除される予定です。代わりに、OCI 準拠のレジストリから Helmチャートをインストールするには、「 Helm(OCI 準拠のレジストリ)の使用 」を参照してください。タブ。
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-namespaceHelm で特定の日次ビルドをインストール
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 では、デフォルト(最新)のビルドを使用することを推奨しています。
MongoDBは、Kubernetes 演算子 HelmチャートをOCI準拠のコンテナレジストリ(quay.io/mongodb/helm-charts)にも公開しています。このレジストリからインストールする場合、Helmチャートリポジトリを追加する代わりに、チャートを直接参照します。
Helmチャートを配置する前にカスタマイズします。
任意の Kubernetes Operator インストール設定の詳細については、「 Operator Helm のインストール設定 」を参照してください。
Kubernetes 演算子 を配置します。
次のhelmコマンドを実行して、Kubernetes Operator を Kubernetes クラスター内のデフォルトの名前空間に配置します。
helm upgrade --install mongodb-kubernetes-operator \ oci://quay.io/mongodb/helm-charts/mongodb-kubernetesKubernetes 演算子をデフォルト以外の名前空間に配置するには、--namespaceフラグと--create-namespaceフラグを渡します。
helm upgrade --install mongodb-kubernetes-operator \ oci://quay.io/mongodb/helm-charts/mongodb-kubernetes \ --namespace mongodb \ --create-namespaceOpenShift を使用したインストール
開始する前に、 Kubernetes Operator をOpenShiftに配置するときに、MANAGED_SECURITY_CONTEXT フラグが true に設定されていることを確認してください。この値は、values-openshift.YAMLファイルで事前定義されています。
インストール手順は、環境の構成方法によって異なります。
注意
全体で同じ名前空間を使用する
デフォルトでは、Kubernetes 演算子はKubernetesクラスター内のすべてのリソースを名前空間 mongodbに配置します。mongodb-kubernetes-openshift.yamlのmetadata.namespaceのすべての値を編集することで、Kubernetes演算子リソースを別の名前空間に配置できます。また、同じファイル内のすべてのRoleBindingとClusterRoleBindingのsubjects[0].namespace値も更新する必要があります。この値を省略すると、バインディングはデフォルトのmongodb名前空間でServiceAccountを探しますが、見つけることができません。
apiVersion: v1kind: ServiceAccountmetadata: name: mongodb-kubernetes-operator namespace: production
apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata: name: mongodb-kubernetes-operator namespace: productionroleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: mongodb-kubernetes-operatorsubjects: - kind: ServiceAccount name: mongodb-kubernetes-operator namespace: production
apiVersion: apps/v1kind: Deploymentmetadata: name: mongodb-kubernetes-operator namespace: production
# Example truncatedKubernetes Operator 用のMongoDBリポジトリリポジトリをクローンし、現在のリリースのタグを確認します。
次のgitコマンドを呼び出します。
git clone https://github.com/mongodb/mongodb-kubernetes.gitcd mongodb-kubernetesgit checkout 1.15.0Kubernetes Operatorリポジトリ用のMongoDBコントロール をクローンしたディレクトリに移動します。
たとえば、ホームページ ディレクトリのリポジトリをクローンした場合は、次を実行します。
cd ~/mongodb-kubernetesMongoDB配置用の CustomResourceDefinitions をインストールします。
次の OC コマンドを呼び出します。
oc apply -f crds.yaml任意: Kubernetes 演算子 YAML をインストールする前にカスタマイズします。
Kubernetes Operator のインストール設定の詳細については、「 Operator kubernetes および oc インストール設定 」を参照してください。
注意
静的コンテナのパブリック プレビューを有効にしてセキュリティを向上および簡素化するには、静的コンテナ(パブリック プレビュー)を参照してください。この機能は、パブリック プレビュー段階で本番環境で使用することは推奨しません。詳しくは、「 プレビュー機能 」を参照してください。
インストール前に、 Kubernetes 演算子 YAML で ServiceAccount 定義に <openshift-pull-secret> を追加してください。
apiVersion: v1kind: ServiceAccountmetadata: name: enterprise-operator
namespace: mongodb
imagePullSecrets: - name: <openshift-pull-secret>
apiVersion: v1kind: ServiceAccountmetadata: name: mongodb-kubernetes-appdb
namespace: mongodb
imagePullSecrets: - name: <openshift-pull-secret>
apiVersion: v1kind: ServiceAccountmetadata: name: mongodb-kubernetes-database-pods
namespace: mongodb
imagePullSecrets: - name: <openshift-pull-secret>詳しくは、 Helm インストール設定のregistry.imagePullSecrets設定を参照してください。
Kubernetes用のMongoDB Helm Charts を使用します。
注意
Helm Chartリポジトリの廃止
MongoDB Helm Charts for KubernetesリポジトリからKubernetes演算子をインストールすることは非推奨であり、MCK2 バージョン.0 で削除される予定です。代わりに、OCI 準拠のレジストリからquay.io/mongodb/helm-charts Helmチャートをインストールしてください( )。
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 foundKubernetes Operator のトラブルシューティングについては、「 Kubernetes Operator からのログの確認 」やその他のトラブルシューティング トピックを参照してください。
重要
Kubernetes Operator または名前空間を削除する必要がある場合は、まずMongoDB リソースを削除する必要があります。
次のステップ
Kubernetes Operator 用のMongoDBコントロール をインストールすると、次のことが可能になります。