IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> k8s mongodb副本集 -> 正文阅读

[大数据]k8s mongodb副本集

tee mongodb.yaml<<-'EOF'
apiVersion: v1
kind: Service
metadata:
  name: mongodb-headless
  labels:
    name: mongo
spec:
  ports:
    - port: 27017
      targetPort: 27017
  clusterIP: None
  selector:
    role: mongo
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mongo
spec:
  selector:
    matchLabels:
      role: mongo
      environment: test
  serviceName: "mongo"
  replicas: 3
  template:
    metadata:
      labels:
        role: mongo
        environment: test
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: mongo
        image: mongo
        command:
          - mongod
          - "--replSet"
          - rs0
          - "--bind_ip"
          - 0.0.0.0
        ports:
          - containerPort: 27017
        volumeMounts:
          - name: mongo-persistent-storage
            mountPath: /data/db
      - name: mongo-sidecar
        image: cvallance/mongo-k8s-sidecar
        env:
          - name: MONGO_SIDECAR_POD_LABELS
            value: "role=mongo,environment=test"
  volumeClaimTemplates:
    - metadata:
        name: mongo-persistent-storage
      spec:
        storageClassName: "rook-ceph-block"
        accessModes: ["ReadWriteOnce"]
        resources:
          requests:
            storage: 2Gi
---
apiVersion: v1
kind: Service
metadata:
  name: mongodb-cs
  labels:
    name: mongodb
spec:
  ports:
    - port: 27017
      targetPort: 27017
      nodePort: 30717
  selector:
    app: mongodb
  type: NodePort

检查serveice

# kubectl get svc | grep mon
mongo                          ClusterIP      None             <none>         27017/TCP                                                   3h16m
mongodb-headless               ClusterIP      None             <none>         27017/TCP                                                   3h15m
# nslookup  mongodb-headless
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      mongodb-headless
Address 1: 10.244.0.246 mongo-2.mongo.default.svc.cluster.local
Address 2: 10.244.1.236 mongo-1.mongo.default.svc.cluster.local
Address 3: 10.244.2.213 mongo-0.mongo.default.svc.cluster.local

获取到地址开始创建集群

cfg = {_id: "rs0",members:[{_id: 0,host: 'mongo-0.default.svc.cluster.local:27017',priority: 3},{_id: 1,host: 'mongo-1.default.svc.cluster.local:27017',priority: 2},{_id: 2,host: 'mongo-2.default.svc.cluster.local:27017',priority: 1}]};

初始化

rs.initiate(cfg)

查看副本集状态

rs.status()

在这里插入图片描述

