k8s一键安装redis单机版
k8s一键安装redis单机版
·
k8s一键安装redis单机版
1.前置条件
已经搭建好kubernetes1.25.4集群
Kubernetes 1.25.4版本安装_V胡桃夹子的博客-CSDN博客
kubeasz安装kubernetes1.25.5_V胡桃夹子的博客-CSDN博客
kubernetes1.25.4机器安装好了nfs服务
CentOS8搭建nfs服务_V胡桃夹子的博客-CSDN博客
本文介绍的mysql8单节点部署,自定义k8s namespacee,创建configmap来部署的
2.创建redis.yaml
复制下面脚本执行生成mysql.yaml
部署文件
cat > redis.yaml<<EOF
---
# namespace
apiVersion: v1 # 版本要符合kubectl apiVersion规定,v1是稳定版本
kind: Namespace # k8s资源类型,Namespace资源
metadata: # 资源的元数据语句块,是针对kind对应资源的全局属性
name: develop # 声明工作空间名称
labels: # 自定义标签列表
name: develop # 设置namespace的label标签
---
apiVersion: v1 # 必选,版本号,例如v1
kind: ConfigMap # 必选,资源类型,例如 ConfigMap
metadata: # 必选,元数据
namespace: develop # Pod所属的命名空间,不指定则默认为"default"
name: redis-config # 必选,Pod名称
labels: # 自定义标签列表
app: redis # 自定义标签
data:
# redis.conf代表着redis的配置文件名称
redis.conf: |-
# 修改连接为所有ip
bind 0.0.0.0
# 允许外网访问
protected-mode no
# port 6379
# 客户端空闲n秒后断开连接;默认是 0 表示不断开
timeout 0
# RDB存储配置
# save <seconds> <changes>指定多长时间刷新快照至磁盘,有两属性值,只有当两属性值均满足时才触发;可设置多种级别
# 只要下面三个save条件任意满足一个,服务器就会自动执行BGSAVE命令
# 表示在 900 秒内,至少更新了 1 条数据,Redis 自动触发 BGSAVE 命令,将数据保存到硬盘
save 900 1
# 表示在 300 秒内,至少更新了 10 条数据,Redis 自动触 BGSAVE 命令,将数据保存到硬盘。
save 300 10
#表示 60 秒内,至少更新了 10000 条数据,Redis 自动触发 BGSAVE 命令,将数据保存到硬盘。
save 60 10000
# 默认值yes,当dump数据库时使用LZF压缩字符串对象,如果CPU资源比较紧张,可以设置为no,选择不压缩;
rdbcompression yes
# 持久化文件名称
dbfilename dump.rdb
# #持久化数据存放位置
dir /data
# 开启aof配置
appendonly yes
# 调用fsync()方式让操作系统写数据到磁盘上,数据同步方式,配置everysec为每秒同步,这也是默认方式;
appendfsync everysec
appendfilename "appendonly.aof"
# 设置密码
# requirepass 123456
---
apiVersion: apps/v1 # 版本要符合kubectl apiVersion规定,v1是稳定版本
kind: Deployment # 表明是Kubernetes Deployment
metadata: # 资源的元数据语句块,是针对kind对应资源的全局属性
namespace: develop # 指定工作空间
name: redis # Deployment的名称,Deployment下全局唯一
labels: # 自定义标签列表
app: redis # 标识Pod,在Service中的selector指定匹配label为app:myName
spec: # 必选,Pod中容器的详细定义
replicas: 1 # Pod 副本的期待数量
selector:
matchLabels:
app: redis # 符合目标的Pod拥有此标签
template: # 根据此模版创建Pod的副本
metadata:
labels:
app: redis # Pod副本拥有的标签,对应Selector
spec:
# nodeName: k8s-node # 表示将该Pod调度到指定到名称的node节点上
containers: # 必选,Pod中容器列表
- name: redis # Pod中包含的容器
# 容器对应的Docker Image,即镜像名
image: docker.io/library/redis:7.0.7
# 容器的启动命令列表,如不指定,使用打包时使用的启动命令
command: ["sh","-c","redis-server /usr/local/redis/redis.conf"]
ports:
- containerPort: 6379 # 容器应用监听的端口号
resources: # 代表容器启动请求的资源限制,分配的资源必须要达到此要求
limits: # 代表最多可以请求多少资源
# CPU计量单位叫毫核(m)。1节点CPU核数乘以1000,得到是节点总的CPU总数。如1个节点有2个核,那该节点CPU总量为2000m
cpu: 1000m # 等同于1
memory: 1024Mi # 内存限制总和不能超过1 GiB
requests: # 资源需求
# CPU计量单位叫毫核(m)。1节点CPU核数乘以1000,得到是节点总的CPU总数。如1个节点有2个核,那该节点CPU总量为2000m
cpu: 1000m # 等同于1
memory: 1024Mi # 内存限制总和不能超过1 GiB
livenessProbe: # 判断容器是否正常运行,如果失败则杀掉容器(不是pod),再根据重启策略是否重启容器
tcpSocket: # 指定探针探测方式
port: 6379 # 对容器内的端口或socket进行TCP检查,如果端口成功打开,证明容器正常运行
initialDelaySeconds: 300 # 初始化延迟时间
timeoutSeconds: 1 # 单次探测超时时间
periodSeconds: 10 # 探测周期间隔时间
successThreshold: 1 # 探测失败到成功的重试次数
failureThreshold: 3 # 探测成功到失败的重试次数
# 判断容器是否能进入ready状态,探针失败则进入noready状态,并从service的endpoints中剔除此容器
readinessProbe:
tcpSocket: # 指定探针探测方式
port: 6379 # 对容器内的端口或socket进行TCP检查,如果端口成功打开,证明容器正常运行
initialDelaySeconds: 5 # 初始化延迟时间
timeoutSeconds: 1 # 单次探测超时时间
periodSeconds: 10 # 探测周期间隔时间
successThreshold: 1 # 探测失败到成功的重试次数
failureThreshold: 3 # 探测成功到失败的重试次数
volumeMounts:
# 自定义名字,名字须与volumes.name一致
- name: config
# 容器内地址
mountPath: /usr/local/redis/redis.conf
subPath: redis.conf # redis.conf配置文件
volumes:
- name: config # 自定义名字,名字须与volumeMounts.name一致
configMap:
name: redis-config # 引用的ConfigMap名称
---
apiVersion: v1 # 版本要符合kubectl apiVersion规定,v1是稳定版本
kind: Service # 表明是Kubernetes Service
metadata: # 资源的元数据语句块,是针对kind对应资源的全局属性
name: redis # Deployment的名称,Deployment下全局唯一
namespace: develop # 指定工作空间
labels: # 自定义标签列表
app: redis # 标识Pod,在Service中的selector指定匹配label为app:myName
spec: # 必选,Pod中容器的详细定义
type: NodePort # 配置为NodePort,外部可以访问,不指定则默认为ClusterIP,只能集群内部访问
ports:
- port: 6379 # 即容器间服务调用的端口,这里的端口和clusterIP对应
protocol: TCP
nodePort: 6379 # 容器所在宿机端口,默认30000-32767之间,除非有改nodepord端口范围,外网IP映射就是将端口映射出去
targetPort: 6379 # 容器暴露的端口,即当前容器内应用的服务端口,例如Tomcat 8080
selector:
app: redis # 这里选择器一定要选择容器的标签
EOF
3.部署
一键部署命令:
kubectl apply -f redis.yaml
一键回收命令:
kubectl delete -f redis.yaml
4.引用Reference
CentOS8搭建nfs服务
Kubernetes 1.25.4版本安装
kubeasz安装kubernetes1.25.5
k8s一键安装redis单机版
k8s一键安装mysql8单机版
k8s部署springboot应用
Docker安装及学习
Docker制作springboot运行应用镜像
Docker制作Java8环境镜像
Docker安装Mysql5.7.31
Docker安装Mysql8.1.0
Elasticsearch单机版本安装
Elasticsearch集群安装
ELK安装
Docker安装ELK
zookeeper集群安装
Nginx日志切割
RabbitMQ集群安装
springboot集成prometheus+grafana
windows11安装android应用
更多推荐
已为社区贡献3条内容
所有评论(0)