helm部署mongodb集群

helm部署mongodb集群
配置:
node1-iot.com,ip:192.168.0.201
node2-iot.com ip:192.168.0.202
node3-iot.com ip:192.168.0.204

一:部署helm以及storageclass查看其它文章

二:helm部署mongodb集群
[root@master-iot mongodb]# helm repo add stable https://kubernetes-charts.storage.googleapis.com/
[root@master-iot mongodb]# helm fetch  stable/mongodb-replicaset
[root@master-iot mongodb]# tar zxvf mongodb-replicaset-3.11.2.tgz
[root@master-iot mongodb]# cd mongodb-replicaset/
[root@master-iot mongodb-replicaset]# vim values.yaml

在这里插入图片描述

改为自己的storageclass
[root@master-iot mongodb]# helm install -f mongodb-replicaset/values.yaml --name mongodb-ha stable/mongodb-replicaset --namespace mongod
[root@master-iot ~]# kubectl get all -n mongod
NAME                                  READY   STATUS    RESTARTS   AGE
pod/mongodb-ha-mongodb-replicaset-0   1/1     Running   0          63m
pod/mongodb-ha-mongodb-replicaset-1   1/1     Running   0          62m
pod/mongodb-ha-mongodb-replicaset-2   1/1     Running   0          60m

NAME                                           TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)     AGE
service/mongodb-ha-mongodb-replicaset          ClusterIP   None         <none>        27017/TCP   63m
service/mongodb-ha-mongodb-replicaset-client   ClusterIP   None         <none>        27017/TCP   63m

NAME                                             READY   AGE
statefulset.apps/mongodb-ha-mongodb-replicaset   3/3     63m

三:测试
[root@master-iot ~]# kubectl exec -it mongodb-ha-mongodb-replicaset-0 -n mongod bash
mongodb@mongodb-ha-mongodb-replicaset-0:/$ mongo --host localhost --port 27017
MongoDB shell version v3.6.16
connecting to: mongodb://localhost:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("a2c98d61-085e-4a97-a487-9463b6d551d3") }
MongoDB server version: 3.6.16
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	http://docs.mongodb.org/
Questions? Try the support group
	http://groups.google.com/group/mongodb-user
