- 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
部署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
验证哨兵启动

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!