Mesos+Marathon上數據庫實現無狀態化實戰

環境描述:
1.Mesos1.7.0+Marathon1.6.3 3個mesos-agent,3個mesos-master,5個zookeeper,
一個calico SDN網絡 172.30.0.0/16.(bgp+mesos-agent1,mesos-agent2,mesos-agent3)
在這裏插入圖片描述
2. 操作系統 centos7 1810 +docker-ce 18.0.9
3. Ceph集羣一個, 所有mesos-agent 上安裝了ceph客戶端

在這裏插入圖片描述
4.所有 mesos-agent 上都安裝了rexray 服務

在這裏插入圖片描述

5.測試驗證 把有狀態服務(下面用postgresql數據庫演示有狀態的數據存儲)變成無狀態服務帶來的開發和運維的方便性:
在這裏插入圖片描述

完整的json配置如下:

{
“id”: “/demo/postgres5”,
“cmd”: null,
“cpus”: 1,
“mem”: 2048,
“disk”: 10240,
“instances”: 1,
“acceptedResourceRoles”: [
“*”
],
“container”: {
“type”: “DOCKER”,
“docker”: {
“forcePullImage”: false,
“image”: “postgres:11.1-alpine”,
“parameters”: [
{
“key”: “expose”,
“value”: “5432”
},
{
“key”: “volume-driver”,
“value”: “rexray”
},
{
“key”: “volume”,
“value”: “demo_postgresql_data:/var/lib/postgresql/data”
}
],
“privileged”: true
},
“volumes”: [],
“portMappings”: [
{
“containerPort”: 0,
“labels”: {},
“protocol”: “tcp”,
“servicePort”: 10002
}
]
},
“env”: {
“POSTGRES_USER”: “postgresql”,
“POSTGRES_PASSWORD”: “kaixin.com
},
“healthChecks”: [
{
“gracePeriodSeconds”: 300,
“intervalSeconds”: 60,
“maxConsecutiveFailures”: 3,
“port”: 5432,
“protocol”: “MESOS_TCP”,
“ipProtocol”: “IPv4”,
“timeoutSeconds”: 20,
“delaySeconds”: 15
}
],
“labels”: {
“org.projectcalico.label.role”: “database”
},
“networks”: [
{
“name”: “database”,
“mode”: “container”
}
],
“portDefinitions”: [],
“args”: [
“postgres”,
“-c”,
“max_connections=200”
],
“upgradeStrategy”: {
“maximumOverCapacity”: 0,
“minimumHealthCapacity”: 0.5
}
}

在這裏插入圖片描述

在這裏插入圖片描述

現在使用工具往數據庫隨便寫入一條記錄.
create table test(name varchar(50) primary key);
insert into test(name) values(‘myname’);

然後關閉或刪除 postgresql 或重新啓動mesos-agent3

然後,刷新marathon,
在這裏插入圖片描述
數據庫實例漂移到了mesos-agent1上了。

我們看看數據到底還在嗎?

使用DataGrid連接 172.30.139.3 postgresql 數據庫,
在這裏插入圖片描述
select * from test;

![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20190122140744499.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5ZnJlZWFuZ2Vs,size_16,color_FFFFFF,t_70

在這裏插入圖片描述

測試成功.
之前插入的數據還在.

至此,有狀態的服務變成無狀態的服務已經成功實施.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章