Docs 菜单
Docs 主页
/ /
/ / / / /

升级Kubernetes Operator 的MongoDB控制器

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

注意

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

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

---
apiVersion: v1
kind: ServiceAccount
metadata:
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.5.0/public/crds.yaml
2

运行以下命令,获取当前部署的Kubernetes Operator 的配置详细信息:

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

如有需要,请在 GitHub存储库中查找所选Kubernetes Operator 版本的相应示例部署YAML文件。然后,为避免破坏性更改,请自定义示例YAML文件以匹配当前部署的Kubernetes Operator 的配置详细信息。

4

通过运行以下命令来部署自定义的Kubernetes Operator:

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

如果不需要修改提供的部署YAML,可以直接应用,如下所示:

kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-enterprise-kubernetes/1.5.0/mongodb-enterprise-multi-cluster.yaml
kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-enterprise-kubernetes/1.5.0/public/mongodb-kubernetes.yaml

使用适用于Kubernetes的MongoDB Helm Charts。

1

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

helm search repo mongodb/mongodb-kubernetes

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

helm repo update mongodb

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

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

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

3

运行以下 kubectl 命令,将 CRD部署到Kubernetes集群:

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

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

helm upgrade --install mongodb-kubernetes-operator mongodb/mongodb-kubernetes

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

helm upgrade --install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \
--namespace mongodb \
--create-namespace

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

注意

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

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

---
apiVersion: v1
kind: ServiceAccount
metadata:
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.5.0/public/crds.yaml
3

运行以下 oc 命令,将所选版本的Kubernetes Operator部署到Kubernetes集群:

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

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

helm search repo mongodb/mongodb-kubernetes

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

helm repo update mongodb

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

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

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

3

运行以下 kubectl 命令,将 CRD部署到Kubernetes集群:

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

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

helm upgrade --install mongodb-kubernetes-operator mongodb/mongodb-kubernetes

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

helm upgrade --install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \
--namespace mongodb \
--create-namespace

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

重要

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

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

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 操作符进行故障排除,请参阅查看 Kubernetes 操作符的日志和其他故障排除主题。

重要

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

升级MongoDB Controllers for Kubernetes Operator 后,您可以:

在此页面上