{
        "set" : "rs0",
        "date" : ISODate("2022-05-14T16:08:05.875Z"),
        "myState" : 2,
        "term" : NumberLong(3),
        "syncSourceHost" : "10.42.2.72:27017",
        "syncSourceId" : 1,
        "heartbeatIntervalMillis" : NumberLong(2000),
        "majorityVoteCount" : 2,
        "writeMajorityCount" : 2,
        "votingMembersCount" : 3,
        "writableVotingMembersCount" : 3,
        "optimes" : {
                "lastCommittedOpTime" : {
                        "ts" : Timestamp(1652544480, 1),
                        "t" : NumberLong(3)
                },
                "lastCommittedWallTime" : ISODate("2022-05-14T16:08:00.983Z"),
                "readConcernMajorityOpTime" : {
                        "ts" : Timestamp(1652544480, 1),
                        "t" : NumberLong(3)
                },
                "readConcernMajorityWallTime" : ISODate("2022-05-14T16:08:00.983Z"),
                "appliedOpTime" : {
                        "ts" : Timestamp(1652544480, 1),
                        "t" : NumberLong(3)
                },
                "durableOpTime" : {
                        "ts" : Timestamp(1652544480, 1),
                        "t" : NumberLong(3)
                },
                "lastAppliedWallTime" : ISODate("2022-05-14T16:08:00.983Z"),
                "lastDurableWallTime" : ISODate("2022-05-14T16:08:00.983Z")
        },
        "lastStableRecoveryTimestamp" : Timestamp(1652544430, 1),
        "members" : [
                {
                        "_id" : 0,
                        "name" : "10.42.1.5:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 3993,
                        "optime" : {
                                "ts" : Timestamp(1652544480, 1),
                                "t" : NumberLong(3)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1652544480, 1),
                                "t" : NumberLong(3)
                        },
                        "optimeDate" : ISODate("2022-05-14T16:08:00Z"),
                        "optimeDurableDate" : ISODate("2022-05-14T16:08:00Z"),
                        "lastAppliedWallTime" : ISODate("2022-05-14T16:08:00.983Z"),
                        "lastDurableWallTime" : ISODate("2022-05-14T16:08:00.983Z"),
                        "lastHeartbeat" : ISODate("2022-05-14T16:08:05.546Z"),
                        "lastHeartbeatRecv" : ISODate("2022-05-14T16:08:05.546Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "",
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "",
                        "electionTime" : Timestamp(1652540469, 1),
                        "electionDate" : ISODate("2022-05-14T15:01:09Z"),
                        "configVersion" : 370424,
                        "configTerm" : 3
                },
                {
                        "_id" : 1,
                        "name" : "10.42.2.72:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 3993,
                        "optime" : {
                                "ts" : Timestamp(1652544480, 1),
                                "t" : NumberLong(3)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1652544480, 1),
                                "t" : NumberLong(3)
                        },
                        "optimeDate" : ISODate("2022-05-14T16:08:00Z"),
                        "optimeDurableDate" : ISODate("2022-05-14T16:08:00Z"),
                        "lastAppliedWallTime" : ISODate("2022-05-14T16:08:00.983Z"),
                        "lastDurableWallTime" : ISODate("2022-05-14T16:08:00.983Z"),
                        "lastHeartbeat" : ISODate("2022-05-14T16:08:05.546Z"),
                        "lastHeartbeatRecv" : ISODate("2022-05-14T16:08:05.580Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "",
                        "syncSourceHost" : "10.42.1.5:27017",
                        "syncSourceId" : 0,
                        "infoMessage" : "",
                        "configVersion" : 370424,
                        "configTerm" : 3
                },
                {
                        "_id" : 2,
                        "name" : "10.42.0.215:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 4006,
                        "optime" : {
                                "ts" : Timestamp(1652544480, 1),
                                "t" : NumberLong(3)
                        },
                        "optimeDate" : ISODate("2022-05-14T16:08:00Z"),
                        "lastAppliedWallTime" : ISODate("2022-05-14T16:08:00.983Z"),
                        "lastDurableWallTime" : ISODate("2022-05-14T16:08:00.983Z"),
                        "syncSourceHost" : "10.42.2.72:27017",
                        "syncSourceId" : 1,
                        "infoMessage" : "",
                        "configVersion" : 370424,
                        "configTerm" : 3,
                        "self" : true,
                        "lastHeartbeatMessage" : ""
                }

到主库写入一些数据

#切换baidu库
rs0:PRIMARY> use baidu;
switched to db baidu

#造
rs0:PRIMARY> for(let i=0;i<30;i++){ db.user.insert({_id:i,name:'公路车_'+i,age:10+i});}
WriteResult({ "nInserted" : 1 })
use baidu;

for(let i=0;i<30;i++){ db.user.insert({_id:i,name:'公路车_'+i,age:10+i});}

登录从库查看

rs0:SECONDARY> show tables;
user
rs0:SECONDARY> db.user.find();
{ "_id" : 0, "name" : "公路车_0", "age" : 10 }
{ "_id" : 1, "name" : "公路车_1", "age" : 11 }
{ "_id" : 3, "name" : "公路车_3", "age" : 13 }
{ "_id" : 23, "name" : "公路车_23", "age" : 33 }
{ "_id" : 7, "name" : "公路车_7", "age" : 17 }

注意如果版本问题某些版本需要从执行以下语句从库才能读

从库写需要执行(rs.slaveOk)
rs0:SECONDARY> rs.slaveOk();
WARNING: slaveOk() is deprecated and may be removed in the next major release. Please use secondaryOk() instead.

rs0:SECONDARY> db.user.find();
{ "_id" : 0, "name" : "公路车_0", "age" : 10 }
{ "_id" : 1, "name" : "公路车_1", "age" : 11 }
{ "_id" : 5, "name" : "公路车_5", "age" : 15 }
# 查看有30条数据
rs0:SECONDARY> db.user.count();
30

代码连接


mongodb://ip:port,IP2:port,IP3:port/库名?/reslicaSet=rs0
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-18 17:42:19  更:2022-05-18 17:45:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:52:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码