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

为Kubernetes Operator 安装MongoDB控制器

注意

本教程假定您具备一定的Kubernetes知识。如果您不熟悉Kubernetes,请在开始之前查看有关Kubernetes对象和自定义资源的Kubernetes文档。 Kubernetes Operator 将Ops Manager和MongoDB部署表示为自定义资源。您可以使用 kubectl 创建和管理它们,就像管理任何其他Kubernetes对象一样。要学习;了解这些自定义资源如何相互关联,请参阅Kubernetes Operator 架构的MongoDB控制器概述。

在安装 Kubernetes 操作符之前,请完成以下先决条件:

1

如果您需要Kubernetes解决方案,请参阅Kubernetes文档,了解如何选择正确的解决方案。查看支持的硬件架构。

2
git clone https://github.com/mongodb/mongodb-kubernetes.git
cd mongodb-kubernetes
git checkout 1.13.0

注意

您可以使用 Helm 安装Kubernetes Operator。要学习;了解如何安装 Helm,请参阅 GitHub 上的文档。

3

默认下, Kubernetes Operator 使用 mongodb命名空间。为了简化安装,请考虑使用以下 kubectl 命令创建一个标记为 mongodb 的命名空间:

kubectl create namespace mongodb

如果您不想使用mongodb命名空间,则可以为命名空间添加任何您喜欢的标签:

kubectl create namespace <namespaceName>
4

如果不使用 Kubernetes Operator 部署 Ops Manager 资源,则必须在 Kubernetes 集群外部运行 Ops Manager。 如果要使用 Kubernetes 操作符 在 Kubernetes 中部署 Ops Manager 资源,请跳过此先决条件。

重要

您的 Ops Manager 安装必须运行活动的NTP服务。 如果 Ops Manager 主机的时钟不同步,则该主机将无法与 Kubernetes 操作符 通信。

要学习;了解如何检查Ops Manager托管的 NTP 服务,请参阅 RHEL 文档。

查看以下规划主题。要了解更多信息,请参阅 规划 Kubernetes 操作符 安装。

安装过程因您想要配置环境的方式而异:

注意

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

默认下, Kubernetes Operator 会将Kubernetes集群中的所有资源部署到命名空间mongodb。您可以通过编辑 mongodb-kubernetes.yaml 中 metadata.namespace 的所有值,将Kubernetes Operator 资源部署到不同的命名空间。您还必须更新同一文件中每个 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
---
...
2

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

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

运行以下 kubectl 命令,将所选版本的 Kubernetes 操作符 部署到 Kubernetes 集群:

kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.13.0/public/mongodb-kubernetes.yaml

开始之前,请确保在将Kubernetes Operator部署到OpenShift时将 MANAGED_SECURITY_CONTEXT 标志设立为 true。该值在values-openshift.yaml文件中预定义。

安装过程因您想要配置环境的方式而异:

注意

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

默认下, Kubernetes Operator 会将Kubernetes集群中的所有资源部署到命名空间mongodb。您可以通过编辑 mongodb-kubernetes-openshift.yaml 中 metadata.namespace 的所有值,将Kubernetes Operator 资源部署到不同的命名空间。您还必须更新同一文件中每个 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

调用以下 git 命令:

git clone https://github.com/mongodb/mongodb-kubernetes.git
cd mongodb-kubernetes
git checkout 1.13.0
2

例如,如果您将存储库克隆到主目录中,请运行:

cd ~/mongodb-kubernetes
3

调用以下 oc 命令:

oc apply -f crds.yaml
5
---
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>

要了解更多信息,请参阅Helm 安装设置中的registry.imagePullSecrets设置。

6

调用以下 oc 命令:

oc apply -f mongodb-kubernetes-openshift.yaml

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

kubectl 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 后,您可以: