首页 > 数据库 >kubernetes部署mongoDB 单机版 自定义配置文件、密码、日志路径等

kubernetes部署mongoDB 单机版 自定义配置文件、密码、日志路径等

时间:2023-09-12 12:23:21浏览次数:62  
标签:单机版 自定义 配置文件 admin mongodb db 2019 data name

来源:https://aijishu.com/a/1060000000097166

官方镜像地址: https://hub.docker.com/_/mong...

docker版的mongo移除了默认的/etc/mongo.conf, 修改了db数据存储路径为 /data/db.

创建configmap配置,注意不能加fork=true,否则Pod会变成Completed。

apiVersion: v1
kind: ConfigMap
metadata:
  name: mongodb-conf
data:
  mongodb.conf: |
        dbpath=/data/middleware-data/mongodb
        logpath=/data/middleware-data/mongodb/mongodb.log
        pidfilepath=/data/middleware-data/mongodb/master.pid
        directoryperdb=true
        logappend=true
        bind_ip=0.0.0.0
        port=27017

创建StatefulSet:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mongodb
spec:
  replicas: 1
  serviceName: mongodb
  selector:
    matchLabels:
      name: mongodb
  template:
    metadata:
      labels:
        name: mongodb
    spec:
      containers:
      - name: mongodb
        image: mongo:4.2.1
        command:
        - sh
        - -c
        - "exec mongod -f /data/middleware-data/mongodb/conf/mongodb.conf"
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 27017
          name: mongodb
          protocol: TCP
        volumeMounts:
        - name: mongodb-config
          mountPath: /data/middleware-data/mongodb/conf/
        - name: data
          mountPath: /data/middleware-data/mongodb/
      volumes:
      - name: mongodb-config
        configMap:
          name: mongodb-conf
      - name: data
        hostPath:
          path: /data/middleware-data/mongodb/

创建Service暴露端口:

kind: Service
apiVersion: v1
metadata:
  labels:
    name: mongodb
  name: mongodb
spec:
  type: NodePort
  ports:
  - name: mongodb
    port: 27017
    targetPort: 27017
    nodePort: 30002
  selector:
    name: mongodb

接着使用以下命令添加用户和设置密码,并且尝试连接,以及修改密码:

[root@liabio mongodb]# kubectl exec -ti mongodb-0 -- mongo admin
MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("6d31af3f-3749-3111-87d2-7c8745pob66c") }
MongoDB server version: 4.2.1
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
Server has startup warnings: 
2019-11-29T08:57:58.414+0000 I  CONTROL  [initandlisten] 
2019-11-29T08:57:58.414+0000 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-11-29T08:57:58.414+0000 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-11-29T08:57:58.414+0000 I  CONTROL  [initandlisten] 
2019-11-29T08:57:58.414+0000 I  CONTROL  [initandlisten] 
2019-11-29T08:57:58.414+0000 I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2019-11-29T08:57:58.414+0000 I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
2019-11-29T08:57:58.415+0000 I  CONTROL  [initandlisten] 
2019-11-29T08:57:58.415+0000 I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2019-11-29T08:57:58.415+0000 I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
2019-11-29T08:57:58.415+0000 I  CONTROL  [initandlisten] 
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

