k8s 部署 mongodb 三种模式

这篇具有很好参考价值的文章主要介绍了k8s 部署 mongodb 三种模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

部署模式简介

部署 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 路由 1 1
config 配置服务器 1 3
shards 分片数 1 4
replica 副本数 2 2

新增配置文件 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 [命名空间]

默认部署结构
k8s 部署 mongodb 三种模式

k8s 部署 mongodb 三种模式
k8s 部署 mongodb 三种模式

优化部署结构
k8s 部署 mongodb 三种模式

k8s 部署 mongodb 三种模式

 

navicat 链接

  • standalone 独立模式
    k8s 部署 mongodb 三种模式

  • relicaset 主从模式
    k8s 部署 mongodb 三种模式

  • sharded 分片模式
    k8s 部署 mongodb 三种模式

 

springboot 连接

pom 文件添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

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 属性简介
k8s 部署 mongodb 三种模式

官方 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文章来源地址https://www.toymoban.com/news/detail-403790.html

到了这里,关于k8s 部署 mongodb 三种模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • iManager for K8S 站点定制(以MongoDB为例)

    作者:ls   SuperMap iManager支持一键创建用户定制的站点,可将已添加的站点模板创建为站点环境,并通过站点使用应用。   定制站点与其他站点相同,在监管方面,可通过拓扑图了解各项服务间的关联及节点状、查看站点账户、查看服务度量指标与追踪记录、添加服务、

    2024年02月16日
    浏览(35)
  • k8s部署nginx的三种方式

    创作时间:2022-08-09 更新时间:2023-03-13 | 更新内容:修改deploy.yaml文件中service对pod的选择label;修改nfs的挂载路径为路径不能为文件,容器挂载路径不能为文件;更新nginx-configmap中default.conf的内容 | 感谢:西瓜蓬蓬 如遇到问题请联系。 使用kubernetes来部署nginx服务,nginx一般是

    2024年02月06日
    浏览(31)
  • K8S简介和安装部署详细教程

    目录 一、K8S简介 Kubernetes集群组件逻辑图 Master节点组件及功能 Slave节点组件及功能           安装部署 二进制包 kubeadm工具 二、准备工作 软硬件要求 集群规划 环境配置 修改hosts配置 配置SSH免密登录 关闭Swap分区 禁用SELinux 关闭防火墙 修改内核参数 配置集群时钟同步 配置

    2024年02月05日
    浏览(34)
  • Kubernetes(k8s)部署模式发展

    在部署应用程序的方式上,主要经历了三个时代: 传统部署: 互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响 虚拟化部署: 可以在一台物

    2024年02月11日
    浏览(40)
  • k8s部署nacos集群模式

    主要是在k8s集群部署nacos集群(3节点),数据库使用外置的 mysql ,由于有现成的阿里云RDS,就直接使用了。相比官方的在k8s内创建数据库的方案更方便。所有nacos配置 全部保存在数据库中,不用担心重启掉线等异常导致配置文件丢失。 Nacos及所有相关服务都部署在default 命名空间

    2024年02月16日
    浏览(30)
  • 【云原生 | Kubernetes 系列】—K8S部署RocketMQ集群(双主双从+同步模式)

    rocketMQ高可用有很多种方式,比如:单机部署,多主集群,双主双从同步部署,双主双从异步部署,以及多主多从部署。部署集群可按照自己公司的实际情况进行部署。 单机部署:只启动一个rocketMQ实例就可以了,一般常用来本机测试使用。原因:一旦rocketMQ因某些原因挂掉,

    2024年02月04日
    浏览(40)
  • k8s部署服务接入skywalking之java agent使用(基于sideCar模式)

    java应用在接入skywalking的时候,需要在启动参数指定 java agent的jar包 -javaagent:/usr/local/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent/skywalking-agent.jar 目前不打算将agent相关文件制作到java服务镜像里面 希望通过 挂载 的方式将agent包提供出来供java服务使用 决定采用 基于sideCar 模式

    2024年02月07日
    浏览(38)
  • Flink on k8s容器日志生成原理及与Yarn部署时的日志生成模式对比

    最近需要将flink由原先部署到Yarn集群切换到kubernetes集群,在切换之后需要熟悉flink on k8s的运行模式。在使用过程中针对日志模块发现,在k8s的容器中,flink的系统日志只有jobmanager.log/taskmanager.log 两个,而当时在使用Yarn集群部署时,flink的日志会有多个,比如:jobmanager.log、jo

    2024年02月07日
    浏览(26)
  • k8s简介及虚拟机快速搭建k8s集群

    1.1、部署方式的变迁 传统部署时代: 在物理服务器上运行应用程序 无法为应用程序定义资源边界 导致资源分配问题 例如,如果在物理服务器上运行多个应用程序,则可能会出现一个应用程序占用大部分资源的情况, 结果可能导致其他应用程序的性能下降。 一种解决方案是

    2024年02月12日
    浏览(43)
  • 1.k8s简介

    目录 k8s是什么 k8s不是什么 云原生 微服务 整体式架构与微服务架构 微服务的特性 微服务的优势 Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使

    2024年04月11日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包