栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

k8s 部署 mongodb 三种模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

k8s 部署 mongodb 三种模式

文章目录
  • 部署模式简介
  • 独立模式
  • 主从模式
  • 分片模式
  • navicat 链接
  • springboot 连接
  • Java driver 连接

部署模式简介

部署 MongoDB 一般有三种方式

模式架构优点缺点
standalone 独立模式单节点容易部署无容灾方案
relicaset 主从模式常用一主两从高可用,自动进行故障切换恢复部署和应用都比较复杂
sharded 分片模式常用 分片数为4,配置服务器的副本为 3 ,数据节点副本为 2支持水平扩展,可忍受非常大的数据集,并提供高吞吐量d操作概念比较苦涩难懂

主从模式:同一份数据被保存在N台机器上,每台机器上都有一份数据。
分片模式:一份数据被分开保存在N台机器上,N个机器上的数据组合起来是一份数据。

本文使用 bitnami chart 进行 MongoDB 的部署

引入 bitnami

helm repo add bitnami https://charts.bitnami.com/bitnami

 

独立模式

官方文档:https://github.com/bitnami/charts/tree/master/bitnami/mongodb

新增配置文件 values.yaml

global:
  storageClass: "nfs-client"
metrics: 
  enabled: true
auth:
  rootPassword: "5gTU4o7g5g"
service:
  type: "NodePort"
  nodePorts:
    mongodb: "30017"

architecture:默认就是独立模式
service.nodePorts.mongodb:开启外部访问

部署命令

helm install mongodb bitnami/mongodb -f values.yaml -n [命名空间]

 

主从模式

官方文档:https://github.com/bitnami/charts/tree/master/bitnami/mongodb

新增配置文件 values.yaml

global:
  storageClass: "nfs-client"
architecture: "replicaset"
auth:
  rootPassword: "5gTU4o7g5g"
  replicaSetKey: "mymongodb"
  usernames:
    - "user"
  passwords: 
    - "123456"
  databases:
    - "message"  
replicaCount: 2
externalAccess:
  enabled: true
  service:
    externalTrafficPolicy: "Cluster"
    type: "NodePort"
    nodePorts:
     - 30018
     - 30019

architecture:架构设置为 replicaset
auth.replicaSetKey:更新 upgrade 时有用,可以不设置,若要设置,字符必须大于5
auth.usernames、auth.passwords、 auth.databases:用户名、密码和数据库;格式为数组,一一对应
replicaCount:副本集,按需设置
externalAccess.enabled:开启外部访问
externalAccess.service.externalTrafficPolicy:有 Local 和 Cluster 两种选项;Cluster:[集群里所有 ip] + [nodeport端口] 都访问服务,Local :只能用 [容器所在 ip] + [nodeport端口] 才能访问
externalAccess.service.type:LoadBalancer 或者 NodePort,这里使用 NodePort
externalAccess.service.nodePorts:这里是数组结构,数组大小和 replicaCount 一致

部署命令

helm install mongodb bitnami/mongodb -f values.yaml -n [命名空间]

 

分片模式

官方部署文档:https://github.com/bitnami/charts/tree/master/bitnami/mongodb-sharded
官方原理文档:https://www.mongodb.com/docs/manual/sharding/

配置项默认配置推荐配置
mongos路由11
config配置服务器13
shards分片数14
replica副本数22

新增配置文件 values.yaml

global:
  storageClass: "nfs-client"
auth:
  rootPassword: "5gTU4o7g5g"

##### 可不配置 #######
shards: 4
configsvr: 
  replicaCount: 3
shardsvr: 
  dataNode: 
    replicaCount: 2
##### 可不配置 #######

service:
  type: "NodePort"
  nodePorts:
    mongodb: "30019"

shards、configsvr、shardsvr:可以不配置,按默认值也可以
service.type:外部访问方式,选择 NodePort
service.nodePorts.mongodb:开发端口

部署命令

helm install mongodb bitnami/mongodb-sharded -f values.yaml -n [命名空间]

默认部署结构


优化部署结构

 

navicat 链接
  • standalone 独立模式

  • relicaset 主从模式

  • sharded 分片模式

 

springboot 连接

pom 文件添加依赖


    org.springframework.boot
    spring-boot-starter-data-mongodb

application.yml 示例
有账号密码时,必须添加 authSource=admin

data:
  mongodb:
    uri: mongodb://root:123456@192.168.140.01:30020/datasource?authSource=admin

官方示例

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

options 属性简介

官方 Replica Set 示例

mongodb://db0.example.com:27017,db1.example.com:27017,db2.example.com:27017/?replicaSet=myRepl

官方文档:https://www.mongodb.com/docs/manual/reference/connection-string/

 

Java driver 连接

不做详细介绍,有需要可看官网

官方文档 https://mongodb.github.io/mongo-java-driver/3.4/driver/getting-started/installation/

 
 

storageClass 参考文档
搭建本地存储可以参考 k8s 安装本地 storageClass
搭建NFS存储可以参考 K8S 集群使用 NFS 做 storageclass

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1040895.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号