|NO.Z.00256|——————————|CloudNative|——|KuberNetes&中间件容器化及helm.V03|——|中间件.v03|redis.v5.0.4|yaml文件部署|
一、k8s下同步docker镜像
### --- 在节点1上下载并镜像导入到目标节点
[root@k8s-master01 redis]# scp redis.tar rabbit.tar k8s-master02:/root/
### --- 将镜像导入到docker容器中
[root@k8s-master02 ~]# docker load -i redis.tar
[root@k8s-master02 ~]# docker load -i rabbit.tar
二、通过yaml文件创建redis单节点pod
### --- 创建redis-deployment.yaml注释:
~~~ # replicas: 1
~~~ 副本数量设置为1:因为redis是有状态的应用;若是需要使用多个的话,
~~~ 需要搭建一个集群或者主从可以通过这个实例去创建中间件的pod
### --- 创建redis-deployment.yaml配置文件
[root@k8s-master01 redis]# cat redis.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: redis-single-node
name: redis-single-node
namespace: ratel-test1
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: redis-single-node
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: redis-single-node
spec:
containers:
- command:
- sh
- -c
- redis-server
- /mnt/redis.conf
env:
- name: TZ
value: Asia/Shanghai
- name: LANG
value: C.UTF-8
image: redis:5.0.4-alpine
imagePullPolicy: IfNotPresent
lifecycle: {}
livenessProbe:
failureThreshold: 2
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 6379
timeoutSeconds: 2
name: redis-single-node
ports:
- containerPort: 6379
name: web
protocol: TCP
readinessProbe:
failureThreshold: 2
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 6379
timeoutSeconds: 2
resources:
limits:
cpu: 100m
memory: 339Mi
requests:
cpu: 10m
memory: 10Mi
securityContext:
privileged: false
runAsNonRoot: false
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /usr/share/zoneinfo/Asia/Shanghai
name: tz-config
- mountPath: /etc/localtime
name: tz-config
- mountPath: /etc/timezone
name: timezone
- mountPath: /mnt
name: redis-conf
readOnly: true
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 30
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 30
volumes:
- hostPath:
path: /usr/share/zoneinfo/Asia/Shanghai
type: ""
name: tz-config
- hostPath:
path: /etc/timezone
type: ""
name: timezone
- configMap:
defaultMode: 420
name: redis-conf
name: redis-conf
三、创建redis-deployment
### --- 创建redis单节点pod
[root@k8s-master01 redis]# kubectl create -f redis.yaml -n ratel-test1
### --- 注意:
~~~ 在创建service名称的时候,不要和redis的pod的名称一致,可以使用项目的名称去命名
~~~ 若是命名一致,可能会出现问题。
~~~ 在部署项目的时候,可能是一个项目用一个redis,或多个项目用一个redis,
### --- redis是共用的:
~~~ 项目a和项目b各自公用各自的一个redis;这样可以把这个redis单独放在一个namespace下;
~~~ 用来放公共服务的namespace下,项目可以去连接各自的redis
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了