您的位置:首页 > 房产 > 家装 > k8s用StatefulSet部署redis

k8s用StatefulSet部署redis

2024/10/6 5:59:33 来源:https://blog.csdn.net/Hai990218/article/details/142152596  浏览:    关键词: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: {}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com