kubernetes环境部署单节点redis数据库的方法

kubernetes部署redis数据库(单节点)

redis简介

Redis 是我们常用的非关系型数据库,在项目开发、测试、部署到生成环境时,经常需要部署一套 Redis 来对数据进行缓存。这里介绍下如何在 Kubernetes 环境中部署用于开发、测试的环境的 Redis 数据库,当然,部署的是单节点模式,并非用于生产环境的主从、哨兵或集群模式。单节点的 Redis 部署简单,且配置存活探针,能保证快速检测 Redis 是否可用,当不可用时快速进行重启。

redis 参数配置

在使用 Kubernetes 部署应用后,一般会习惯与将应用的配置文件外置,用 ConfigMap 存储,然后挂载进入镜像内部。这样,只要修改 ConfigMap 里面的配置,再重启应用就能很方便就能够使应用重新加载新的配置,很方便。

部署redis

创建configmap存储redis配置文件

redis-config.yaml

kind: ConfigMap
apiVersion: v1
metadata:
 name: redis-config
 namespace: zisefeizhu
 labels:
 app: redis
data:
 redis.conf: |-
 dir /data
 port 6379
 bind 0.0.0.0
 appendonly yes
 protected-mode no
 requirepass zisefeizhu
 pidfile /data/redis-6379.pid

Redis 数据存储

Kubernetes 部署的应用一般都是无状态应用,部署后下次重启很可能会漂移到不同节点上,所以不能使用节点上的本地存储,而是使用网络存储对应用数据持久化,PV 和 PVC 是 Kubernetes 用于与储空关联的资源,可与不同的存储驱动建立连接,存储应用数据,所以接下来我们要创建 Kubernetes PV、PVC 资源。

请参考:https://www.jb51.net/article/190491.htm

创建 Deployment 部署 Redis

创建用于 Kubernetes Deployment 来配置部署 Redis 的参数,需要配置 Redis 的镜像地址、名称、版本号,还要配置其 CPU 与 Memory 资源的占用,配置探针监测应用可用性,配置 Volume 挂载之前创建的 PV、PVC、ConfigMap 资源等等,内容如下:
redis-deployment.yaml

---
apiVersion: v1
kind: Service
metadata:
 name: redis
 labels:
 app: redis
spec:
 type: ClusterIP
 ports:
 - name: redis
  port: 6379
 selector:
 app: redis
---
apiVersion: apps/v1
kind: Deployment
metadata:
 name: redis
 namespace: production-pppharmapack
 labels:
 app: redis
spec:
 replicas: 1
 selector:
 matchLabels:
  app: redis
 template:
 metadata:
  labels:
  app: redis
 spec:
  # 进行初始化操作,修改系统配置,解决 Redis 启动时提示的警告信息
  initContainers:
  - name: system-init
   image: busybox:1.32
   imagePullPolicy: IfNotPresent
   command:
   - "sh"
   - "-c"
   - "echo 2048 > /proc/sys/net/core/somaxconn && echo never > /sys/kernel/mm/transparent_hugepage/enabled"
   securityContext:
   privileged: true
   runAsUser: 0
   volumeMounts:
   - name: sys
   mountPath: /sys
  containers:
  - name: redis
   image: redis:5.0.8
   command:
   - "sh"
   - "-c"
   - "redis-server /usr/local/etc/redis/redis.conf"
   ports:
   - containerPort: 6379
   resources:
   limits:
    cpu: 1000m
    memory: 1024Mi
   requests:
    cpu: 1000m
    memory: 1024Mi
   livenessProbe:
   tcpSocket:
    port: 6379
   initialDelaySeconds: 300
   timeoutSeconds: 1
   periodSeconds: 10
   successThreshold: 1
   failureThreshold: 3
   readinessProbe:
   tcpSocket:
    port: 6379
   initialDelaySeconds: 5
   timeoutSeconds: 1
   periodSeconds: 10
   successThreshold: 1
   failureThreshold: 3
   volumeMounts:
   - name: data
    mountPath: /data
   - name: config
    mountPath: /usr/local/etc/redis/redis.conf
    subPath: redis.conf
  volumes:
  - name: data
   persistentVolumeClaim:
   claimName: zisefeizhu
  - name: config
   configMap:
   name: redis-config
  - name: sys
   hostPath:
   path: /sys

测试redis是否可以正常使用

# ctl get pod -n production-pppharmapack | grep redis
redis-7768dc9c56-4kp8l     1/1  Running 0   8m43s
ctl exec -it redis-7768dc9c56-4kp8l -n production-pppharmapack -- /bin/sh
# redis-cli
127.0.0.1:6379> auth zisefeizhu
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "zisefeizhu"

