首页 > 数据库 >k8s上部署redis哨兵记录

k8s上部署redis哨兵记录

时间:2022-12-07 15:25:34浏览次数:47  
标签:k8s name redis 哨兵 master test kuboard cn

- k8s界面使用kuboard
- 部署使用1主1备1哨兵
- 使用思路为master节点部署后,slave节点使用master的serviceip与master节点进行互通,哨兵进程与master、slave使用service ip互通
- 参考链接  [bitnami/redis-sentinel - Docker Image | Docker Hub](https://hub.docker.com/r/bitnami/redis-sentinel)
- 连接中是有docker-compose启动的配置文件,未指明在k8s上如何使用,因此写了本操作指导【yaml文件内容在kuboard界面生成】

部署master节点

---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: test-master
  name: test-master
  namespace: company-sdwan
  resourceVersion: '91595697'
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: cloud
      k8s.kuboard.cn/name: test-master
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s.kuboard.cn/layer: cloud
        k8s.kuboard.cn/name: test-master
    spec:
      containers:
        - env:
            - name: REDIS_REPLICATION_MODE
              value: master
            - name: REDIS_PASSWORD
              value: redis@123
          image: 'bitnami/redis:6.2.6'
          imagePullPolicy: IfNotPresent
          name: test-master
          ports:
            - containerPort: 6379
              name: master
              protocol: TCP
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

---
apiVersion: v1
kind: Service
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: test-master
  name: test-master
  namespace: company-sdwan
  resourceVersion: '91595685'
spec:
  clusterIP: 10.107.118.111
  ports:
    - name: master
      port: 6379
      protocol: TCP
      targetPort: 6379
  selector:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: test-master
  sessionAffinity: None
  type: ClusterIP
# 部署完成master后需要记录service地址,用于slave和sentinel访问

部署slave节点

---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: test-slave
  name: test-slave
  namespace: company-sdwan
  resourceVersion: '91596734'
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: cloud
      k8s.kuboard.cn/name: test-slave
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s.kuboard.cn/layer: cloud
        k8s.kuboard.cn/name: test-slave
    spec:
      containers:
        - env:
            - name: REDIS_REPLICATION_MODE
              value: slave
            - name: REDIS_MASTER_HOST
              value: 10.107.118.111
            - name: REDIS_MASTER_PASSWORD
              value: redis@123
            - name: REDIS_PASSWORD
              value: redis@123
          image: 'bitnami/redis:6.2.6'
          imagePullPolicy: IfNotPresent
          name: test-slave
          ports:
            - containerPort: 6379
              name: slave
              protocol: TCP
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

---
apiVersion: v1
kind: Service
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: test-slave
  name: test-slave
  namespace: company-sdwan
  resourceVersion: '91596719'
spec:
  clusterIP: 10.101.145.203
  ports:
    - name: slave
      port: 6379
      protocol: TCP
      targetPort: 6379
  selector:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: test-slave
  sessionAffinity: None
  type: ClusterIP

部署哨兵节点

---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: test-sentinel
  name: test-sentinel
  namespace: company-sdwan
  resourceVersion: '91598109'
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: cloud
      k8s.kuboard.cn/name: test-sentinel
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s.kuboard.cn/layer: cloud
        k8s.kuboard.cn/name: test-sentinel
    spec:
      containers:
        - env:
            - name: REDIS_MASTER_HOST
              value: 10.107.118.111
            - name: REDIS_MASTER_PORT_NUMBER
              value: '6379'
            - name: REDIS_MASTER_PASSWORD
              value: redis@123
            - name: REDIS_SENTINEL_PORT_NUMBER
              value: '26379'
            - name: REDIS_SENTINEL_QUORUM
              value: '1'
          image: 'bitnami/redis-sentinel:6.2.6'
          imagePullPolicy: IfNotPresent
          name: test-sentinel
          ports:
            - containerPort: 26379
              name: sentinel
              protocol: TCP
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

---
apiVersion: v1
kind: Service
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: test-sentinel
  name: test-sentinel
  namespace: company-sdwan
  resourceVersion: '91598112'
spec:
  clusterIP: 10.97.199.238
  ports:
    - name: sentinel
      port: 26379
      protocol: TCP
      targetPort: 26379
  selector:
    k8s.kuboard.cn/layer: cloud
    k8s.kuboard.cn/name: test-sentinel
  sessionAffinity: None
  type: ClusterIP

验证哨兵启动

图片alt

标签:k8s,name,redis,哨兵,master,test,kuboard,cn
From: https://www.cnblogs.com/xieqisheng666/p/16963130.html

相关文章

  • k8s更新所有证书
    k8s更新所有证书kubeadmalphacertsrenewall更新单个服务kubeadmalphacertsrenew服务名称(apiserver)重新启动systemctlrestartkubelet......
  • k8s集群搭建详细教程【1master2node】
    一、集群分类一主多从:一台master多个多个Node节点多主多从:多个master多个node节点二、安装方式minikube:快速安装搭建单节点k8s工具kubeadm:快速搭建k8s集群的工......
  • k8s学习笔记
    k8s基本概念CNI网络插件Flannelk8s常用命令apply与replace的区别将文件复制到容器或从容器中复制出来kubectl命令操作pod查看容器日志操作标签(labels)......
  • 最近沉迷Redis网络模型,无法自拔!终于知道Redis为啥这么快了
    1.用户空间和内核态空间1.1为什么要区分用户和内核服务器大多都采用Linux系统,这里我们以Linux为例来讲解:ubuntu和Centos都是Linux的发行版,发行版可以看成对......
  • session redis共享
    参考:Redis实现分布式Session-张小凯的博客使用Redis实现session共享......
  • 文盘Rust -- r2d2 实现redis连接池
    作者:贾世闻我们在开发应用后端系统的时候经常要和各种数据库、缓存等资源打交道。这一期,我们聊聊如何访问redis并将资源池化。在一个应用后端程序访问redis主要要做的工......
  • 配置redis遇到Could not resolve placeholder 'redis.maxIdle' in string value "${re
    这个错误是读取不到我们自己redis.properties文件,因为我们在配置数据库链接时已经配置过一次  “Spring容器是采用反射扫描的发现机制,通过标签的命名空间实例化实例,......
  • Redis 缓存使用问题
    缓存与数据一致性操作缓存和数据库时有三个问题需要考虑1.删除缓存还是更新缓存?更新缓存:每次更新数据库都更新缓存,无效写操作较多删除缓存:更新数据库时让缓存失效,查......
  • k8s外网访问
    教程来源通常情况下,kubernetes集群是内网环境,如果希望通过本地访问这个集群,怎么办呢?大家想到的是Kubeadm在初始化的时候会为管理员生成一个Kubeconfig文件,把它下载......
  • Redis学习笔记(持续更新)
    安装好redis以后命令redis-cli-h数据库ip地址-p6379本地的话ip和端口可省略set字段名字段内容例setnamezhangsan>OKget字段名例getname>'zhangsan'keys......