注意
このチュートリアルでは、 Kubernetesに関するある程度の知識を前提としています。 Kubernetesに詳しくない場合は、開始する前にKubernetesオブジェクトとカスタム リソースに関するKubernetes のドキュメントを確認してください。 Kubernetes演算子は、Ops Manager とMongoDB の配置をカスタムkubectl リソースとして表します。これらは、他のKubernetesオブジェクトと同じ方法で作成、管理します。これらのカスタム リソースが相互にどのように関連するかについては、「 Kubernetes演算子アーキテクチャ用のMongoDBコントロールの概要 」を参照してください。
前提条件
Kubernetes 演算子 をインストールする前に、次の前提条件を満たしてください。
使用可能な Kubernetes ソリューションを用意し、ハードウェア アーキテクチャのサポートを確認します。
Kubernetesソリューションが必要な場合は、 適切なソリューションの選択 に関するKubernetes のドキュメントを参照してください。サポートされているハードウェアアーキテクチャを確認します。
Kubernetes Operator 用のMongoDBリポジトリリポジトリをクローンし、現在のリリースのタグを確認します。
git clone https://github.com/mongodb/mongodb-kubernetes.git cd mongodb-kubernetes git checkout 1.10.0
注意
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 のインストールの計画を参照してください。
単一の Kubernetes クラスターにインストールするか、複数の Kubernetes クラスターにインストールするかを決定します。参照: シングル クラスター またはマルチ クラスター インストール モードの選択。
Confirm that your versions of Kubernetes, OpenShift, MongoDB, and Ops Manager are compatible. See MongoDB Controllers for Kubernetes Operator Compatibility.
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: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-operator namespace: production apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: mongodb-kubernetes-operator namespace: production roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: mongodb-kubernetes-operator subjects: - kind: ServiceAccount 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 インストール設定 」を参照してください。
注意
To enable the Public Preview of static containers, which improve and simplify security, see Static Containers (Public Preview). We don't recommend using this feature in production while it's in Public Preview. To learn more, see Preview Features.
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-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 では、デフォルト(最新)のビルドを使用することを推奨しています。
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-kubernetes
Kubernetes 演算子をデフォルト以外の名前空間に配置するには、--namespaceフラグと--create-namespaceフラグを渡します。
helm upgrade --install mongodb-kubernetes-operator \ oci://quay.io/mongodb/helm-charts/mongodb-kubernetes \ --namespace mongodb \ --create-namespace
OpenShift を使用したインストール
開始する前に、 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: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-operator namespace: production apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: mongodb-kubernetes-operator namespace: production roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: mongodb-kubernetes-operator subjects: - kind: ServiceAccount 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 cd mongodb-kubernetes git checkout 1.10.0
Kubernetes Operatorリポジトリ用のMongoDBコントロール をクローンしたディレクトリに移動します。
たとえば、ホームページ ディレクトリのリポジトリをクローンした場合は、次を実行します。
cd ~/mongodb-kubernetes
MongoDB配置用の CustomResourceDefinitions をインストールします。
次の OC コマンドを呼び出します。
oc apply -f crds.yaml
任意: Kubernetes 演算子 YAML をインストールする前にカスタマイズします。
Kubernetes Operator のインストール設定の詳細については、「 Operator kubernetes および oc インストール設定 」を参照してください。
注意
To enable the Public Preview of static containers, which improve and simplify security, see Static Containers (Public Preview). We don't recommend using this feature in production while it's in Public Preview. To learn more, see Preview Features.
インストール前に、 Kubernetes 演算子 YAML で ServiceAccount 定義に <openshift-pull-secret> を追加してください。
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設定を参照してください。
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 のインストール設定を参照してください。
注意
To enable the Public Preview of static containers, which improve and simplify security, see Static Containers (Public Preview). We don't recommend using this feature in production while it's in Public Preview. To learn more, see Preview Features.
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コントロール をインストールすると、次のことが可能になります。