k8s 部署redis哨兵模式

本文介绍了如何在Kubernetes上部署RedisSentinel,通过创建StatefulSet和Deployment,配置主从节点及Sentinel监控,以确保Redis集群的高可用性。包括创建Redis和Sentinel配置文件,以及连接客户端注意事项。
摘要由CSDN通过智能技术生成

部署 Redis Sentinel (哨兵) 模式在 Kubernetes 上,主要目的是为了实现高可用性。Redis Sentinel 负责监控 Redis 主从节点的运行状况,自动执行故障转移,确保系统的持续可用性。在 Kubernetes 环境中,这意味着我们需要配置一组 Redis 实例和相应的 Sentinel 实例。以下是一个简化的部署过程。

步骤 1: 创建 Redis 主节点和从节点

首先,创建一个 Redis 主节点和两个从节点的 StatefulSet。在实际部署中,你可能需要根据具体需求调整副本数量和配置。

创建一个名为 redis-cluster.yaml 的文件,包含主节点和从节点的配置:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: redis
spec:
  serviceName: redis
  replicas: 3
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
      - name: redis
        image: redis:6.0-alpine
        ports:
        - containerPort: 6379
        command: ["/bin/sh"]
        args: 
        - "-c"
        - |
          if [ $(hostname) = "redis-0" ]; then
            redis-server --port 6379 --protected-mode no --replica-announce-ip $(hostname).redis
          else
            redis-server --port 6379 --protected-mode no --replicaof redis-0.redis 6379 --replica-announce-ip $(hostname).redis
          fi
  volumeClaimTemplates:
  - metadata:
      name: redis-data
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi

这段配置定义了一个由三个节点组成的 Redis 集群,其中 redis-0 作为主节点,其余节点作为从节点。

步骤 2: 部署 Redis Sentinel

创建一个名为 redis-sentinel.yaml 的文件,配置 Sentinel 以监控 Redis 集群:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-sentinel
spec:
  replicas: 3
  selector:
    matchLabels:
      app: redis-sentinel
  template:
    metadata:
      labels:
        app: redis-sentinel
    spec:
      containers:
      - name: redis-sentinel
        image: redis:6.0-alpine
        ports:
        - containerPort: 26379
        command: [ "redis-sentinel" ]
        args: ["/etc/redis/sentinel.conf"]
        volumeMounts:
        - name: sentinel-conf
          mountPath: /etc/redis
      volumes:
      - name: sentinel-conf
        configMap:
          name: sentinel-config
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: sentinel-config
data:
  sentinel.conf: |
    sentinel monitor mymaster redis-0.redis 6379 2
    sentinel down-after-milliseconds mymaster 5000
    sentinel failover-timeout mymaster 60000
    sentinel parallel-syncs mymaster 1

这个配置定义了三个 Sentinel 实例,它们通过 ConfigMap 加载配置。Sentinel 监控名为 mymaster 的主节点,并在主节点不可达时自动选举新的主节点。

步骤 3: 应用配置

应用上述配置文件来部署 Redis 集群和 Sentinel:

kubectl apply -f redis-cluster.yaml
kubectl apply -f redis-sentinel.yaml

步骤 4: 连接到 Redis

其他服务可以通过 Sentinel 来连接 Redis 集群,以确保总是连接到当前的主节点。客户端连接时需要指定 Sentinel 的服务地址和端口,以及监控的主节点名称(例如 mymaster)。

注意

  • 这是一个基本示例,仅适用于开发和测试环境。生产环境需要考虑更多的配置和安全措施,如持久化、网络策略、资源限制等。
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Linux上部署Redis哨兵模式,可以按照以下步骤进行操作: 1. 首先搭建Redis主从模式。可以参考中的文章,按照说明进行配置和搭建。 2. 创建sentinel.conf文件,可以使用以下命令在当前目录下创建: ``` touch sentinel.conf ``` 3. 在sentinel.conf文件中进行哨兵的配置。具体的配置项可以参考中的说明。 4. 启动Redis哨兵服务。可以使用以下命令启动哨兵: ``` redis-sentinel /path/to/sentinel.conf ``` 5. 验证Redis哨兵模式是否正常工作。可以使用以下命令连接到Redis主服务器,并通过发送INFO命令来查看哨兵的状态: ``` redis-cli -h <主服务器IP> -p <主服务器端口> INFO Sentinel ``` 请注意,以上步骤仅为大致说明,具体的操作和配置可能会因环境和需求而有所不同。建议参考中提供的详细文档,并根据自己的实际情况进行配置部署。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Linux下Redis哨兵集群模式搭建详解(1主2从+3哨兵)](https://blog.csdn.net/weixin_42925623/article/details/129192097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [linux 运维工程师 在一台centos7服务器上面部署 redis 哨兵集群](https://download.csdn.net/download/feiwenlsy/86523438)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [11. linux环境redis哨兵模式的搭建](https://blog.csdn.net/hznb_369/article/details/123765814)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值