kubernetes環(huán)境部署單節(jié)點(diǎn)redis數(shù)據(jù)庫(kù)的方法
kubernetes部署redis數(shù)據(jù)庫(kù)(單節(jié)點(diǎn))
redis簡(jiǎn)介
Redis 是我們常用的非關(guān)系型數(shù)據(jù)庫(kù),在項(xiàng)目開發(fā)、測(cè)試、部署到生成環(huán)境時(shí),經(jīng)常需要部署一套 Redis 來(lái)對(duì)數(shù)據(jù)進(jìn)行緩存。這里介紹下如何在 Kubernetes 環(huán)境中部署用于開發(fā)、測(cè)試的環(huán)境的 Redis 數(shù)據(jù)庫(kù),當(dāng)然,部署的是單節(jié)點(diǎn)模式,并非用于生產(chǎn)環(huán)境的主從、哨兵或集群模式。單節(jié)點(diǎn)的 Redis 部署簡(jiǎn)單,且配置存活探針,能保證快速檢測(cè) Redis 是否可用,當(dāng)不可用時(shí)快速進(jìn)行重啟。
redis 參數(shù)配置
在使用 Kubernetes 部署應(yīng)用后,一般會(huì)習(xí)慣與將應(yīng)用的配置文件外置,用 ConfigMap 存儲(chǔ),然后掛載進(jìn)入鏡像內(nèi)部。這樣,只要修改 ConfigMap 里面的配置,再重啟應(yīng)用就能很方便就能夠使應(yīng)用重新加載新的配置,很方便。
部署redis
創(chuàng)建configmap存儲(chǔ)redis配置文件
redis-config.yaml
kind: ConfigMap apiVersion: v1 metadata: name: redis-config namespace: zisefeizhu labels: app: redis data: redis.conf: |- dir /data port 6379 bind 0.0.0.0 appendonly yes protected-mode no requirepass zisefeizhu pidfile /data/redis-6379.pid
Redis 數(shù)據(jù)存儲(chǔ)
Kubernetes 部署的應(yīng)用一般都是無(wú)狀態(tài)應(yīng)用,部署后下次重啟很可能會(huì)漂移到不同節(jié)點(diǎn)上,所以不能使用節(jié)點(diǎn)上的本地存儲(chǔ),而是使用網(wǎng)絡(luò)存儲(chǔ)對(duì)應(yīng)用數(shù)據(jù)持久化,PV 和 PVC 是 Kubernetes 用于與儲(chǔ)空關(guān)聯(lián)的資源,可與不同的存儲(chǔ)驅(qū)動(dòng)建立連接,存儲(chǔ)應(yīng)用數(shù)據(jù),所以接下來(lái)我們要?jiǎng)?chuàng)建 Kubernetes PV、PVC 資源。
請(qǐng)參考:http://www.dbjr.com.cn/article/190491.htm
創(chuàng)建 Deployment 部署 Redis
創(chuàng)建用于 Kubernetes Deployment 來(lái)配置部署 Redis 的參數(shù),需要配置 Redis 的鏡像地址、名稱、版本號(hào),還要配置其 CPU 與 Memory 資源的占用,配置探針監(jiān)測(cè)應(yīng)用可用性,配置 Volume 掛載之前創(chuàng)建的 PV、PVC、ConfigMap 資源等等,內(nèi)容如下:
redis-deployment.yaml
--- apiVersion: v1 kind: Service metadata: name: redis labels: app: redis spec: type: ClusterIP ports: - name: redis port: 6379 selector: app: redis --- apiVersion: apps/v1 kind: Deployment metadata: name: redis namespace: production-pppharmapack labels: app: redis spec: replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: # 進(jìn)行初始化操作,修改系統(tǒng)配置,解決 Redis 啟動(dòng)時(shí)提示的警告信息 initContainers: - name: system-init image: busybox:1.32 imagePullPolicy: IfNotPresent command: - "sh" - "-c" - "echo 2048 > /proc/sys/net/core/somaxconn && echo never > /sys/kernel/mm/transparent_hugepage/enabled" securityContext: privileged: true runAsUser: 0 volumeMounts: - name: sys mountPath: /sys containers: - name: redis image: redis:5.0.8 command: - "sh" - "-c" - "redis-server /usr/local/etc/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: config mountPath: /usr/local/etc/redis/redis.conf subPath: redis.conf volumes: - name: data persistentVolumeClaim: claimName: zisefeizhu - name: config configMap: name: redis-config - name: sys hostPath: path: /sys
測(cè)試redis是否可以正常使用
# ctl get pod -n production-pppharmapack | grep redis redis-7768dc9c56-4kp8l 1/1 Running 0 8m43s ctl exec -it redis-7768dc9c56-4kp8l -n production-pppharmapack -- /bin/sh # redis-cli 127.0.0.1:6379> auth zisefeizhu OK 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "zisefeizhu"
到此這篇關(guān)于kubernetes環(huán)境部署單節(jié)點(diǎn)redis數(shù)據(jù)庫(kù)的方法的文章就介紹到這了,更多相關(guān)kubernetes部署redis數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis?緩存淘汰策略和事務(wù)實(shí)現(xiàn)樂(lè)觀鎖詳情
這篇文章主要介紹了Redis緩存淘汰策略和事務(wù)實(shí)現(xiàn)樂(lè)觀鎖詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07Redis實(shí)現(xiàn)短信登錄的企業(yè)實(shí)戰(zhàn)
本文主要介紹了Redis實(shí)現(xiàn)短信登錄的企業(yè)實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07CentOS系統(tǒng)安裝Redis及Redis的PHP擴(kuò)展詳解
這篇文章主要介紹了CentOS系統(tǒng)下安裝Redis數(shù)據(jù)的教程,以及詳解了Redis數(shù)據(jù)庫(kù)的PHP擴(kuò)展,文中介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-12-12談?wù)凴edis分布式鎖的正確實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Redis分布式鎖的正確實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Redis教程(十五):C語(yǔ)言連接操作代碼實(shí)例
這篇文章主要介紹了Redis教程(十五):C語(yǔ)言連接操作代碼實(shí)例,本篇博客是該系列博客中的最后一篇,在這里將給出基于Redis客戶端組件訪問(wèn)并操作Redis服務(wù)器的代碼示例,需要的朋友可以參考下2015-05-05華為歐拉openEuler編譯安裝Redis的實(shí)現(xiàn)步驟
本文主要介紹了華為歐拉openEuler編譯安裝Redis的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01redis客戶端連接錯(cuò)誤 NOAUTH Authentication required
本文主要介紹了redis客戶端連接錯(cuò)誤 NOAUTH Authentication required,詳細(xì)的介紹了解決方法,感興趣的可以了解一下2021-07-07淺談分布式鎖的幾種使用方式(redis、zookeeper、數(shù)據(jù)庫(kù))
這篇文章主要介紹了淺談分布式鎖的幾種使用方式(redis、zookeeper、數(shù)據(jù)庫(kù)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Redis緩存過(guò)期的實(shí)現(xiàn)示例
Redis緩存的過(guò)期策略是保證緩存可靠性和性能的關(guān)鍵之一,本文主要介紹了Redis緩存過(guò)期的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12