以下过程概述了如何将Kubernetes Operator升级到最新版本。 此升级进程与Kubernetes Operator 安装进程并行。
为在Kubernetes中运行的Kubernetes Operator 升级MongoDB控制器
注意
自始至终使用相同的命名空间
默认,Kubernetes Kubernetes OperatorKubernetes集群中的所有资源部署到Kubernetes 命名空间mongodb
。您可以通过编辑 mongodb-kubernetes.yaml
中 metadata.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 ...
在升级之前自定义Kubernetes 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 mongodb
如果本地没有安装 Helm 存储库,可以通过运行以下命令来安装:
helm repo add mongodb https://mongodb.github.io/helm-charts
在升级 Helm Chart 之前对其进行自定义。
为避免破坏性更改,应确保选择与现有部署中的设置相同的设置。 要学习;了解可选的 Kubernetes Operator 安装设置,请参阅Operator Helm 安装设置。
升级Kubernetes Operator。
运行以下helm
命令,将Kubernetes Operator部署到Kubernetes集群中的默认命名空间:
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes
您可以传递--namespace
和--namespace-create
标志,将Kubernetes Operator部署到非默认命名空间,如下所示:
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --namespace mongodb \ --create-namespace
为在OpenShift中运行的Kubernetes Operator 升级MongoDB控制器
以下步骤取决于环境的配置方式:
注意
自始至终使用相同的命名空间
默认, Kubernetes Operator 将Kubernetes集群中的所有资源部署到 命名空间mongodb
。您可以通过编辑mongodb-kubernetes-openshift.yaml
中metadata.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 ...
在升级Kubernetes Operator YAML 之前对其进行自定义。
为避免破坏性更改,应确保选择与现有部署中的设置相同的设置。 要学习;了解可选的 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>
升级到新版本的 Kubernetes 操作符。
填充<version>
占位符并运行以下 oc :
oc apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.2.0/public/mongodb-kubernetes-openshift.yaml
升级MongoDB部署的 CustomResourceDefinitions。
运行以下 oc 命令:
填充<version>
占位符并运行以下 oc 命令将所选版本的 CRD部署到Kubernetes集群:
oc apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.2.0/public/crds.yaml
更新到最新版本的MongoDB Helm Charts for Kubernetes 。
运行以下命令,检查当前 Helm 模板的版本:
helm search repo mongodb/mongodb-kubernetes
如果当前安装的版本不是最新版本,请运行以下命令来更新Helm 存储库:
helm repo update mongodb
如果本地没有安装 Helm 存储库,可以通过运行以下命令来安装:
helm repo add mongodb https://mongodb.github.io/helm-charts
在升级 Helm Chart 之前对其进行自定义。
为避免破坏性更改,应确保选择与现有部署中的设置相同的设置。 要学习;了解可选的 Kubernetes Operator 安装设置,请参阅Operator Helm 安装设置。
升级Kubernetes Operator。
运行以下helm
命令,将Kubernetes Operator部署到Kubernetes集群中的默认命名空间:
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes
您可以传递--namespace
和--namespace-create
标志,将Kubernetes Operator部署到非默认命名空间,如下所示:
helm 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 后,您可以: