kuboard如何部署redis?

发布于:2023-12-07 ⋅ 阅读:(83) ⋅ 点赞:(0)

在K8S上部署redis

如 在K8S上部署mysql 所述,auth-server、user-center、api-gateway 都需要使用 redis 服务,本文描述如何使用 Kuboard 在 Kubernetes 上部署 redis。

本文将使用 redis官方镜像 进行部署。

部署redis

在 Kuboard 界面进入名称空间 (自己的命令空间),点击 创建工作负载 按钮,并填写表单,如下图所示:

字段名称 填写内容
工作负载类型 有状态副本集(StatefulSet)
工作负载分层 持久层
工作负载名称 redis-dev
副本数量 1

基本信息

如图所示

容器信息

字段名称 填写内容
名称 redis
容器镜像 redis:7.2.0
命令行参数 redis-server /usr/local/etc/redis/redis.conf
资源请求/限制 内存资源请求200Mi 内存资源限制4000Mi
容器端口 6379
  • 容器启动检查探针
字段名称 填写内容
类型 Tcp连接
端口号 6379
初始延迟(秒) 30
执行探测频率(秒) 10
超时时间(秒) 1
不健康阈值 3
  • 容器存活检查探针
字段名称 填写内容
类型 Tcp连接
端口号 6379
初始延迟(秒) 20
执行探测频率(秒) 10
超时时间(秒) 1
不健康阈值 3
在这里插入图片描述
在这里插入图片描述

存储挂载

  • 配置字典
dir /data #数目录
port 6379 #指定端口
bind 0.0.0.0 #允许外部访问
appendonly yes  #开启持久化
protected-mode no
requirepass 123qwe## #密码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

高级设置

在这里插入图片描述

服务/应用路由

在这里插入图片描述
最后点击保存。

命令行配置文件如下

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: redis-dev
  name: redis-dev
  namespace: sca-dev
  resourceVersion: '311600'
spec:
  podManagementPolicy: Parallel
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: db
      k8s.kuboard.cn/name: redis-dev
  serviceName: redis-dev
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s.kuboard.cn/layer: db
        k8s.kuboard.cn/name: redis-dev
    spec:
      containers:
        - command:
            - redis-server
            - /usr/local/etc/redis/redis.conf
          image: 'redis:7.2.0'
          imagePullPolicy: IfNotPresent
          livenessProbe:
            failureThreshold: 3
            initialDelaySeconds: 20
            periodSeconds: 10
            successThreshold: 1
            tcpSocket:
              port: 6379
            timeoutSeconds: 1
          name: redis
          ports:
            - containerPort: 6379
              protocol: TCP
          resources:
            limits:
              cpu: '2'
              memory: 2000Mi
            requests:
              cpu: 100m
              memory: 200Mi
          startupProbe:
            failureThreshold: 3
            initialDelaySeconds: 30
            periodSeconds: 10
            successThreshold: 1
            tcpSocket:
              port: 6379
            timeoutSeconds: 1
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - mountPath: /usr/local/etc/redis/redis.conf
              name: volume-r4x5e
              subPath: redis.conf
            - mountPath: /data
              name: volume-868k4
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
        - configMap:
            defaultMode: 420
            name: redis-config
          name: volume-r4x5e
        - name: volume-868k4
          persistentVolumeClaim:
            claimName: redis-pvc-d
  updateStrategy:
    rollingUpdate:
      partition: 0
    type: RollingUpdate

---
apiVersion: v1
kind: Service
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: redis-dev
  name: redis-dev
  namespace: sca-dev
  resourceVersion: '166707'
spec:
  clusterIP: 10.233.159.49
  clusterIPs:
    - 10.233.159.49
  externalTrafficPolicy: Cluster
  internalTrafficPolicy: Cluster
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  ports:
    - name: d5rwyk
      nodePort: 32702
      port: 6379
      protocol: TCP
      targetPort: 6379
  selector:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: redis-dev
  sessionAffinity: ClientIP
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 10800
  type: NodePort


示例运行结果

在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看