k8s-redis-单线程-10万-6.0
root@ubuntu20:/opt/k8s-data/dockerfile/web/chuan/redis# cat Dockerfile
#Redis Image
FROM centos:7.8.2003make
MAINTAINER chuan
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
ADD run_redis.sh /usr/local/redis/run_redis.sh
EXPOSE 6379
CMD ["/usr/local/redis/run_redis.sh"]
root@ubuntu20:/opt/k8s-data/dockerfile/web/chuan/redis# cat redis.conf | grep -v "#" | grep -v "^$"
bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo yes
save 900 1
save 5 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error no #改为yes磁盘满了会拒绝写入内存
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data/redis-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
requirepass 123456
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-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 no
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
root@ubuntu20:/opt/k8s-data/dockerfile/web/chuan/redis# cat run_redis.sh
#!/bin/bash
/usr/sbin/redis-server /usr/local/redis/redis.conf
tail -f /etc/hosts
root@ubuntu20:/opt/k8s-data/yaml/chuan/redis/pv# cat redis-persistentvolume.yaml --- apiVersion: v1 kind: PersistentVolume metadata: name: redis-datadir-pv-1 namespace: chuan spec: capacity: storage: 5Gi accessModes: - ReadWriteOnce nfs: path: /data/k8sdata/chuan/redis-datadir-1 server: 192.168.211.154 root@ubuntu20:/opt/k8s-data/yaml/chuan/redis/pv# cat redis-persistentvolumeclaim.yaml --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: redis-datadir-pvc-1 namespace: chuan spec: volumeName: redis-datadir-pv-1 accessModes: - ReadWriteOnce resources: requests: storage: 5Gi root@ubuntu20:/opt/k8s-data/yaml/chuan/redis# cat redis.yaml kind: Deployment #apiVersion: extensions/v1beta1 apiVersion: apps/v1 metadata: labels: app: devops-redis name: deploy-devops-redis namespace: chuan spec: replicas: 1 selector: matchLabels: app: devops-redis template: metadata: labels: app: devops-redis spec: containers: - name: redis-container image: harbor.chuan.net/baseimages/redis:v1 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: chuan spec: type: NodePort ports: - name: http port: 6379 targetPort: 6379 nodePort: 36379 selector: app: devops-redis sessionAffinity: ClientIP sessionAffinityConfig: clientIP: timeoutSeconds: 10800
#同一个ip的客户端转到同一个pod,k8s只能基于4层过滤
root@ubuntu20:/opt/k8s-data/yaml/chuan/redis# kubectl get po -nchuan
NAME READY STATUS RESTARTS AGE
deploy-devops-redis-54f6c9b7b8-77chr 1/1 Running 0 4m55s
[root@deploy-devops-redis-54f6c9b7b8-77chr redis-data]# redis-cli
127.0.0.1:6379> AUTH 123456
OK
127.0.0.1:6379> set aa 11
root@ubuntu20:/data/k8sdata/chuan/redis-datadir-1# ls
dump.rdb