2020-01-05T06:56:01.891+0000 I STORAGE  [main] In File::open(), ::open for '/home/mongodb/.mongorc.js' failed with No such file or directory
Server has startup warnings: 
2020-01-05T05:48:52.214+0000 I CONTROL  [initandlisten] 
2020-01-05T05:48:52.214+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-01-05T05:48:52.214+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2020-01-05T05:48:52.214+0000 I CONTROL  [initandlisten] 
2020-01-05T05:48:52.214+0000 I CONTROL  [initandlisten] 
2020-01-05T05:48:52.214+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2020-01-05T05:48:52.214+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-01-05T05:48:52.214+0000 I CONTROL  [initandlisten] 
2020-01-05T05:48:52.214+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2020-01-05T05:48:52.214+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-01-05T05:48:52.214+0000 I CONTROL  [initandlisten] 
rs0:PRIMARY>
rs0:PRIMARY> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB
rs0:PRIMARY> use test
switched to db test
rs0:PRIMARY> db.test.find().pretty().count()
100
rs0:PRIMARY> rs.status()
{
	"set" : "rs0",
	"date" : ISODate("2020-01-05T06:56:51.025Z"),
	"myState" : 1,
	"term" : NumberLong(2),
	"syncingTo" : "",
	"syncSourceHost" : "",
	"syncSourceId" : -1,
	"heartbeatIntervalMillis" : NumberLong(2000),
	"optimes" : {
		"lastCommittedOpTime" : {
			"ts" : Timestamp(1578207404, 1),
			"t" : NumberLong(2)
		},
		"readConcernMajorityOpTime" : {
			"ts" : Timestamp(1578207404, 1),
			"t" : NumberLong(2)
		},
		"appliedOpTime" : {
			"ts" : Timestamp(1578207404, 1),
			"t" : NumberLong(2)
		},
		"durableOpTime" : {
			"ts" : Timestamp(1578207404, 1),
			"t" : NumberLong(2)
		}
	},
	"members" : [
		{
			"_id" : 0,
			"name" : "mongodb-ha-mongodb-replicaset-0.mongodb-ha-mongodb-replicaset.mongod.svc.cluster.local:27017",
			"health" : 1,
			"state" : 1,
			"stateStr" : "PRIMARY",
			"uptime" : 4081,
			"optime" : {
				"ts" : Timestamp(1578207404, 1),
				"t" : NumberLong(2)
			},
			"optimeDate" : ISODate("2020-01-05T06:56:44Z"),
			"syncingTo" : "",
			"syncSourceHost" : "",
			"syncSourceId" : -1,
			"infoMessage" : "",
			"electionTime" : Timestamp(1578203332, 1),
			"electionDate" : ISODate("2020-01-05T05:48:52Z"),
			"configVersion" : 3,
			"self" : true,
			"lastHeartbeatMessage" : ""
		},
		{
			"_id" : 1,
			"name" : "mongodb-ha-mongodb-replicaset-1.mongodb-ha-mongodb-replicaset.mongod.svc.cluster.local:27017",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 3962,
			"optime" : {
				"ts" : Timestamp(1578207404, 1),
				"t" : NumberLong(2)
			},
			"optimeDurable" : {
				"ts" : Timestamp(1578207404, 1),
				"t" : NumberLong(2)
			},
			"optimeDate" : ISODate("2020-01-05T06:56:44Z"),
			"optimeDurableDate" : ISODate("2020-01-05T06:56:44Z"),
			"lastHeartbeat" : ISODate("2020-01-05T06:56:50.893Z"),
			"lastHeartbeatRecv" : ISODate("2020-01-05T06:56:49.795Z"),
			"pingMs" : NumberLong(0),
			"lastHeartbeatMessage" : "",
			"syncingTo" : "mongodb-ha-mongodb-replicaset-0.mongodb-ha-mongodb-replicaset.mongod.svc.cluster.local:27017",
			"syncSourceHost" : "mongodb-ha-mongodb-replicaset-0.mongodb-ha-mongodb-replicaset.mongod.svc.cluster.local:27017",
			"syncSourceId" : 0,
			"infoMessage" : "",
			"configVersion" : 3
		},
		{
			"_id" : 2,
			"name" : "mongodb-ha-mongodb-replicaset-2.mongodb-ha-mongodb-replicaset.mongod.svc.cluster.local:27017",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 3851,
			"optime" : {
				"ts" : Timestamp(1578207404, 1),
				"t" : NumberLong(2)
			},
			"optimeDurable" : {
				"ts" : Timestamp(1578207404, 1),
				"t" : NumberLong(2)
			},
			"optimeDate" : ISODate("2020-01-05T06:56:44Z"),
			"optimeDurableDate" : ISODate("2020-01-05T06:56:44Z"),
			"lastHeartbeat" : ISODate("2020-01-05T06:56:50.879Z"),
			"lastHeartbeatRecv" : ISODate("2020-01-05T06:56:49.887Z"),
			"pingMs" : NumberLong(1),
			"lastHeartbeatMessage" : "",
			"syncingTo" : "mongodb-ha-mongodb-replicaset-0.mongodb-ha-mongodb-replicaset.mongod.svc.cluster.local:27017",
			"syncSourceHost" : "mongodb-ha-mongodb-replicaset-0.mongodb-ha-mongodb-replicaset.mongod.svc.cluster.local:27017",
			"syncSourceId" : 0,
			"infoMessage" : "",
			"configVersion" : 3
		}
	],
	"ok" : 1,
	"operationTime" : Timestamp(1578207404, 1),
	"$clusterTime" : {
		"clusterTime" : Timestamp(1578207404, 1),
		"signature" : {
			"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
			"keyId" : NumberLong(0)
		}
	}
}
rs0:PRIMARY> rs.isMaster()
{
	"hosts" : [
		"mongodb-ha-mongodb-replicaset-0.mongodb-ha-mongodb-replicaset.mongod.svc.cluster.local:27017",
		"mongodb-ha-mongodb-replicaset-1.mongodb-ha-mongodb-replicaset.mongod.svc.cluster.local:27017",
		"mongodb-ha-mongodb-replicaset-2.mongodb-ha-mongodb-replicaset.mongod.svc.cluster.local:27017"
	],
	"setName" : "rs0",
	"setVersion" : 3,
	"ismaster" : true,
	"secondary" : false,
	"primary" : "mongodb-ha-mongodb-replicaset-0.mongodb-ha-mongodb-replicaset.mongod.svc.cluster.local:27017",
	"me" : "mongodb-ha-mongodb-replicaset-0.mongodb-ha-mongodb-replicaset.mongod.svc.cluster.local:27017",
	"electionId" : ObjectId("7fffffff0000000000000002"),
	"lastWrite" : {
		"opTime" : {
			"ts" : Timestamp(1578207424, 1),
			"t" : NumberLong(2)
		},
		"lastWriteDate" : ISODate("2020-01-05T06:57:04Z"),
		"majorityOpTime" : {
			"ts" : Timestamp(1578207424, 1),
			"t" : NumberLong(2)
		},
		"majorityWriteDate" : ISODate("2020-01-05T06:57:04Z")
	},
	"maxBsonObjectSize" : 16777216,
	"maxMessageSizeBytes" : 48000000,
	"maxWriteBatchSize" : 100000,
	"localTime" : ISODate("2020-01-05T06:57:11.999Z"),
	"logicalSessionTimeoutMinutes" : 30,
	"minWireVersion" : 0,
	"maxWireVersion" : 6,
	"readOnly" : false,
	"ok" : 1,
	"operationTime" : Timestamp(1578207424, 1),
	"$clusterTime" : {
		"clusterTime" : Timestamp(1578207424, 1),
		"signature" : {
			"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
			"keyId" : NumberLong(0)
		}
	}
}
[root@master-iot ~]# kubectl exec -it mongodb-ha-mongodb-replicaset-1 -n mongod bash
rs0:SECONDARY> rs.slaveOk()
rs0:SECONDARY> use test
switched to db test
rs0:SECONDARY> db.test.find().pretty().count()
100
删除主节点测试高可用
[root@master-iot ~]# kubectl get pods -n mongod
NAME                              READY   STATUS    RESTARTS   AGE
mongodb-ha-mongodb-replicaset-0   1/1     Running   0          71m
mongodb-ha-mongodb-replicaset-1   1/1     Running   0          70m
mongodb-ha-mongodb-replicaset-2   1/1     Running   0          68m
[root@master-iot ~]# kubectl delete pods mongodb-ha-mongodb-replicaset-0 -n mongod
pod "mongodb-ha-mongodb-replicaset-0" deleted
[root@master-iot ~]# kubectl get pods -n mongod
NAME                              READY   STATUS    RESTARTS   AGE
mongodb-ha-mongodb-replicaset-0   1/1     Running   0          21s
mongodb-ha-mongodb-replicaset-1   1/1     Running   0          70m
mongodb-ha-mongodb-replicaset-2   1/1     Running   0          68m
查看数据是否同步
[root@master-iot ~]# kubectl exec -it mongodb-ha-mongodb-replicaset-0 -n mongod bash
mongodb@mongodb-ha-mongodb-replicaset-0:/$ mongo --host localhost --port 27017
MongoDB shell version v3.6.16
connecting to: mongodb://localhost:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("82f2fa84-7e66-4789-a613-64b0929a6c5b") }
MongoDB server version: 3.6.16
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	http://docs.mongodb.org/
Questions? Try the support group
	http://groups.google.com/group/mongodb-user
2020-01-05T07:00:25.417+0000 I STORAGE  [main] In File::open(), ::open for '/home/mongodb/.mongorc.js' failed with No such file or directory
Server has startup warnings: 
2020-01-05T06:59:37.903+0000 I CONTROL  [initandlisten] 
2020-01-05T06:59:37.903+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-01-05T06:59:37.903+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2020-01-05T06:59:37.903+0000 I CONTROL  [initandlisten] 
2020-01-05T06:59:37.903+0000 I CONTROL  [initandlisten] 
2020-01-05T06:59:37.903+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2020-01-05T06:59:37.903+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-01-05T06:59:37.903+0000 I CONTROL  [initandlisten] 
2020-01-05T06:59:37.903+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2020-01-05T06:59:37.903+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2020-01-05T06:59:37.903+0000 I CONTROL  [initandlisten] 
rs0:SECONDARY> rs.slaveOk()
rs0:SECONDARY> use test
switched to db test
rs0:SECONDARY> db.test.find().count()
100
数据一致
发布了33 篇原创文章 · 获赞 2 · 访问量 2758

猜你喜欢

转载自blog.csdn.net/weixin_43224068/article/details/103843020