次の手順では、Kubernetes Operator を最新バージョンにアップグレードする方法の概要を説明します。 このアップグレード プロセスは、Kubernetes Operator のインストール プロセスと並行して行われます。
Kubernetesで実行されているKubernetes Operator 用のMongoDBコントロールのアップグレード
注意
全体で同じ名前空間を使用する
デフォルトでは、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 truncatedKubernetes Operator YAML をアップグレードする前に、カスタマイズします。
重大な変更を避けるため、既存の配置の設定と同じ設定を選択していることを確認する必要があります。 任意の Kubernetes Operator インストール設定の詳細については、「 Operator Helm のインストール設定 」を参照してください。
Kubernetes用のMongoDB Helm Charts を使用します。
MongoDB Helm Charts for Kubernetesの最新バージョンに更新します。
現在の Helm テンプレートのバージョンを確認するには、次のコマンドを実行します。
helm search repo mongodb/mongodb-kubernetes現在インストールされているバージョンが最新リリースでない場合は、次のコマンドを実行して Helm リポジトリを更新します。
helm repo update mongodbHelm リポジトリがローカルにインストールされていない場合は、次のコマンドを実行してインストールできます。
helm repo add mongodb https://mongodb.github.io/helm-chartsアップグレードする前に、 Helm Chart をカスタマイズ してください。
重大な変更を避けるため、既存の配置の設定と同じ設定を選択していることを確認する必要があります。 任意の Kubernetes Operator インストール設定の詳細については、「 Operator Helm のインストール設定 」を参照してください。
Kubernetes Operator をアップグレードします。
次のhelmコマンドを実行して、Kubernetes Operator を Kubernetes クラスター内のデフォルトの名前空間に配置します。
helm upgrade mongodb-kubernetes-operator mongodb/mongodb-kubernetes次のように、 --namespaceと--namespace-createフラグを渡して、Kubernetes Operator をデフォルト以外の名前空間に配置できます。
helm upgrade mongodb-kubernetes-operator mongodb/mongodb-kubernetes \--namespace mongodb \--create-namespaceOpenShiftで実行されているKubernetes Operator 用のMongoDBドライバーのアップグレード
次の手順は、環境の構成方法によって異なります。
注意
全体で同じ名前空間を使用する
デフォルトでは、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 演算子 YAML はアップグレードする前にカスタマイズしてください。
重大な変更を避けるため、既存の配置の設定と同じ設定を選択していることを確認する必要があります。 任意の Kubernetes Operator インストール設定の詳細については、「 Operator Helm のインストール設定 」を参照してください。
以下のように、 <openshift-pull-secret>をServiceAccountの定義に追加する必要があります。
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>Kubernetes Operator の新しいバージョンにアップグレードします。
<version> プレースホルダーにデータを入力し、次の OC を実行します。
oc apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.4.0/public/mongodb-kubernetes-openshift.yamlMongoDB配置のCustomResourceDefinitionsをアップグレードします。
次の OC コマンドを実行します。
<version> プレースホルダーにデータを入力し、次の oc コマンドを実行して、選択したバージョンの CRD をKubernetesクラスターに配置します。
oc apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.4.0/public/crds.yamlMongoDB Helm Charts for Kubernetesの最新バージョンに更新します。
現在の Helm テンプレートのバージョンを確認するには、次のコマンドを実行します。
helm search repo mongodb/mongodb-kubernetes現在インストールされているバージョンが最新リリースでない場合は、次のコマンドを実行して Helm リポジトリを更新します。
helm repo update mongodbHelm リポジトリがローカルにインストールされていない場合は、次のコマンドを実行してインストールできます。
helm repo add mongodb https://mongodb.github.io/helm-chartsアップグレードする前に、 Helm Chart をカスタマイズ してください。
重大な変更を避けるため、既存の配置の設定と同じ設定を選択していることを確認する必要があります。 任意の Kubernetes Operator インストール設定の詳細については、「 Operator Helm のインストール設定 」を参照してください。
Kubernetes Operator をアップグレードします。
次のhelmコマンドを実行して、Kubernetes Operator を Kubernetes クラスター内のデフォルトの名前空間に配置します。
helm upgrade mongodb-kubernetes-operator mongodb/mongodb-kubernetes次のように、 --namespaceと--namespace-createフラグを渡して、Kubernetes Operator をデフォルト以外の名前空間に配置できます。
helm upgrade mongodb-kubernetes-operator mongodb/mongodb-kubernetes \--namespace mongodb \--create-namespaceKubernetes Operator のトラブルシューティングについては、「 Kubernetes Operator からのログの確認 」やその他のトラブルシューティング トピックを参照してください。
重要
Kubernetes Operator または名前空間を削除する必要がある場合は、まず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 リソースを削除する必要があります。
次のステップ
MongoDB Controls for Kubernetes Operator をアップグレードすると、次のことが可能になります。