【发布时间】:2020-09-29 21:31:48
【问题描述】:
我在 kubernetes 上使用 bitnami helm chart 设置了一个 mongodb 集群。 https://github.com/bitnami/charts/tree/master/bitnami/mongodb。你可以在这里看到我编辑的生产 yaml 文件https://pastebin.com/41rc3JC1
我已经运行了 2-3 周了。我注意到当我使用 cli 进行查询时,偶尔会收到以下错误:
rs0:PRIMARY> db.streamers.find().pretty()
错误:执行查询时出错: 失败:尝试在主机上运行命令“find”时出现网络错误 'mongo.acme.com:27017'
我使用以下 url mongo mongodb://<redacted_username>:<redacted_password>@mongo.acme.com:27017 连接到 mongo
rs.status
{
"set" : "rs0",
"date" : ISODate("2020-09-16T11:09:40.136Z"),
"myState" : 1,
"term" : NumberLong(3),
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"heartbeatIntervalMillis" : NumberLong(2000),
"majorityVoteCount" : 2,
"writeMajorityCount" : 1,
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(1600254574, 1),
"t" : NumberLong(3)
},
"lastCommittedWallTime" : ISODate("2020-09-16T11:09:34.606Z"),
"readConcernMajorityOpTime" : {
"ts" : Timestamp(1600254574, 1),
"t" : NumberLong(3)
},
"readConcernMajorityWallTime" : ISODate("2020-09-16T11:09:34.606Z"),
"appliedOpTime" : {
"ts" : Timestamp(1600254574, 1),
"t" : NumberLong(3)
},
"durableOpTime" : {
"ts" : Timestamp(1600254574, 1),
"t" : NumberLong(3)
},
"lastAppliedWallTime" : ISODate("2020-09-16T11:09:34.606Z"),
"lastDurableWallTime" : ISODate("2020-09-16T11:09:34.606Z")
},
"lastStableRecoveryTimestamp" : Timestamp(1600254574, 1),
"lastStableCheckpointTimestamp" : Timestamp(1600254574, 1),
"electionCandidateMetrics" : {
"lastElectionReason" : "electionTimeout",
"lastElectionDate" : ISODate("2020-09-16T10:27:44.421Z"),
"electionTerm" : NumberLong(3),
"lastCommittedOpTimeAtElection" : {
"ts" : Timestamp(1600241404, 1),
"t" : NumberLong(2)
},
"lastSeenOpTimeAtElection" : {
"ts" : Timestamp(1600241404, 1),
"t" : NumberLong(2)
},
"numVotesNeeded" : 2,
"priorityAtElection" : 5,
"electionTimeoutMillis" : NumberLong(10000),
"numCatchUpOps" : NumberLong(0),
"newTermStartDate" : ISODate("2020-09-16T10:27:44.439Z"),
"wMajorityWriteAvailabilityDate" : ISODate("2020-09-16T10:27:44.502Z")
},
"members" : [
{
"_id" : 0,
"name" : "a211af6c97d4847519c8a859471a1846-<redacted>.us-east-2.elb.amazonaws.com:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 3975838,
"optime" : {
"ts" : Timestamp(1600254574, 1),
"t" : NumberLong(3)
},
"optimeDate" : ISODate("2020-09-16T11:09:34Z"),
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"infoMessage" : "",
"electionTime" : Timestamp(1600252064, 1),
"electionDate" : ISODate("2020-09-16T10:27:44Z"),
"configVersion" : 2,
"self" : true,
"lastHeartbeatMessage" : ""
},
{
"_id" : 1,
"name" : "mongo-prod-mongodb-arbiter-0.mongo-prod-mongodb-arbiter-headless.mongodb.svc.cluster.local:27017",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 2507,
"lastHeartbeat" : ISODate("2020-09-16T11:09:39.159Z"),
"lastHeartbeatRecv" : ISODate("2020-09-16T11:09:38.700Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"infoMessage" : "",
"configVersion" : 2
}
],
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1600254574, 1),
"signature" : {
"hash" : BinData(0,"7pmSYWIweERYYg/QjqIIjQrQmo4="),
"keyId" : NumberLong("6855964983600087044")
}
},
"operationTime" : Timestamp(1600254574, 1)
}
正如您从 yaml 中看到的,这个 mongodb 集群通过在 aws 上创建的负载均衡器暴露在外部。然后我设置了一个 cname,它将 mongo.acme.com 指向负载均衡器的 url。
为什么我会偶尔遇到这些网络错误?这是我应该关心的事情吗?你能看到我配置错误的东西吗?
如果您需要我提供更多信息,请询问。
【问题讨论】:
-
你最近有没有引入任何变化?更新、配置更改等?正如您提到的
occasional network errors,它们多久出现一次? -
最近没有变化
-
这些错误多久发生一次?它是您的本地环境还是云?
-
@PjoterS cloud,我想我不能给你一个准确的答案。每当我连接到 mongo 并进行查询时,我都会注意到它。
-
你试过不同的版本吗?在类似的情况下this 或this SO case 问题是版本不匹配。我也尝试重现此行为,但无法重现,类似于 Github 上的用户
标签: mongodb kubernetes kubernetes-helm bitnami