> db.createUser({ user:'admin',pwd:'910921',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
Successfully added user: {
    "user" : "admin",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}
> db.auth('admin', '910921')
1
> db.changeUserPassword("admin","390191");

db.createUser({ user:'admin',pwd:'910921',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
admin用户只对admin这个db有权限。

要操作mall这个db,可以这样:

use mall;
db.createUser({ user:'mall',pwd:'390191',roles:[ { role:'readWrite', db: 'mall'}]});

查看权限:

db.system.users.find()

参考

docker安装各种中间件、数据库教程
docker安装mongodb并备份
使用Docker和Kubernetes将MongoDB作为微服务运行

 

标签:单机版,自定义,配置文件,admin,mongodb,db,2019,data,name
From: https://www.cnblogs.com/gaoyanbing/p/17695849.html

相关文章

  • ubuntu22.04服务器的双网卡绑定的具体操作步骤和配置文件
    前言ubuntu22.04服务器的双网卡绑定具体步骤可以分成以下五步,下面按步骤操作一、安装必要软件sudoaptinstallnet-tools二、编辑/etc/netplan/01-network-manager-all.yaml将原内容修改为配置文件内容这种方式为自动获取IP的方式,系统将通过连接的DHCP服务器自动获取其IP地址,其......
  • Ubuntu Server 22.04 双网卡绑定 配置文件 Bond mode 1 : active-backup 主备模式
    UbuntuServer22.041.拓扑视图实例 2.备份配置文件修改前备份root@ax:~#cpetc/netplan/00-installer-config.yamletc/netplan/00-installer-config.yaml.orig修改配置文件,Ubuntu严格区分格式,空格缩进。简要说明:eno1-eno4,关闭dhcp;bond0只绑定eno1、eno2,实际可根据情况,绑定更多......
  • Nginx配置文件详细说明
    在此记录下Nginx服务器nginx.conf的配置文件说明,部分注释收集与网络.#运行用户userwww-data;#启动进程,通常设置成和cpu的数量相等worker_processes1;#全局错误日志及PID文件error_log/var/log/nginx/error.log;pid/var/run/nginx.pid;#工作模式及连接数上......
  • jwt自定义表签发、jwt多方式登录(auth的user表)
    jwt自定义表签发继承AbstractUser,直接使用自动签发token纯自己写的用户表,需要自己签发关于签发:1、通过user生成payload,jwt提供的方法,字段必须是username,传入user,返回payload2、生成token,jwt提供的方法,把payload放入token自定义表大致流程:先创建表需要什么建什......
  • drf-jwt自定义表签发、多方式登录
    一、jwt自定义表签发自定义表签发,用的是自己定义的表1.models.py:-注意点:因为视图中使用了drf-jwt的自动签发,所以用户名必须为usernamefromdjango.dbimportmodels#自定义签发用的是自定义的user表#注意点:使用drf-jwt的自动签发,用户名必须是usernameclassUser(......
  • 建议收藏!Harmony应用配置文件概述(Stage模型)
     一. 应用配置文件每个应用项目必须在项目的代码目录下加入配置文件,这些配置文件会向编译工具、操作系统和应用市场提供应用的基本信息。在基于Stage模型开发的应用项目代码下,都存在一个app.json5及一个或多个module.json5这两种配置文件。app.json5主要包含以下内容:● ......
  • jwt自定义表签发、jwt多方式登录(auth的user表)
    jwt自定义表签发models.pyfromdjango.dbimportmodelsfromdjango.contrib.auth.modelsimportAbstractUser#继承AbstractUser直接使用自动签发token#纯自己写的用户表,需要自己签发classUser(models.Model):username=models.CharField(max_length=32)......
  • Spring Boot配置文件(yaml&properties)总结
    SpringBoot配置文件总结(qq.com)SpringBoot的两种配置文件(qq.com)SpringBoot中提供一个全局的配置文件:application.properties,这个配置文件的作用就是,允许我们通过这个配置文件去修改SpringBoot自动配置的默认值。SpringBoot支持两种格式的配置文件:application.pr......
  • jwt自定义表签发, jwt 多方式登录(auth的user表)
    1jwt自定义表签发1.1models.pyfromdjango.dbimportmodelsfromdjango.contrib.auth.modelsimportAbstractUser#继承AbstractUser直接使用自动签发token#纯自己写的用户表,需要自己签发classUser(models.Model):username=models.CharField(max_leng......
  • Vue2x的自定义指令
    在某些情况下,我们需要对底层DOM进行操作,而内置的指令不能满足需求,就需要自定义指令。一个自定义指令由一个包含类似组件的生命周期的钩子的对象来定义,钩子函数会接收到指令所绑定的元素作为参数。定义指令常用两种方式进行自定义指令,一种是全局定义,另一种在当前组件中定义//局......