一、概述
REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。
Redis有三种集群模式:主从模式,Sentinel(哨兵)模式,Cluster模式,这三种模式环境编排部署都会在本文章介绍与实战操作。
二、redis 主从模式编排部署实战操作
地址:https://artifacthub.io/packages/helm/bitnami/redis
1)下载chart 包
helm repo add bitnami https://charts.bitnami.com/bitnami
helm pull bitnami/redis --version 17.3.7
tar -xf redis-17.3.7.tgz
2)构建镜像
这里就不重新构建镜像了,只是把远程镜像tag一下,推到本地harbor仓库加速下载镜像。有不清楚怎么构建镜像的小伙伴,可以私信或者留言。
docker pull docker.io/bitnami/redis:7.0.5-debian-11-r7
# tag
docker tag docker.io/bitnami/redis:7.0.5-debian-11-r7 myharbor.com/bigdata/redis:7.0.5-debian-11-r7
# 推送镜像到本地harbor仓库
docker push myharbor.com/bigdata/redis:7.0.5-debian-11-r7
3)修改yaml编排
redis/templates/master/pv.yaml
新增pv.yaml文件,内容如下:
{
{
- range .Values.master.persistence.local }}
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: {
{
.name }}
labels:
name: {
{
.name }}
spec:
storageClassName: {
{
$.Values.master.persistence.storageClass }}
capacity:
storage: {
{
$.Values.master.persistence.size }}
accessModes:
- ReadWriteOnce
local:
path: {
{
.path }}
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- {
{
.host }}
---
{
{
- end }}
redis/templates/replicas/pv.yaml
新增pv.yaml文件,内容如下:
redis/templates/replicas/pv.yaml
新增pv.yaml文件,内容如下:
redis/values.yaml
global:
redis:
password: "123456"
...
image:
registry: myharbor.com
repository: bigdata/redis
tag: 7.0.5-debian-11-r7
master:
count: 1
persistence:
enabled: true
size: 8Gi
storageClass: "local-redis-storage"
local:
- name: redis-0
host: "local-168-182-110"
path: "/opt/bigdata/servers/redis/data/data1"
replica:
replicaCount: 2
persistence:
enabled: true
size: 8Gi
storageClass: "local-redis-storage"
local:
- name: redis-1
host: "local-168-182-111"
path: "/opt/bigdata/servers/redis/data/data1"
- name: redis-2
host: "local-168-182-112"
path: "/opt/bigdata/servers/redis/data/data1"
4)开始部署
# 创建存储目录
mkdir /opt/bigdata/servers/redis/data/data1
# 先检查语法
helm lint ./redis
# 开始安装
helm install redis ./redis -n redis --create-namespace
NOTES
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: redis
CHART VERSION: 17.3.7
APP VERSION: 7.0.5
** Please be patient while the chart is being deployed **
Redis® can be accessed on the following DNS names from within your cluster:
redis-master.redis.svc.cluster.local for read/write operations (port 6379)
redis-replicas.redis.svc.cluster.local for read-only operati