Rancher 部署 MongoDB

前置

背景:在 K8S 集群用 bitnami 部署 MongoDB 有一定的学习成本,有兴趣可以参考 k8s 部署 mongodb 三种模式,且部署后发现 MongoDB 会随着时间推移占用越来越多的内存,暂没找到原有,现介绍一种简单易用的部署方式

必要条件:部署 Rancher,可以参考 docker 部署 rancher
为什么选择 Rancher 呢,因为 Rancher 是一套容器管理平台,它可以帮助组织在生产环境中轻松快捷的部署和管理容器。 Rancher 可以轻松地管理各种环境的 Kubernetes,满足 IT 需求并为 DevOps 团队提供支持。

讨论:该选择部署 deployment 还是 SatefulSet,这里简单做个归纳

deployment 的主要功能

  • 管理无状态应用
  • 管理Pod和ReplicaSet
  • 具有上线部署、副本设定、滚动升级、回滚等功能
  • 提供声明式更新,例如只更新一个新的Image
  • 应用场景:web服务

SatefulSet 的主要功能

  • 管理有状态应用
  • 解决Pod独立生命周期,保持 Pod 启动顺序和唯一性
  • 稳定,唯一的网络标识符,持久存储(例如:etcd配置文件,节点地址发生变化,将无法使用)
  • 有序,优雅的部署和扩展、删除和终止(例如:mysql主从关系,先启动主,再启动从),有序,滚动更新
  • 应用场景:数据库

由于 MongoDB 是数据库,持久存储是重中之重,所以选择 SatefulSet

部署

创建 Headless

为什么要先创建 Headless,因为没有 Headless,创建 SatefulSet 时,Service Name 将无法选择,而 Service Name 是必填项
在这里插入图片描述

  1. 选择 Headless 在这里插入图片描述
  2. 自定义命名
    在这里插入图片描述
  3. 配置端口
    在这里插入图片描述
  4. 配置关键字
    在这里插入图片描述

开始部署

  1. 选择 SatefulSet,点击 create
    在这里插入图片描述

    扫描二维码关注公众号,回复: 14679413 查看本文章
  2. 自定义命名
    在这里插入图片描述

  3. 配置镜像名,这里使用最新 MongoDB 的 4.2 版本
    在这里插入图片描述

  4. 配置端口,Cluster IP:集群内部访问端口, Node Port:外部访问端口
    在这里插入图片描述

  5. 配置环境变量,分别是登录账号和登录密码
    在这里插入图片描述

  6. 创建 pvc
    在这里插入图片描述

  7. 自定义 pvc 名称,选择集群的 StorageClass,自定义 point 位置
    在这里插入图片描述

  8. 完成

测试

使用 navicat 连接部署成功的 MongoDB

  • 连接名:自定义
  • 连接:选择 Standalone
  • 主机:集群 IP
  • 端口:Node Port 定义的端口
  • 验证:选择 Password
  • 用户名:由 MONGO_INITDB_ROOT_USERNAME 配置
  • 密码:由 MONGO_INITDB_ROOT_PASSWORD 配置

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42555971/article/details/128861742