当前位置: 首页 > news >正文

k8s用StatefulSet部署redis

redis-config.yaml  (配置文件)

apiVersion: v1
kind: ConfigMap
metadata:name: redis-config
data:redis.conf: |# Redis general configuration​    bind 0.0.0.0
​    protected-mode no
​    port 6379
​    dir /data
​    appendonly yessentinel.conf: |sentinel monitor mymaster redis-master 6379 2sentinel down-after-milliseconds mymaster 5000sentinel failover-timeout mymaster 10000sentinel parallel-syncs mymaster 1

redis-master-statefulset.yaml (主)

apiVersion: apps/v1
kind: StatefulSet
metadata:name: redis-master
spec:serviceName: "redis-master"replicas: 1selector:matchLabels:app: redisrole: mastertemplate:metadata:labels:app: redisrole: masterspec:containers:- name: redisimage: redis:5.0.7command: ["redis-server", "/data/redis.conf"]volumeMounts:- name: redis-datamountPath: /data- name: configmountPath: /data/redis.confsubPath: redis.confvolumes:- name: configconfigMap:name: redis-configvolumeClaimTemplates:- metadata:name: redis-dataspec:storageClassName: "nfs-client-storageclass"accessModes: [ "ReadWriteOnce" ]resources:requests:storage: 1Gi

redis-slave-statefulset.yaml (从)

apiVersion: apps/v1
kind: StatefulSet
metadata:name: redis-slave
spec:serviceName: "redis-slave"replicas: 2selector:matchLabels:app: redisrole: slavetemplate:metadata:labels:app: redisrole: slavespec:containers:- name: redisimage: redis:5.0.7command: ["redis-server", "/data/redis.conf", "--slaveof", "redis-master", "6379"]volumeMounts:- name: redis-datamountPath: /data- name: configmountPath: /data/redis.confsubPath: redis.confvolumes:- name: configconfigMap:name: redis-configvolumeClaimTemplates:- metadata:name: redis-dataspec:accessModes: [ "ReadWriteOnce" ]storageClassName: "nfs-client-storageclass"resources:requests:storage: 1Gi

redis-service.yaml (端口)

apiVersion: v1
kind: Service
metadata:name: redis-master
spec:ports:- port: 6379targetPort: 6379selector:app: redisrole: master---apiVersion: v1
kind: Service
metadata:name: redis-slave
spec:ports:- port: 6379targetPort: 6379selector:app: redisrole: slave---apiVersion: v1
kind: Service
metadata:name: redis-sentinel
spec:ports:- port: 26379targetPort: 26379selector:app: redisrole: sentinel

 redis-sentinel-statefulset.yaml (哨兵)

apiVersion: apps/v1
kind: Deployment
metadata:name: redis-sentinel
spec:replicas: 3selector:matchLabels:app: redisrole: sentineltemplate:metadata:labels:app: redisrole: sentinelspec:# 使用 initContainer 复制并修改权限initContainers:- name: copy-configimage: busybox:1.27command: ['sh', '-c', 'cp /data/sentinel.conf /tmp/sentinel.conf && chmod 644 /tmp/sentinel.conf']volumeMounts:- name: configmountPath: /data- name: sentinel-configmountPath: /tmp# Redis Sentinel 容器containers:- name: sentinelimage: redis:5.0.7command: ["redis-sentinel", "/tmp/sentinel.conf"]volumeMounts:- name: sentinel-configmountPath: /tmp# 卷定义volumes:- name: configconfigMap:name: redis-config- name: sentinel-configemptyDir: {}

http://www.lryc.cn/news/438962.html

相关文章:

  • flink on k8s
  • Java集合(八股)
  • python+adb
  • AIGC文本生成
  • 系统架构设计师教程 第5章 5.4 软件测试 笔记
  • ASPICE评估全流程解析:汽车软件开发组织能力的系统化评估
  • 合并RAR分卷压缩包
  • 重生奇迹MU 想去哪就去哪玩 轻松玩转翅膀属性
  • Lnux-gcc/g++使用
  • 用Python创建一个键盘输入捕获程序
  • Mybatis中Like模糊查询三种处理方式
  • STL值list
  • 结构体的内存对齐
  • Web 创建设计
  • 2024年9月16日历史上的今天大事件早读
  • 记录工作中遇到的问题(持续更新~)
  • 六西格玛咨询:石油机械制造企业的成本控制与优化专家
  • Redis基础数据结构之 quicklist 和 listpack 源码解读
  • 深入理解Go语言的方法定义与使用
  • 堆排序,快速排序
  • 系统架构师---数据库设计的四个阶段
  • MySQL_简介及安装、配置、卸载(超详细)
  • 大数据处理技术:分布式文件系统HDFS
  • 组合数(模板)
  • 时序数据库 TDengine 的入门体验和操作记录
  • Qt-QPushButton按钮类控件(22)
  • 镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态
  • 蒸!--数据在内存中的存储
  • 利用AI增强现实开发:基于CoreML的深度学习图像场景识别实战教程
  • 每个企业都需要 (但未使用) 的 BYOD 安全解决方案