MongoDB工具 >MongoDB Kubernetes运营商 >部署MongoDB数据库资源 >访问数据库资源 > 从外部Kubernetes连接到MongoDB数据库资源
以下过程描述了如何从Kubernetes集群外部连接到Kubernetes部署的MongoDB资源。
如何连接到Kubernetes Operator从Kubernetes集群外部部署的MongoDB资源取决于资源。
此过程使用以下示例:
要从Kubernetes集群外部连接到Kubernetes运营商部署的MongoDB独立资源,请执行以下操作:
键 | 类型 | 必要性 | 描述 | 例 |
---|---|---|---|---|
spec.exposedExternally |
布尔型 | 可选的 | 将此值设置true 为允许外部服务连接到MongoDB部署。这导致Kubernetes创建
NodePort服务。 |
true |
重要
此过程说明了启用外部连接的最简单的方法。其他实用程序可用于生产。
要从Kubernetes集群外部连接到Kubernetes运营商部署的MongoDB副本集资源,请执行以下操作:
按照说明进行操作:部署副本集<deploy-replica-set>。为了简化配置,请不要使用该设置启用
TLSspec.security.tls.enabled
。
调用以下命令以检索每个主机的CSR:
该命令的输出类似于以下内容:
对部署中的每个主机重复以下命令以删除CSR:
重要
仅删除TLS CSR。不要删除X.509或任何其他 CSR。
键 | 类型 | 必要性 | 描述 | 例 |
---|---|---|---|---|
spec.security.tls |
布尔值 | 可选的 | 将此值设置 默认情况下,Kubernetes Operator要求主机使用并接受 TLS加密连接。 注意 要从Kubernetes外部连接到副本集,请将此值设置为 |
true |
spec.connectivity |
采集 | 有条件的 | 如果需要在Kubernetes之外访问数据库,请添加此参数和值。此设置允许您在Kubernetes群集内和Kubernetes群集中提供不同的DNS设置。Kubernetes Operator将水平分割DNS用于副本集成员。该功能允许在Kubernetes集群内部和外部Kubernetes进行通信。 您可以为每个主机添加多个外部映射。 水平分割要求
|
See Setting |
确认设置中的外部主机名
spec.connectivity.replicaSetHorizons
正确。
外部主机名应与Kubernetes辅助节点的DNS名称匹配。这些可以是Kubernetes集群中的任何节点。如果Pod在另一个节点上运行,则节点将进行内部路由。
将端口设置为spec.connectivity.replicaSetHorizons
发现的NodePort值。
例
Kubernetes操作员创建MongoDB资源,并请求Kubernetes CA批准数据库主机的证书。运行以下命令来验证证书是否正在等待批准:
在status
输出的字段应类似于以下内容:
如果看不到status.message
以上内容,请参阅
对Kubernetes Operator进行故障排除以帮助诊断问题。
警告
不要在生产中使用–sslAllowInvalidCertificates标志。在生产中,与客户端工具或应用程序共享Kubernetes CA文件。
如果连接成功,您应该看到:
此过程使用以下示例:
要从Kubernetes集群外部连接到Kubernetes运营商部署的MongoDB分片集群资源:
键 | 类型 | 必要性 | 描述 | 例 |
---|---|---|---|---|
spec.exposedExternally |
布尔型 | 可选的 | 将此值设置true 为允许外部服务连接到MongoDB部署。这导致Kubernetes创建
NodePort服务。 |
true |
键 | 类型 | 必要性 | 描述 | 例 |
---|---|---|---|---|
spec.exposedExternally |
布尔型 | 可选的 | 将此值设置true 为允许外部服务连接到MongoDB部署。这导致Kubernetes创建
NodePort服务。 |
true |
spec.security |
布尔值 | 可选的 | 如果该值为 默认情况下,Kubernetes Operator要求主机使用并接受TLS |