记一次K8S部署redis过程(从集群到单机)

本文详述了一次在Kubernetes(K8S)环境中搭建Redis服务的过程,从创建3主3从的集群,到因需求变化转而部署单机Redis。内容涵盖制作Redis镜像、配置文件准备、StatefulSet配置、集群初始化与验证,以及单机Redis的部署。在集群部署中,使用了StatefulSet实现数据持久化,并通过redis-trib.rb创建和修复集群。
摘要由CSDN通过智能技术生成

前言

任务:搭建测试环境的redis服务。网上翻阅各类资料后,决定搭建一个3主3从的集群环境。后因代码使用redis集群需要更改,又重新部署单机redis。

redis介绍:数据完全保存在内存中,速度非常快,可使用磁盘进行持久化。

redis相关词汇:缓存穿透、缓存击穿和缓存雪崩。

部署步骤梳理

  1. 制作redis镜像(需要使用redis-trib.rb集群命令);
  2. redis配置文件和集群修复脚本准备
  3. StatefulSet配置文件准备(数据持久使用动态供给)
  4. 初始化redis集群
  5. 验证redis集群
  6. 部署单机redis

制作redis镜像

  1. redis官方下载二进制安装包Download | Redis
  2. 编译安装后得到文件redis-trib.rb;
  3. docker启动一个redis服务:docker run --name redis --restart=always -d redis:4.0.11
  4. 将redis-trib.rb复制到镜像:docker cp redis-trib.rb redis:/usr/local/bin
  5. 进入容器后做以下操作(安装redis-trib.rb命令执行环境ruby):
    1. echo 'deb http://mirrors.aliyun.com/debian/ buster main contrib non-free' > /etc/apt/sources.list
    2. 执行:apt-get update(此处遇到报错(NO_PUBKEY 648ACFD622F3D138 NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY DCC9EFBF77E11517)
    3. apt-get install software-properties-common dirmngr -y --allow-unauthenticated
    4. apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 0E98404D386FA1D9 DCC9EFBF77E11517 (keys就是上面报错的NO_PUBKEY)
    5. 再次执行apt-get update
    6. 安装ruby并使用gem安装redis
    7. apt-get install -y ruby
    8. apt-get install -y rubygems
    9. apt-get clean all
    10. gem install redis
    11. apt-get install dnsutils -y
  6. 使用docker commit生成新镜像:docker commit -a "author" -m "redis-cluster-image" 365d2c234ab9 redis-cluster:1.0

redis配置文件和集群修复脚本准备

vim redis-configmap.yaml

 kubectl apply -f redis-configmap.yaml

apiVersion: v1

kind: ConfigMap

metadata:

  name: redis-cluster

  namespace: testing

data:

  fix-ip.sh: |

    #!/bin/sh

    CLUSTER_CONFIG="/data/nodes.conf"

    if [ -f ${CLUSTER_CONFIG} ]; then

      if [ -z "${POD_IP}" ]; then

        echo "Unable to determine Pod IP address!"

        exit 1

      fi

      echo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值