当前位置: 首页 > news >正文

博客网站登录入口日本shopify独立站

博客网站登录入口,日本shopify独立站,wordpress设置smtp,太原做网站找谁Kubernetes上部署redis 环境准备创建命名空间 准备PV和PVC安装nfs准备PV准备PVC 部署redis创建redis的配置文件部署脚本挂载数据目录挂载配置文件通过指定的配置文件启动redis 集群内部访问外部链接Redis 环境准备 首先你需要一个Kubernetes环境,可参考我写的文章&…

Kubernetes上部署redis

  • 环境准备
    • 创建命名空间
  • 准备PV和PVC
    • 安装nfs
    • 准备PV
    • 准备PVC
  • 部署redis
    • 创建redis的配置文件
    • 部署脚本
    • 挂载数据目录
    • 挂载配置文件
    • 通过指定的配置文件启动redis
  • 集群内部访问
  • 外部链接Redis

环境准备

首先你需要一个Kubernetes环境,可参考我写的文章:https://blog.csdn.net/m0_51510236/article/details/130842122

创建命名空间

我们可以选择以下两种方式创建命名空间,我此次创建的命名空间名字是deploy-test,可以更改,这里只做演示:

  • 命令直接创建
kubectl create namespace deploy-test
  • yaml创建(推荐)
apiVersion: v1
kind: Namespace
metadata:name: deploy-test
spec: {}
status: {}

准备PV和PVC

在我之前的一篇文章单中讲解了啥是PV和PVC:https://blog.csdn.net/m0_51510236/article/details/132482351

安装nfs

这篇文章直接使用,这次准备的和上次的一样是nfs来做存储,所以三台服务器都需要安装 nfs-utils

yum install -y nfs-utils

如图三台服务器都以完成安装:
在这里插入图片描述

然后我们在主服务器或nfs服务器上执行这两行命令:

mkdir -p /data/nfs/redis
cat >> /etc/exports << EOF
/data/nfs/redis *(rw,sync,no_root_squash)
EOF

这行命令是暴露 /data/nfs/redis 给nfs客户端访问的目录,用于redis数据和日志的存放目录,结下来我们需要开启nfs服务端,执行以下这行命令:

systemctl enable --now nfs-server

暴露后来查看暴露结果:

showmount -e nfs服务端地址

测试如图:
在这里插入图片描述

好的,接下来nfs就安装好了

准备PV

直接上yaml,可以根据提示内容修改:

apiVersion: v1
kind: PersistentVolume
metadata:name: deploy-redis-nfs-pv # PV的名字namespace: deploy-test # 命名空间
spec:capacity:storage: 1Gi # 申请的大小accessModes:- ReadWriteMany # 访问模式为多节点读写nfs:server: 192.168.1.160 # nfs服务器地址,注意修改为你自己的path: /data/nfs/redis # nfs的远程目录storageClassName: "nfs" # 存储类名字为nfs

创建结果显示:
在这里插入图片描述

准备PVC

直接上yaml,除了改一下名字其他的没啥好修改的:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: deploy-redis-nfs-pvc # pvc名字namespace: deploy-test # 命名空间
spec:accessModes:- ReadWriteMany # 多节点读写storageClassName: "nfs" # 存储类类型为nfsresources:requests:storage: 1Gi # 申请存储空间的大小volumeName: deploy-redis-nfs-pv # 对应上面的pv名字

查看pvc的创建:
在这里插入图片描述

查看它两的状态(kubectl get pv,pvc -o wide -n deploy-test):
在这里插入图片描述

部署redis

创建redis的配置文件

首先我们先规定好配置文件内容(注意修改你的密码):

# 关闭保护模式
protected-mode no# redis链接密码
requirepass redis# 日志级别
loglevel warning# 日志存放目录
logfile "/data/redis.log"# 数据文件目录
dir /data
dbfilename dump.rdb# 数据库数量
databases 16# 保存数据库到数据文件
save 900 1
save 300 10
save 60 10000

注意将这个配置文件上传到服务器:
在这里插入图片描述

然后我们为这个文件创建一个configmap:

kubectl create configmap deploy-redis-config -n deploy-test --from-file=redis.conf --dry-run=client -o yaml

上面这行命令会根据 redis.conf 生成一个yaml文件:
在这里插入图片描述

所以创建这个configmap的yaml文件为:

apiVersion: v1
data:redis.conf: |# 关闭保护模式protected-mode no# redis链接密码requirepass redis# 日志级别loglevel warning# 日志存放目录logfile "/data/redis.log"# 数据文件目录dir /datadbfilename dump.rdb# 数据库数量databases 16# 保存数据库到数据文件save 900 1save 300 10save 60 10000
kind: ConfigMap
metadata:name: deploy-redis-confignamespace: deploy-test

创建configmap如图:
在这里插入图片描述

部署脚本

apiVersion: v1
kind: Service
metadata:name: deploy-redis-svcnamespace: deploy-testlabels:app: redis
spec:ports:- port: 6379name: redistargetPort: 6379nodePort: 30379selector:app: redistype: NodePortsessionAffinity: ClientIP---apiVersion: apps/v1
kind: StatefulSet
metadata:name: deploy-redisnamespace: deploy-test
spec:selector:matchLabels:app: redis # 必须匹配 .spec.template.metadata.labelsserviceName: "deploy-redis-svc"replicas: 1template:metadata:labels:app: redis # 必须匹配 .spec.selector.matchLabelsspec:terminationGracePeriodSeconds: 10containers:- command:- "redis-server"- "/usr/local/etc/redis.conf"name: redisimage: redis:5.0.14ports:- containerPort: 6379name: redisvolumeMounts:- name: redis-datamountPath: /data- name: redis-configmountPath: /usr/local/etcreadOnly: truevolumes:- name: redis-datapersistentVolumeClaim:claimName: deploy-redis-nfs-pvc- name: redis-configconfigMap:name: deploy-redis-configitems:- key: redis.confpath: redis.conf

接下来讲解一下里面比较重要的脚本

挂载数据目录

StatefulSet.spec.template.spec.volumes 当中有那么一串代码:

      - name: redis-datapersistentVolumeClaim:claimName: deploy-redis-nfs-pvc

这串代码是要使用到 deploy-redis-nfs-pvc 这个pvc做数据存储,并给这个挂载取一个名字叫做 redis-data,然后在 StatefulSet.spec.template.spec.containers 有那么一串代码:

        - name: redis-datamountPath: /data

这串代码的意思是使用名为 redis-data 数据挂载,并把它挂在到pod的 /data 目录当中

挂载配置文件

StatefulSet.spec.template.spec.volumes 当中有那么一串代码:

      - name: redis-configconfigMap:name: deploy-redis-configitems:- key: redis.confpath: redis.conf

这串代码的意思是读取 deploy-redis-config 这个configmap并命名为 redis-config,然后获取里面的 redis.conf 配置文件,命名为 redis.conf,然后在 StatefulSet.spec.template.spec.containers 有那么一串代码:

        - name: redis-configmountPath: /usr/local/etcreadOnly: true

这串代码的意思是使用名为 redis-config 配置文件,并把它以只读的方式挂在到pod的 /usr/local/etc 当中

通过指定的配置文件启动redis

在 `StatefulSet.spec.template.spec.containers当中有这么一行代码:

      - command:- "redis-server"- "/usr/local/etc/redis.conf"

这行代码的意思是使用 /usr/local/etc/redis.conf 配置文件启动redis,这个配置文件是我们在configmap当中配置的,当我们执行部署的这个yaml之后,可以查看结果:
在这里插入图片描述

执行一下命令查看部署进度:

kubectl get all -o wide -n deploy-test

看到这个就代表部署完成了:
在这里插入图片描述

集群内部访问

StatefulSet应用的访问地址为:

<pod名称>.<service名称>.<命名空间名称>.svc.cluster.local

那么这次暴露的pod访问地址就是:

deploy-redis-0.deploy-redis-svc.deploy-test.svc.cluster.local

尝试解析验证一下:
在这里插入图片描述

外部链接Redis

我们可以直接使用 IntelliJ IDEA 或其他链接工具尝试链接:
在这里插入图片描述

显示链接成功(如果有密码注意输入密码):
在这里插入图片描述

并且操作也没问题:
在这里插入图片描述

我们来到数据目录,查看容器内的数据已经成功暴露到nfs的目录当中:
在这里插入图片描述到这里在Kubernetes上安装redis就已经完成了!

http://www.tj-hxxt.cn/news/66137.html

相关文章:

  • 西宁做网站哪家好优化大师官网下载
  • 山东建设委员会网站企业全网推广
  • 拉新推广平台有哪些seo推广技巧
  • 网易企业邮箱附件大小限制seo优化工作怎么样
  • 乐东黎族自治县住房建设局网站大概需要多少钱
  • 做家装家居网站建站合肥网络公司seo
  • 青岛网页制作设计营销seo是什么姓
  • 网站建设7个主要流程图百度推广总部电话
  • php网站建设教程 电子书软文代发
  • 短视频运营方案书范文郑州seo培训班
  • 已经备案的网站新增ip怎么做广州百度seo
  • 网站开发助理是干啥的百度一下生活更好
  • 哔哩哔哩免费网站观看免费外链网盘
  • 2022年互联网营销师如何报名seo是什么服务器
  • 制作网页方案南昌seo排名扣费
  • 网站建设与规划论文排名前50名免费的网站
  • 怎么介绍自己做的网站广东疫情最新通报
  • 青岛 生物类网站建设搜狗推广管家
  • 1688货源网一件代销网站优化价格
  • java做的视频网站合肥百度快速排名优化
  • 本地东莞网站建设标题关键词优化报价
  • 管理系统网站百度关键词流量查询
  • 公司网站主页图片青岛网站建设公司
  • 校园网站建设的维护百度关键词优化
  • 网站文章标题改了 百度快照多久能改西安seo推广优化
  • 响应网站建设百度指数是什么
  • 学校网站建设厂家百度 个人中心首页
  • 域名备案完了怎么做网站网站推广策划思路
  • 自己有域名怎么做免费网站推广公司哪家好
  • 网站费用标准镇江网站建设方案