OpenShift 快速入门
在此页面上
重要
本部分仅适用于单个Kubernetes集群部署。 对于多 Kubernetes集群MongoDB部署,请参阅多 Kubernetes 集群快速入门。
MongoDB Enterprise Kubernetes Operator 使用 Kubernetes API 和工具来管理 MongoDB 集群。Kubernetes Operator 与 MongoDB Cloud Manager 或 Ops Manager 协同工作。本教程演示如何使用 Kubernetes Operator 从 OpenShift 在 Cloud Manager 或 Ops Manager 中部署和连接第一个副本集。
先决条件
本教程要求:
正在运行的 Cloud Manager 或 Ops Manager 集群。
步骤
克隆 MongoDB Enterprise Kubernetes Operator存储库 。
git clone https://github.com/mongodb/mongodb-enterprise-kubernetes.git
安装 MongoDB Enterprise Kubernetes Operator
调用以下 oc 命令针对 MongoDB 部署安装 CustomResourceDefinitions:
oc apply -f crds.yaml 将
<openshift-pull-secret>
添加到 MongoDB Enterprise Kubernetes Operator YAML 文件的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> 调用以下 oc 命令安装 Kubernetes Operator:
oc apply -f mongodb-enterprise-openshift.yaml
创建凭证并将其存储为密钥。
运行以下命令:
注意
为以下参数提供公钥和私钥值。如需了解更多信息,请参阅“创建 Kubernetes Operator 的档案”。
kubectl -n mongodb \ create secret generic ops-manager-admin-key \ --from-literal="publicKey=<publicKey>" \ --from-literal="privateKey=<privateKey>"
调用以下命令来创建 ConfigMap。
cat <<EOF | kubectl apply -f - apiVersion: v1 kind: ConfigMap metadata: name: my-project namespace: mongodb data: projectName: myProjectName # this is an optional parameter; when omitted, the Operator creates a project with the resource name orgId: 5b890e0feacf0b76ff3e7183 # this is a required parameter baseUrl: https://ops.example.com:8443 EOF
键 | 类型 | 说明 | 例子 |
---|---|---|---|
metadata.name | 字符串 | Kubernetes 对象的名称。 资源名称必须少于或等于 44 个字符。 此名称必须遵循 RFC1123 命名规则,仅包含小写字母数字字符或 要学习;了解更多信息,请参阅有关 名称的 Kubernetes文档。 | my-project |
metadata.namespace | 字符串 | mongodb | |
data.projectName | 字符串 | 如果 项目不存在,KubernetesMongoDB Ops Manager Operator 会创建该项目。如果省略 要使用 Cloud Manager 或 Ops Manager 组织中的现有项目,请找到 | myProjectName |
data.orgId | 字符串 | 必需。 24 字符的十六进制string ,用于唯一标识您的Cloud Manager或MongoDB Ops Manager组织。 您可以使用 Kubernetes Operator 通过 Cloud Manager 和 Ops Manager 6.0.x 版或更高版本来部署 MongoDB 资源。 可以使用 Atlas Operator 将 MongoDB 资源部署到 Atlas。 指定现有组织:
必须具备组织项目创建者角色才能在现有 Cloud Manager 或 Ops Manager 组织中创建新项目。 如果您提供空字符串作为 | 5b890e0feacf0b76ff3e7183 |
data.baseUrl | 字符串 | Ops Manager 应用程序的 URL,包括 FQDN 和端口号。 重要提示: 如果您使用MongoDB Ops Manager KubernetesOperator部署MongoDB Ops Manager MongoDBKubernetes,并且 将管理部署在其所部署到的 集群 外部 的 数据库资源,则必须设立 如果使用 Cloud Manager,请将 | https://ops.example.com:8443 |
部署 副本集 资源。
复制并保存以下 YAML 文件:
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: demo-mongodb-cluster-1 namespace: mongodb spec: members: 3 version: 4.4.5-ent type: ReplicaSet security: authentication: enabled: true modes: ["SCRAM"] cloudManager: configMapRef: name: my-project credentials: organization-secret persistent: true podSpec: podTemplate: spec: containers: - name: mongodb-enterprise-database resources: limits: cpu: 2 memory: 1.5G requests: cpu: 1 memory: 1G persistence: single: storage: 10Gi 运行以下命令:
kubectl apply -f <replica-set-conf>.yaml
使用数据库用户密码创建密钥
您可以选择使用明文密码或 Base64 编码密码。明文密码使用 stringData.password
,Base64 编码密码使用 data.password
。
注意
提供以下参数的值。要了解更多信息,请参阅参数说明。
对于明文密码,创建并保存以下 YAML 文件:
apiVersion: v1 kind: Secret metadata: name: mms-user-1-password # corresponds to user.spec.passwordSecretKeyRef.name type: Opaque stringData: password: <my-plain-text-password> # corresponds to user.spec.passwordSecretKeyRef.key
对于 Base64 编码密码,创建并保存以下 YAML 文件:
apiVersion: v1 kind: Secret metadata: name: mms-user-1-password # corresponds to user.spec.passwordSecretKeyRef.name type: Opaque data: password: <base-64-encoded-password> # corresponds to user.spec.passwordSecretKeyRef.key
创建数据库用户。
复制并保存以下 MongoDB 用户资源规范 文件:
apiVersion: mongodb.com/v1 kind: MongoDBUser metadata: name: mms-scram-user-1 spec: passwordSecretKeyRef: name: mms-user-1-password # Match to metadata.name of the User Secret key: password username: "mms-scram-user-1" db: "admin" # mongodbResourceRef: name: "demo-mongodb-cluster-1" # Match to MongoDB resource using authenticaiton roles: - db: "admin" name: "clusterAdmin" - db: "admin" name: "userAdminAnyDatabase" - db: "admin" name: "readWrite" - db: "admin" name: "userAdminAnyDatabase" 运行以下命令:
kubectl apply -f <database-user-conf>.yaml
连接到 副本集 。
在 Cloud Manager 应用程序中执行以下步骤:
单击左侧导航栏中的 Deployment。
单击要连接到的部署的 。
单击 Connect to this instance(连接)。
在终端中运行连接命令,以连接到部署。