到此这篇关于kubernetes环境部署单节点redis数据库的方法的文章就介绍到这了,更多相关kubernetes部署redis数据库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Linux下Redis的安装和部署

    一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string.list.set.zset和hash.这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作.在此基础上,Redis支持各种不同方式的排序. 和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到

  • Windows环境部署Redis集群

    一.准备文件 1.下载Redis for windows 的最新版本 下载地址:https://github.com/MSOpenTech/redis/releases 安装到 c:\Redis 目录下(Redis-x64-3.2.100.msi <Windows服务版>) 2.下载 RubyInstaller 下载地址:http://rubyinstaller.org/downloads/ 安装时,勾选:(所使用版本rubyinstaller-2.3.1-x64.exe) Install T

  • PHP的Laravel框架结合MySQL与Redis数据库的使用部署

    相对于熟读官方文档,更重要的是要把框架环境搭起来. 零.环境介绍 操作系统:centOS 数据库: mysql 5.6 (阿里云RDS) PHP 5.4.4 (>=5.4即可) Laravel 5.0 一.安装LNMP 在安装Laravel之前,需要把Linux + Nginx + Mysql + Php的环境搭建好.具体的搭建步骤这里就不再详述了. P.S. Linux阿里云已经自带了,本文使用的是centOS 6.5 64位的ECS 关于Nginx和Apache的选择看自己喜好,本文使用的是

  • 如何用docker部署redis cluster的方法

    前言 由于本人是个docker控,不喜欢安装各种环境,而且安装redis-trib也有点繁琐,索性用docker来做redis cluster. 本文用的是伪集群,真正的集群放到不同的机器即可.端口是7001-7006. 工作目录: /data/redis 创建文件夹 首先创建一堆对应端口的文件夹,下面是脚本 create.sh for i in `seq 7001 7006` do mkdir -p ${i}/data done 添加执行权限并执行 chmod 777 create.sh ./

  • linux环境部署及docker安装redis的方法

    安装步骤 1. 安装Redis 通过docker search redis和docker pull redis下载redis镜像 2. 新建挂载配置文件夹 新建data和conf两个文件夹,位置随意. mkdir -p /root/docker/redis/data mkdir -p /root/docker/redis/conf 注:因为 redis 默认配置你会发现只能够本地连接,不能进行远程访问,使用 Redis Desktop Manager连接都会报错,因此需要手动挂载 redis 配

  • kubernetes环境部署单节点redis数据库的方法

    kubernetes部署redis数据库(单节点) redis简介 Redis 是我们常用的非关系型数据库,在项目开发.测试.部署到生成环境时,经常需要部署一套 Redis 来对数据进行缓存.这里介绍下如何在 Kubernetes 环境中部署用于开发.测试的环境的 Redis 数据库,当然,部署的是单节点模式,并非用于生产环境的主从.哨兵或集群模式.单节点的 Redis 部署简单,且配置存活探针,能保证快速检测 Redis 是否可用,当不可用时快速进行重启. redis 参数配置 在使用 Kub

  • SpringBoot 整合Redis 数据库的方法

    Redis简介 Redis(官网: https://redis.io )是一个基于内存的日志型可持久化的缓存数据库,保存形式为key-value格式,Redis完全免费开源,它使用ANSI C语言编写.与其他的key - value缓存产品一样,Redis具有以下三个特点. • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用: • Redis不仅支持简单的key-value类型数据,同时还提供字符串.链表.集合.有序集合和哈希等数据结构的存储: • R

  • php操作redis数据库常见方法实例总结

    本文实例讲述了php操作redis数据库常见方法.分享给大家供大家参考,具体如下: 一.安装php_redis扩展,用以操作redis http://pecl.php.net/package/redis 选择自已系统php版本对应的扩展. 二.redis连接与验证 <?php //创建一个redis客户端 $redis = new Redis(); //连接redis服务,指定主机,端口,和超时时间 $redis->connect('127.0.0.1', 6379, 60); //进行密码验

  • Linux手动部署远程的mysql数据库的方法详解

    一.安装mysql 运行以下命令更新YUM源. rpm -Uvh  http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm 运行以下命令安装MySQL. yum -y install mysql-community-server 运行以下命令查看MySQL版本号. mysql -V 返回结果如下,表示MySQL安装成功. mysql  Ver 14.14 Distrib 5.7.31, for Linux (x86_

  • Golang连接Redis数据库的方法

    Golang连接Redis数据库 golang连接数据库,这里博主推荐使用go-redis这个库,理由很简单(连接数据库的操作类似在数据库里面输入命令) go-redis的安装方式 go get -v https://github.com/go-redis/redis -v小v,是输出过程.一般情况下不带-v什么反馈都看不到. 连接redis的方式 package ... import ( "github.com/go-redis/redis" ) func main() { clie

  • IDEA版使用Java操作Redis数据库的方法

    首先 下载 jedis.jar包 然后再 工程设置里面找到Libraries,点击+.添加下载好的jedis.jar包.点击OK退出即可 创建Java_Control_Redis类 测试链接 package ccit.redis; import redis.clients.jedis.Jedis; public class Java_Control_Redis { public static void main(String[] args) { //连接本地的 Redis 服务 Jedis je

  • Go语言操作redis数据库的方法

    先上命令速查网站,菜鸟yydshttps://www.runoob.com/redis/redis-strings.html操作redis的包是go-redis/redis官方文档 https://redis.uptrace.dev/guide/github https://github.com/go-redis/redis 创建项目创建test文件夹创建 Redis_test.go 文件直接上代码,代码解释全写在注释里 package test import ( "context"

  • CentOS 8.2部署CouchDB 3.3数据库的方法

    CouchDB是一个开源的,面向文档的NoSQL数据库.在本文中,您将学习如何在CentOS 8上安装Apache CouchDB. 什么是Apache CouchDB? CouchDB是由Apache Software Foundation开发的开源数据库管理系统.它是在ErLang中开发的NoSQL文档存储数据库. CouchDB使用多种格式和协议来存储,传输和处理其数据,它使用JSON(JavaScript对象表示法)存储数据,使用MapReduce将JavaScript作为查询语言以及A

  • Jedis操作Redis数据库的方法

    本文实例为大家分享了Jedis操作Redis数据库的具体代码,供大家参考,具体内容如下 关于NoSQL的介绍不写了,直接上代码 第一步导包,不多讲 基本操作: package demo; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class Demo

  • 阿里云esc服务器Docker部署单节点Mysql的讲解

    1.下载加速版msyql   docker pull hub.c.163.com/library/mysql:5.7 2.更名 docker tag hub.c.163.com/library/mysql:5.7 mysql:5.7 3.启动 docker run -it --rm --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql 4.设置mysql远程登录 docker exec -it mysql bash my

随机推荐