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

使用 X.509 进行安全部署

您可以将 Kubernetes Operator 配置为使用 X. 509证书,对多 Kubernetes 集群 MongoDB 部署中的客户端应用程序进行身份验证。

要使用 X. 509证书保护多 Kubernetes 集群 MongoDB 部署,请在中央集群上运行所有操作。 Kubernetes Operator 将 X. 509配置传播到每个成员集群,并更新每个成员集群上的 Kubernetes Operator 配置。

在使用TLS加密保护多 Kubernetes集群MongoDB 部署之前,请完成以下任务:

在项目级别启用 X.509 身份验证会将所有代理配置为在与 MongoDB 部署通信时使用 X.509 客户端身份验证。

X.509 客户端身份验证需要满足以下条件之一:

  • Cloud Manager

  • MongoDB Ops Manager版本与 KubernetesOperator 版本 兼容 。

1

运行kubectl命令以创建用于存储代理的 X.509 证书的新密钥:

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \create secret tls <prefix>-<metadata.name>-agent-certs \ --cert=<agent-tls-cert> \ --key=<agent-tls-key>
2

使用 Kubernetes Operator MongoDBMultiCluster 资源规范 中的安全设置 更新 MongoDBMultiCluster 自定义资源 。生成的配置可能类似于以下示例:

apiVersion: mongodb.com/v1 kind: MongoDBMultiCluster metadata: name: multi-replica-set spec: version: 8.0.0 type: ReplicaSet persistent: false duplicateServiceObjects: true credentials: my-credentials opsManager: configMapRef: name: my-project security: tls: ca: custom-ca certsSecretPrefix: <prefix> authentication: enabled: true modes: ["X509"] agents: mode: "X509" clusterSpecList: - clusterName: ${MDB_CLUSTER_1_FULL_NAME} members: 3 - clusterName: ${MDB_CLUSTER_2_FULL_NAME} members: 2 - clusterName: ${MDB_CLUSTER_3_FULL_NAME} members: 3 The |k8s-op-short| copies the ConfigMap with the |certauth| created inthe central cluster to each member cluster, generates a concatenated|pem| secret, and distributes it to the member clusters.
3
  1. 对于成员集群,运行以下命令验证 MongoDB Pod 是否处于运行状态:

    kubectl get pods \ --context=$MDB_CLUSTER_1_FULL_NAME \ --namespace mongodb
    kubectl get pods \ --context=$MDB_CLUSTER_2_FULL_NAME \ --namespace mongodb
    kubectl get pods \ --context=$MDB_CLUSTER_3_FULL_NAME \ --namespace mongodb
  2. 在中央集群中,运行以下命令以验证MongoDBMultiCluster资源是否处于运行状态:

    kubectl --context=$MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace mongodb \ get mdbmc multi-replica-set -o yaml -w

如果已创建 X.509 证书,请使用以下过程定期续订。

1

运行此 kubectl 命令以更新存储 密钥 MongoDBMultiCluster资源证书的现有密钥:

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \--namespace=<metadata.namespace> \create secret tls <prefix>-<metadata.name>-cert \--cert=<resource-tls-cert> \--key=<resource-tls-key> \--dry-run=client \-o yaml |kubectl apply -f -
2

运行kubectl命令以更新存储MongoDBMultiCluster资源代理证书的现有密钥:

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \create secret tls <prefix>-<metadata.name>-agent-certs \ --cert=<agent-tls-cert> \ --key=<agent-tls-key> \ --dry-run=client \ -o yaml | kubectl apply -f -