k8s部署单节点redis

一、configmap

# cat redis-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: redis-single-config
  namespace: redis
data:
  redis.conf: |
    daemonize no
    bind 0.0.0.0
    port 6379
    tcp-backlog 511
    timeout 0
    tcp-keepalive 300
    pidfile /data/redis-server.pid
    logfile /data/redis.log
    loglevel notice
    databases 16
    always-show-logo yes
    save 900 1
    save 300 10
    save 60 10000
    stop-writes-on-bgsave-error yes
    rdbcompression yes
    rdbchecksum yes
    dbfilename dump.rdb
    dir /data
    slave-serve-stale-data yes
    slave-read-only yes
    repl-diskless-sync no
    repl-diskless-sync-delay 5
    repl-disable-tcp-nodelay no
    slave-priority 100
    appendonly yes
    appendfilename "appendonly.aof"
    appendfsync everysec
    no-appendfsync-on-rewrite no
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    aof-load-truncated yes
    lua-time-limit 5000
    slowlog-log-slower-than 10000
    slowlog-max-len 128
    latency-monitor-threshold 0
    notify-keyspace-events ""
    hash-max-ziplist-entries 512
    hash-max-ziplist-value 64
    list-max-ziplist-size -2
    list-compress-depth 0
    set-max-intset-entries 512
    zset-max-ziplist-entries 128
    zset-max-ziplist-value 64
    hll-sparse-max-bytes 3000
    activerehashing yes
    client-output-buffer-limit normal 0 0 0
    client-output-buffer-limit slave 256mb 64mb 60
    client-output-buffer-limit pubsub 32mb 8mb 60
    hz 10
    aof-rewrite-incremental-fsync yes
    requirepass redis#s

kubectl create namespace redis

kubectl apply -f redis-configmap.yaml

二、deployment编写

# cat redis-deployment.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-single
  namespace: redis
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis-single
  template:
    metadata:
      labels:
        app: redis-single
    spec:
      initContainers:
        - name: init-0
          image: busybox
          imagePullPolicy: IfNotPresent
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          command: [ "sysctl", "-w", "net.core.somaxconn=511" ]
          securityContext:
            privileged: true
        - name: init-1
          image: busybox
          imagePullPolicy: IfNotPresent
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          command: [ "sh", "-c", "echo never > /sys/kernel/mm/transparent_hugepage/enabled" ]
          securityContext:
            privileged: true
      containers:
        - name: redis-single
          image: redis:6.0.8
          imagePullPolicy: IfNotPresent
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeMounts:
            - name: redis-data
              mountPath: /data
            - name: redis-config
              mountPath: /usr/local/etc/redis/redis.conf
              subPath: redis.conf
          command: [ "redis-server" ,"/usr/local/etc/redis/redis.conf" ]
          env:
            - name: TZ
              value: "Asia/Shanghai"
      volumes:
        - name: timezone
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai
        - name: redis-data
          nfs:
            path: /nfs/redis
            server: 192.168.110.38
        - name: redis-config
          configMap:
            name: redis-single-config
            items:
              - key: redis.conf
                path: redis.conf

kubectl apply -f redis-deployment.yaml

三、service编写

# cat redis-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: service-redis-single
  namespace: redis
  labels:
    app: redis-single
spec:
  selector:
    app: redis-single
  ports:
    - name: redis-single
      port: 6379
      targetPort: 6379
      nodePort: 30000
  type: NodePort


# kubectl apply -f redis-service.yaml
service/service-redis-single created

四、测试

相关推荐
oNuoyi1 小时前
定位线上同步锁仍然重复扣费的Bug定位及Redis分布式锁解决方案
java·spring boot·redis·分布式
a_zhee13 小时前
[Redis]哨兵机制
数据库·redis·缓存
番茄炒西红柿炒蛋4 小时前
秋招Java后端开发冲刺——非关系型数据库篇(Redis)
数据库·redis·nosql
lendq4 小时前
k8s-第二节-常用操作
docker·容器·kubernetes
菜鸟小码8 小时前
Redis基础教程(十四):Redis连接
redis·缓存
wang_book9 小时前
redis学习(003 数据结构和通用命令)
java·数据库·redis·学习
小宏运维有点菜10 小时前
docker
运维·docker·容器
孤城28611 小时前
08 docker Registry搭建docker私仓
运维·docker·容器·devops
明明跟你说过11 小时前
无服务器【Serverless】架构的深度剖析:组件介绍、优缺点与适用场景
微服务·云原生·容器·架构·serverless·运维开发·无服务器
Cherry Xie12 小时前
k8s常见组件之Kube-apiserver
云原生·容器·kubernetes