MongoDB Enterprise Kubernetes Operator 已弃用。新的 MongoDB Controllers for Kubernetes Operator 取代了MongoDB Enterprise Kubernetes Operator。第一个版本的 Controllers for Kubernetes Operator 在功能上等同于 v1.33 的Enterprise Kubernetes Operator。有关此更改的更多信息以及迁移到新 Operator 的指导,请参阅第一个新版本的发布说明。 MongoDB Enterprise Kubernetes Operator 的未来版本将不会再发布。根据现有的一年 支持政策,每个版本都将结束生命周期。请迁移到Kubernetes Operator 的控制器以获得持续支持。
您可以将 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 客户端身份验证需要满足以下条件之一:
为 MongoDBMultiCluster 资源启用 X.509 身份验证
1
2
更新MongoDBMultiCluster
资源以启用X509 身份验证。
使用 Kubernetes Operator MongoDBMultiCluster 资源规范 中的安全设置 更新 MongoDBMultiCluster 自定义资源 。生成的配置可能类似于以下示例:
apiVersion: mongodb.com/v1 kind: MongoDBMultiCluster metadata: name: multi-replica-set spec: version: 6.0.0-ent 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 in the central cluster to each member cluster, generates a concatenated |pem| secret, and distributes it to the member clusters.
3
验证MongoDBMultiCluster
资源是否运行。
对于成员集群,运行以下命令验证 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 在中央集群中,运行以下命令以验证
MongoDBMultiCluster
资源是否处于运行状态:kubectl --context=$MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace mongodb \ get mdbmc multi-replica-set -o yaml -w
为 MongoDBMultiCluster 资源续订 X.509 证书
如果已创建 X.509 证书,请使用以下过程定期续订。
1
为 资源更新密钥 。MongoDBMultiCluster
运行此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
为代理的 X.509 证书续订密钥。
运行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 -