k8s使用YAML创建redis5.0-创新互联

yaml部署redis的一个巨坑配置文件里面的daemonize no一定不能用daemonize yes,因为这个问题我搞了一个星期,

创新互联专注于乾安企业网站建设,响应式网站,商城网站制作。乾安网站建设公司,为乾安等地区提供建站服务。全流程按需网站设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

yaml文件的标签是关联各个服务的重要说明
labels  下面的name参数和后面的值各服务之间要全部一致才能正确关联,
metadata:
name: redis-yx-t-config
labels:
  name: gem-yx-t-redis

apiVersion: v1 
kind: ConfigMap 
metadata: 
  name: gem-yx-t-redis
  labels: 
    app: gem-yx-t-redis 
data: 
  redis.conf: |- 
    dir /data 
    port 6379 
    bind 0.0.0.0 
    appendonly yes 
    daemonize no       #这个是重点,不能yes,否则永远无法启动
    #protected-mode no 
    requirepass test 
---
apiVersion: apps/v1 
kind: StatefulSet 
metadata: 
  name: gem-yx-t-redis 
  labels: 
    app: gem-yx-t-redis 
spec:
  serviceName: gem-yx-t-redis 
  replicas: 1 
  selector: 
    matchLabels: 
      app: gem-yx-t-redis 
  template: 
    metadata: 
      labels: 
        app: gem-yx-t-redis 
    spec: 
      containers: 
      - name: redis 
        image: redis:5.0.7 
        command: 
          - "sh" 
          - "-c" 
          - "redis-server /usr/local/redis/redis.conf" 
        ports: 
        - containerPort: 6379 
        resources: 
          limits: 
            cpu: 1000m 
            memory: 1024Mi 
          requests: 
            cpu: 1000m 
            memory: 1024Mi 
        livenessProbe: 
          tcpSocket: 
            port: 6379 
          initialDelaySeconds: 300 
          timeoutSeconds: 1 
          periodSeconds: 10 
          successThreshold: 1 
          failureThreshold: 3 
        readinessProbe: 
          tcpSocket: 
            port: 6379 
          initialDelaySeconds: 5 
          timeoutSeconds: 1 
          periodSeconds: 10 
          successThreshold: 1 
          failureThreshold: 3 
        volumeMounts:
        - name: data
          mountPath: /data
        # 时区设置
        - name: timezone
          mountPath: /etc/localtime
        - name: config 
          mountPath:  /usr/local/redis/redis.conf 
          subPath: redis.conf 		  
      volumes:
      - name: config 
        configMap: 
          name: redis-yx-t-config 
      - name: timezone                             
        hostPath:
          path: /usr/share/zoneinfo/Asia/Shanghai
      - name: data
        hostPath:
          type: DirectoryOrCreate 
          path: /data/redis/gem-yx-t-redis
      nodeName: gem-yxyw-t-c02
--- 
 
apiVersion: v1 
kind: Service 
metadata: 
  name: gem-yx-t-redis
  labels: 
    app: gem-yx-t-redis  
spec: 
  ports: 
    - port: 6379 
      protocol: TCP 
      targetPort: 6379 
      nodePort: 30009 
  selector: 
    app: gem-yx-t-redis 
  type: NodePort

redis5.0镜像制作

FROM centos:centos7
#安装编译必备组件
RUN yum -y install epel*
RUN yum -y install iftop htop unzip net-tools
RUN yum -y install openssh-clients  
RUN yum -y install gcc gcc-c++ ncurses-devel pcre* openssl* zlib zlib-devel wget net-snmp-devel curl-devel perl-DBI
# 复制并解压缩
ADD redis-5.0.5.tar.gz /usr/local
#编译安装
RUN cd /usr/local/redis-5.0.5 && make && make PREFIX=/usr/local/redis install
RUN mkdir /usr/local/redis/etc
RUN cd /usr/local/redis/bin/
RUN cp /usr/local/redis/bin/redis-server /usr/bin/
#复制redis配置文件
ADD redis.conf /usr/local/redis/etc/
# 暴露端口
EXPOSE 6379
# 容器运行时默认启动redis服务
CMD ["redis-server","/usr/local/redis/etc/redis.conf"]

redis配置文件

protected-mode no
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes   #k8s里面一定要改成no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile "/usr/local/redis/logs/redis.log"
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 ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
requirepass rP9yf2M1jGwNNjAT
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly no
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
aof-use-rdb-preamble 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
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
bind 0.0.0.0
port 6379
daemonize no
supervised no
# redis服务pid进程文件名
pidfile "/var/run/redis.pid"
# 关闭保护模式,并配置使用密码访问
protected-mode no
requirepass 123456
# 数据文件保存路径,rdb/AOF文件也保存在这里
dir "/data"
# 大客户端连接数
maxclients 10000

# 客户端连接空闲多久后断开连接,单位秒,0表示禁用
timeout 300
tcp-keepalive 60 
# 内存初始化
maxmemory 1gb
maxmemory-policy volatile-lru
slowlog-max-len 128
lua-time-limit 5000

# Redis 数据持久化(rdb/aof)配置
# 数据自动保存脚本条件例如300s中有10key发生变化
save 300 100
save 60 10000
# RDB 文件名
dbfilename "dump.rdb"
# 对RDB文件进行压缩,建议以(磁盘)空间换(CPU)时间。
rdbcompression yes
# 版本5的RDB有一个CRC64算法的校验和放在了文件的最后。这将使文件格式更加可靠。
rdbchecksum yes
# RDB自动触发策略是否启用,默认为yes
rdb-save-incremental-fsync yes

# AOF开启
appendonly yes
# AOF文件名
appendfilename "appendonly.aof"
# 可选值 always, everysec,no,建议设置为everysec
appendfsync everysec

# Redis风险命令重命名
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
rename-command FLUSHDB b840fc02d524045429941cc15f59e41cb7be6c53
rename-command FLUSHALL b840fc02d524045429941cc15f59e41cb7be6c54
rename-command EVAL b840fc02d524045429941cc15f59e41cb7be6c55
rename-command DEBUG b840fc02d524045429941cc15f59e41cb7be6c56
# rename-command SHUTDOWN SHUTDOWN

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文名称:k8s使用YAML创建redis5.0-创新互联
文章起源:http://pwwzsj.com/article/dhiood.html