K8s:部署redis单机

Redis单机

1、打镜像、构建redis镜像
2、测试redis镜像
3、创建PV和PVC、写一个yaml文件(指定一个存储)
4、运行redis服务yaml文件
5、验证redis数据读写
6、删除pod后重新创建验证
1、镜像
###  构建文件   /data/k8s-data/dockerfile/web/magedu/redis


###子镜像
registry.cn-hangzhou.aliyuncs.com/docker-jigaobo/centos:7.9.2009
harbor.51lianlian.cn/baseimages/jigaobo-centos-base:7.9.2009

###Dockerfile
#Redis Image
FROM harbor.51lianlian.cn/baseimages/jigaobo-centos-base:7.9.2009 

MAINTAINER  jigaobo "jigaobo@qq.com"

ADD redis-4.0.14.tar.gz /usr/local/src
RUN ln -sv /usr/local/src/redis-4.0.14 /usr/local/redis && cd /usr/local/redis && make && cp src/redis-cli /usr/sbin/ && cp src/redis-server  /usr/sbin/ && mkdir -pv /data/redis-data
ADD redis.conf /usr/local/redis/redis.conf
EXPOSE 6379

#ADD run_redis.sh /usr/local/redis/run_redis.sh
#CMD ["/usr/local/redis/run_redis.sh"]

ADD run_redis.sh /usr/local/redis/entrypoint.sh
ENTRYPOINT ["/usr/local/redis/entrypoint.sh"]


###脚本
#!/bin/bash

/usr/sbin/redis-server /usr/local/redis/redis.conf

tail -f  /etc/hosts

2、测试运行
docker run  -it --rm    -p 6379:6379     harbor.51lianlian.cn/magedu/redis:7.2.5 

telnet  10.0.0.204 6379
3、创建PV和PVC
### 文件  redis-persistentvolumeclaim.yaml  redis-persistentvolume.yaml


###PV
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: redis-datadir-pv-1
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  nfs:
    path: /data/k8sdata/magedu/redis-datadir-1
    server: 10.0.0.206								###NFS或者ceph存储目录、或者阿里云NAS


###PVC
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: redis-datadir-pvc-1
  namespace: magedu
spec:
  volumeName: redis-datadir-pv-1
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

###创建NFS共享目录
10.0.0.206
mkdir /data/k8sdata/magedu/redis-datadir-1
4、redis服务yaml文件
###  存储数据挂载目录   /data/redis-data/

###yaml文件   /data/k8s-data/yaml/magedu/redis/redis.yaml

kind: Deployment
#apiVersion: extensions/v1beta1
apiVersion: apps/v1
metadata:
  labels:
    app: devops-redis
  name: deploy-devops-redis
  namespace: magedu
spec:
  replicas: 1
  selector:
    matchLabels:
      app: devops-redis
  template:
    metadata:
      labels:
        app: devops-redis
    spec:
      containers:
        - name: redis-container
          image: harbor.51lianlian.cn/magedu/redis:7.2.5
          imagePullPolicy: Always
          volumeMounts:
          - mountPath: "/data/redis-data/"				###存储数据
            name: redis-datadir
      volumes:
        - name: redis-datadir
          persistentVolumeClaim:
            claimName: redis-datadir-pvc-1

---
kind: Service
apiVersion: v1
metadata:
  labels:
    app: devops-redis
  name: srv-devops-redis
  namespace: magedu
spec:
  type: NodePort
  ports:
  - name: http
    port: 6379
    targetPort: 6379
    nodePort: 30011					###集群外部端口
  selector:
    app: devops-redis
  sessionAffinity: ClientIP
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 10800

5、验证数据
kubectl  exec -it    -n  magedu       pod-name

redis-cli
auth  123456

save  aaa	111
save  bbb	222

6、删除pod重建验证存储
kubectl  delete  pod  -n  magedu        deploy-devops-redis-5c58db48fc-m46gf  


kubectl  exec -it    -n  magedu         deploy-devops-redis-5c58db48fc-lf9w2 bash

redis-cli
auth  123456
keys  *
posted @ 2024-08-01 18:53  姬高波  阅读(47)  评论(0)    收藏  举报