在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: dbk8s.kuboard.cn/name: redis-devname: redis-devnamespace: sca-devresourceVersion: '311600'
spec:podManagementPolicy: Parallelreplicas: 1revisionHistoryLimit: 10selector:matchLabels:k8s.kuboard.cn/layer: dbk8s.kuboard.cn/name: redis-devserviceName: redis-devtemplate:metadata:creationTimestamp: nulllabels:k8s.kuboard.cn/layer: dbk8s.kuboard.cn/name: redis-devspec:containers:- command:- redis-server- /usr/local/etc/redis/redis.confimage: 'redis:7.2.0'imagePullPolicy: IfNotPresentlivenessProbe:failureThreshold: 3initialDelaySeconds: 20periodSeconds: 10successThreshold: 1tcpSocket:port: 6379timeoutSeconds: 1name: redisports:- containerPort: 6379protocol: TCPresources:limits:cpu: '2'memory: 2000Mirequests:cpu: 100mmemory: 200MistartupProbe:failureThreshold: 3initialDelaySeconds: 30periodSeconds: 10successThreshold: 1tcpSocket:port: 6379timeoutSeconds: 1terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- mountPath: /usr/local/etc/redis/redis.confname: volume-r4x5esubPath: redis.conf- mountPath: /dataname: volume-868k4dnsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}terminationGracePeriodSeconds: 30volumes:- configMap:defaultMode: 420name: redis-configname: volume-r4x5e- name: volume-868k4persistentVolumeClaim:claimName: redis-pvc-dupdateStrategy:rollingUpdate:partition: 0type: RollingUpdate---
apiVersion: v1
kind: Service
metadata:annotations: {}labels:k8s.kuboard.cn/layer: dbk8s.kuboard.cn/name: redis-devname: redis-devnamespace: sca-devresourceVersion: '166707'
spec:clusterIP: 10.233.159.49clusterIPs:- 10.233.159.49externalTrafficPolicy: ClusterinternalTrafficPolicy: ClusteripFamilies:- IPv4ipFamilyPolicy: SingleStackports:- name: d5rwyknodePort: 32702port: 6379protocol: TCPtargetPort: 6379selector:k8s.kuboard.cn/layer: dbk8s.kuboard.cn/name: redis-devsessionAffinity: ClientIPsessionAffinityConfig:clientIP:timeoutSeconds: 10800type: NodePort示例运行结果
