<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Dockerfile
FROM redis:6.0 MAINTAINER 運維@小兵 COPY *.conf /opt/conf/ COPY run.sh /opt/run.sh RUN apt update -y;apt-get install vim net-tools -y;apt-get clean && chmod +x /opt/run.sh CMD /opt/run.sh
redis組態檔redis.conf
#繫結到哪臺機器,0.0.0.0表示允許所有主機存取 bind 0.0.0.0 #redis3.2版本之後加入的特性,yes開啟後,如果沒有設定bind則預設只允許127.0.0.1存取 protected-mode yes #對外暴露的存取埠 port 6379 #登入密碼 requirepass devops #主從同步認證密碼 masterauth devops #三次握手的時候server端接收到使用者端 ack確認號之後的佇列值 tcp-backlog 511 #伺服器端與使用者端連線超時時間,0表示永不超時 timeout 0 #連線redis的時候的密碼 hello #requirepass hello #tcp 保持對談時間是300s tcp-keepalive 300 #redis是否以守護行程執行,如果是,會生成pid daemonize yes supervised no #pid檔案路徑 pidfile /var/run/redis_6379.pid #紀錄檔級別 loglevel notice logfile /var/log/redis.log #預設redis有幾個db庫 databases 32 #每間隔900秒,如果一個鍵值發生變化就觸發快照機制 save 900 1 save 300 10 save 60 10000 #快照出錯時,是否禁止redis寫入 stop-writes-on-bgsave-error no #持久化到rdb檔案時,是否壓縮檔案 rdbcompression no #持久化到rdb檔案是,是否RC64開啟驗證 rdbchecksum no #持久化輸出的時候,rdb檔案命名 dbfilename dump.rdb #持久化檔案路徑 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 #是否開啟aof備份 appendonly yes #aof備份檔名稱 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 #使用者端最大連線數 maxclients 20000 lazyfree-lazy-eviction yes lazyfree-lazy-expire yes lazyfree-lazy-server-del yes slave-lazy-flush yes
redis哨兵組態檔sentinel.conf
# 哨兵sentinel範例執行的埠 預設26379 port 26379 # 哨兵sentinel的工作目錄 dir "/tmp" sentinel deny-scripts-reconfig yes sentinel monitor mymaster redis-0.redis 6379 2 sentinel auth-pass mymaster devops sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 15000 # 設定5秒內沒有響應,說明伺服器掛了,需要將設定放在sentinel monitor master 127.0.0.1 6379 下面 sentinel parallel-syncs mymaster 2 # 設定15秒內master沒有活起來,就重新選舉主 sentinel config-epoch mymaster 3 #.表示如果master重新選出來後,其它slave節點能同時並行從新master同步快取的臺數有多少個,顯然該值越大,所有slave節點完成同步切換的整體速度越快,但如 果此時正好有人在存取這些slave,可能造#成讀取失敗,影響面會更廣。最保定的設定為1,只同一時間,只能有一臺幹這件事,這樣其它slave還能繼續服務,但是所 有slave全部完成快取更新同步的程序將變慢。 sentinel leader-epoch mymaster 3
啟動指令碼run.sh
#!/bin/bash pod_seq=$(echo $POD_NAME | awk -F"-" '{print $2}') if [[ ${pod_seq} -ne 0 ]];then #為從機 sed -i '/^slaveof /d' /opt/conf/redis.conf echo "slaveof redis-0.redis 6379" >> /opt/conf/redis.conf #redis-0.redis代表第一個redis的存取地址 fi /usr/local/bin/redis-server /opt/conf/redis.conf sleep 15 #如果redis-0沒起來,它裡面的哨兵也起不來,等待一段時間再啟動哨兵 /usr/local/bin/redis-sentinel /opt/conf/sentinel.conf & tail -f /var/log/redis.log
構建映象
docker build --pull -t 192.168.1.2/common/redis_sentinel:6.0 . docker push 192.168.1.2/common/redis_sentinel:6.0
StatefulSet相關資訊可以參考:K8S之StatefulSet有狀態服務
apiVersion: apps/v1 kind: StatefulSet metadata: name: redis namespace: redis-ns spec: serviceName: redis selector: matchLabels: app: redis replicas: 3 template: metadata: labels: app: redis spec: nodeSelector: productLine: redis-ns area: wuhan restartPolicy: Always containers: - name: redis image: 192.168.1.2/common/redis_sentinel:6.0 imagePullPolicy: Always env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name livenessProbe: tcpSocket: port: 6379 initialDelaySeconds: 3 periodSeconds: 5 readinessProbe: tcpSocket: port: 6379 initialDelaySeconds: 3 periodSeconds: 5 ports: - containerPort: 6379 resources: requests: memory: 256Mi cpu: 50m limits: memory: 256Mi cpu: 200m --- apiVersion: v1 kind: Service metadata: name: redis namespace: redis-ns spec: type: NodePort ports: - name: redis port: 6379 targetPort: 6379 nodePort: 26380 selector: app: redis
kubectl apply -f redis-sentinel.yml
會建立三個redis pod
kubectl get pod -n redis-ns
kubectl exec -it redis-0 -n redis-ns -- bash root@redis-0:/data# redis-cli 127.0.0.1:6379> AUTH devops 127.0.0.1:6379> info Replication #檢視主從資訊
127.0.0.1:6379> exit root@redis-0:/data# redis-cli -p 26379 127.0.0.1:26379> info sentinel #檢視哨兵資訊
k8s其它命令空間的java程序連線redis哨兵
127.0.0.1:6379> exit root@redis-0:/data# redis-cli -p 26379 127.0.0.1:26379> info sentinel #檢視哨兵資訊
使用者端連線redis
node節點IP:26380 密碼:devops
到此這篇關於k8s部署redis哨兵的實現的文章就介紹到這了,更多相關k8s部署redis哨兵 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45