前提条件と考慮事項
Kubernetes Operator をインストールする前に、インストールの計画を立ててください。
注意
このチュートリアルでは、Kubernetes に関するある程度の知識と、関連する Kubernetes ドキュメントにリンクすることを前提としています。 Kubernetes に詳しくない場合は、まずそのドキュメントを確認してください。
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 インストール設定 」を参照してください。
注意
静的コンテナのパブリック プレビューを有効にしてセキュリティを向上および簡素化するには、静的コンテナ(パブリック プレビュー)を参照してください。この機能は、パブリック プレビュー段階で本番環境で使用することは推奨しません。詳しくは、「 プレビュー機能 」を参照してください。
<version>プレースホルダーにデータを入力し、次のkubectlコマンドを実行して、選択したバージョンの Kubernetes Operator を Kubernetes クラスターに配置します。
kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.4.0/public/mongodb-kubernetes.yamlKubernetes用の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-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 では、デフォルト(最新)のビルドを使用することを推奨しています。
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: 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.4.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 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コントロール をインストールすると、次のことが可能になります。