AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

Kubernetes Operator 用のMongoDBコントロールのアップグレード

次の手順では、Kubernetes Operator を最新バージョンにアップグレードする方法の概要を説明します。 このアップグレード プロセスは、Kubernetes Operator のインストール プロセスと並行して行われます。

注意

全体で同じ名前空間を使用する

デフォルトでは、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
---
...
1

次の kubectl コマンドを実行して、選択したバージョンの CRD を Kubernetes クラスターに配置します。

kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.10.0/public/crds.yaml
2

現在配置されているKubernetes演算子の構成の詳細を取得するには、次のコマンドを実行します。

kubectl get deployment <operator-deployment-name> -n <namespace> -o yaml
3

必要に応じて、選択した Kubernetes 演算子のバージョンに合わせて適切な例の配置 YAML ファイルをGithub リポジトリ内で検索します。そして、重大な変更を避けるため、例の YAML ファイルをカスタマイズして、配置する Kubernetes 演算子の構成詳細に合わせます。

4

次の手順を実行して、カスタマイズされたKubernetes演算子を配置します。

kubectl apply -f <customized-operator-yaml-file>.yaml

提供された配置 YAML を変更する必要がない場合は、次のようにそれを直接適用することができます。

kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.10.0/public/mongodb-kubernetes-multi-cluster.yaml
kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.10.0/public/mongodb-kubernetes.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
---
...
1

重大な変更を避けるため、既存の配置の設定と同じ設定を選択していることを確認する必要があります。 任意の Kubernetes Operator インストール設定の詳細については、「 Operator Helm のインストール設定 」を参照してください。

以下のように、 <openshift-pull-secret>をServiceAccountの定義に追加する必要があります。

---
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>
2

次の OC コマンドを実行します。

次の oc コマンドを実行することで、選択したバージョンの CRD を Kubernetes クラスターに配置します。

oc apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.10.0/public/crds.yaml
3

次の oc コマンドを実行して、選択したバージョンのKubernetes Operator をKubernetesクラスターに配置します。

oc apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.10.0/public/mongodb-kubernetes-openshift.yaml

Kubernetes Operator のトラブルシューティングについては、「 Kubernetes Operator からのログの確認 」やその他のトラブルシューティング トピックを参照してください。

重要

Kubernetes Operator または名前空間を削除する必要がある場合は、まずMongoDB リソースを削除する必要があります。

Kubernetes Operator が正しくインストールされたことを確認するには、次のコマンドを実行し、出力を確認します。

kubectl 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 リソースを削除する必要があります。

MongoDB Controls for Kubernetes Operator をアップグレードすると、次のことが可能になります。