对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

升级 MongoDB Enterprise Kubernetes Operator

以下过程概述了如何将Kubernetes Operator升级到最新版本。 此升级进程与Kubernetes Operator 安装进程并行。

注意

Kubernetes Operator 的升级进程要求您通过每个次要版本以增量方式升级到目标版本。示例,如果您要从版本 1.2.x 升级到 1.4.x,您必须先升级到 1.3.x然后再继续 1.4.x。

注意

自始至终使用相同的命名空间

默认下, Kubernetes Operator 会将Kubernetes集群中的所有资源部署到命名空间 mongodb。您可以通过编辑 mongodb-enterprise.yamlmetadata.namespace 的所有值,将Kubernetes Operator 资源部署到不同的命名空间:

##---
# Source: mongodb-enterprise-operator/templates/serviceaccount.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: mongodb-enterprise-operator
namespace: production
##---
# Source: mongodb-enterprise-operator/templates/operator.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-enterprise-operator
namespace: production
---
# Example truncated
---
...
1

为避免破坏性更改,应确保选择与现有部署中的设置相同的设置。 要学习;了解可选的 Kubernetes Operator 安装设置,请参阅Operator Helm 安装设置。

2

填充<version>占位符并运行以下kubectl命令,将所选版本的Kubernetes Operator部署到Kubernetes集群:

kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-enterprise-kubernetes/<version>/mongodb-enterprise.yaml
3

填充<version>占位符并运行以下kubectl命令,将所选的 CRD 版本部署到Kubernetes集群:

kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-enterprise-kubernetes/<version>/crds.yaml

使用适用于Kubernetes的MongoDB Helm Charts。

1

运行以下命令,检查当前 Helm 模板的版本:

helm search repo mongodb/enterprise-operator

如果当前安装的版本不是最新版本,请运行以下命令来更新Helm 存储库:

helm repo update mongodb

如果本地没有安装 Helm 存储库,可以通过运行以下命令来安装:

helm repo add mongodb https://mongodb.github.io/helm-charts
2

为避免破坏性更改,应确保选择与现有部署中的设置相同的设置。 要学习;了解可选的 Kubernetes Operator 安装设置,请参阅Operator Helm 安装设置。

3

填充<version>占位符并运行以下kubectl命令,将 CRD部署到Kubernetes集群:

kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-enterprise-kubernetes/<version>/crds.yaml
4

运行以下helm命令,将Kubernetes Operator部署到Kubernetes集群中的默认命名空间:

helm install enterprise-operator mongodb/enterprise-operator

您可以传递--namespace--namespace-create标志,将Kubernetes Operator部署到非默认命名空间,如下所示:

helm install enterprise-operator mongodb/enterprise-operator \
--namespace mongodb \
--create-namespace

以下步骤取决于环境的配置方式:

注意

自始至终使用相同的命名空间

默认下, Kubernetes Operator 会将Kubernetes集群中的所有资源部署到命名空间 mongodb。您可以通过编辑 mongodb-enterprise-openshift.yamlmetadata.namespace 的所有值,将Kubernetes Operator 资源部署到不同的命名空间:

##---
# Source: mongodb-enterprise-operator/templates/serviceaccount.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: enterprise-operator
namespace: production
##---
# Source: mongodb-enterprise-operator/templates/operator.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: enterprise-operator
namespace: production
---
# Example truncated
---
...
1

为避免破坏性更改,应确保选择与现有部署中的设置相同的设置。 要学习;了解可选的 Kubernetes Operator 安装设置,请参阅Operator Helm 安装设置。

您必须将<openshift-pull-secret>添加到ServiceAccount定义中:

---
# Source: mongodb-enterprise-operator/templates/serviceaccount.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: enterprise-operator
namespace: mongodb
imagePullSecrets:
- name: <openshift-pull-secret>
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: mongodb-enterprise-appdb
namespace: mongodb
imagePullSecrets:
- name: <openshift-pull-secret>
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: mongodb-enterprise-database-pods
namespace: mongodb
imagePullSecrets:
- name: <openshift-pull-secret>
2

填充 <version> 占位符并运行以下 oc

oc apply -f https://raw.githubusercontent.com/mongodb/mongodb-enterprise-kubernetes/<version>/mongodb-enterprise-openshift.yaml
3

运行以下oc命令:

填充 <version> 占位符并运行以下 oc 命令,将所选的 CRD 版本部署到Kubernetes集群:

oc apply -f https://raw.githubusercontent.com/mongodb/mongodb-enterprise-kubernetes/<version>/crds.yaml
1

运行以下命令,检查当前 Helm 模板的版本:

helm search repo mongodb/enterprise-operator

如果当前安装的版本不是最新版本,请运行以下命令来更新Helm 存储库:

helm repo update mongodb

如果本地没有安装 Helm 存储库,可以通过运行以下命令来安装:

helm repo add mongodb https://mongodb.github.io/helm-charts
2

为避免破坏性更改,应确保选择与现有部署中的设置相同的设置。 要学习;了解可选的 Kubernetes Operator 安装设置,请参阅Operator Helm 安装设置。

3

填充<version>占位符并运行以下kubectl命令,将 CRD部署到Kubernetes集群:

kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-enterprise-kubernetes/<version>/crds.yaml
4

运行以下helm命令,将Kubernetes Operator部署到Kubernetes集群中的默认命名空间:

helm install enterprise-operator mongodb/enterprise-operator

您可以传递--namespace--namespace-create标志,将Kubernetes Operator部署到非默认命名空间,如下所示:

helm install enterprise-operator mongodb/enterprise-operator \
--namespace mongodb \
--create-namespace

要对 Kubernetes 操作符进行故障排除,请参阅查看 Kubernetes 操作符的日志和其他故障排除主题。

重要

如果需要删除 Kubernetes 操作符 或命名空间,则必须首先删除 MongoDB 资源。

要验证 Kubernetes 操作符是否正确安装,请运行以下命令并验证输出:

kubectl describe deployments mongodb-enterprise-operator -n <metadata.namespace>
oc describe deployments mongodb-enterprise-operator -n <metadata.namespace>

默认情况下,部署存在于mongodb命名空间中。 如果出现以下错误消息,请确保使用正确的命名空间:

Error from server (NotFound): deployments.apps "mongodb-enterprise-operator" not found

要对 Kubernetes 操作符进行故障排除,请参阅查看 Kubernetes 操作符的日志和其他故障排除主题。

重要

如果需要删除 Kubernetes 操作符 或命名空间,则必须首先删除 MongoDB 资源。

升级MongoDB Enterprise Kubernetes Operator 后,您可以: