Kubernetes(k8s)上部署redis5.0.14(下)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Kubernetes(k8s)上部署redis5.0.14(下)

部署脚本

apiVersion: v1
kind: Service
metadata:
  name: deploy-redis-svc
  namespace: deploy-test
  labels:
    app: redis
spec:
  ports:
  - port: 6379
    name: redis
    targetPort: 6379
    nodePort: 30379
  selector:
    app: redis
  type: NodePort
  sessionAffinity: ClientIP
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: deploy-redis
  namespace: deploy-test
spec:
  selector:
    matchLabels:
      app: redis # 必须匹配 .spec.template.metadata.labels
  serviceName: "deploy-redis-svc"
  replicas: 1
  template:
    metadata:
      labels:
        app: redis # 必须匹配 .spec.selector.matchLabels
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - command:
        - "redis-server"
        - "/usr/local/etc/redis.conf"
        name: redis
        image: redis:5.0.14
        ports:
        - containerPort: 6379
          name: redis
        volumeMounts:
        - name: redis-data
          mountPath: /data
        - name: redis-config
          mountPath: /usr/local/etc
          readOnly: true
      volumes:
      - name: redis-data
        persistentVolumeClaim:
          claimName: deploy-redis-nfs-pvc
      - name: redis-config
        configMap:
          name: deploy-redis-config
          items:
          - key: redis.conf
            path: redis.conf

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

挂载数据目录

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

- name: redis-data
        persistentVolumeClaim:
          claimName: deploy-redis-nfs-pvc

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

- name: redis-data
          mountPath: /data

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

挂载配置文件

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

- name: redis-config
        configMap:
          name: deploy-redis-config
          items:
          - key: redis.conf
            path: redis.conf

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

- name: redis-config
          mountPath: /usr/local/etc
          readOnly: 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就已经完成了!

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
打赏
0
0
0
0
42
分享
相关文章
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
396 33
Docker 部署 Redis
在使用 Docker 部署 Redis 时,为实现数据持久化,需正确挂载容器内的数据目录到宿主机。推荐命令如下: ``` docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis ``` 该命令将宿主机的 `/mnt/data/redis` 目录挂载到容器的 `/data` 目录,确保 Redis 数据持久化。此路径更通用,适合大多数场景。避免使用不匹配的挂载路径,如 `/var/lib/redis` 或 `/mnt/data/redis` 到非默认目录,以防止数据无法正确持久化。
ACK Gateway with AI Extension:面向Kubernetes大模型推理的智能路由实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with AI Extension组件,在Kubernetes环境中为大语言模型(LLM)推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复
阿里云ACK备份中心提供一站式容器化业务灾备及迁移方案,减少数据丢失风险,确保业务稳定运行。
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
飞轮科技推出了 Doris 的 Kubernetes Operator 开源项目(简称:Doris Operator),并捐赠给 Apache 基金会。该工具集成了原生 Kubernetes 资源的复杂管理能力,并融合了 Doris 组件间的分布式协同、用户集群形态的按需定制等经验,为用户提供了一个更简洁、高效、易用的容器化部署方案。
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
Kubernetes(k8s)和Docker Compose本质区别
理解它们的区别和各自的优势,有助于选择合适的工具来满足特定的项目需求。
694 19
容器服务Kubernetes场景下可观测体系生产级最佳实践
阿里云容器服务团队在2024年继续蝉联Gartner亚洲唯一全球领导者象限,其可观测体系是运维的核心能力之一。该体系涵盖重保运维、大规模集群稳定性、业务异常诊断等场景,特别是在AI和GPU场景下提供了全面的观测解决方案。通过Tracing、Metric和Log等技术,阿里云增强了对容器网络、存储及多集群架构的监控能力,帮助客户实现高效运维和成本优化。未来,结合AI助手,将进一步提升问题定位和解决效率,缩短MTTR,助力构建智能运维体系。
|
2月前
|
Redis+Caffeine构建高性能二级缓存
大家好,我是摘星。今天为大家带来的是Redis+Caffeine构建高性能二级缓存,废话不多说直接开始~
376 0

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问