Redis Cluster
部署
使用 Bitnami helm chart
在 K8S redis
名稱空間中一鍵部署 Redis cluster
。
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install -n redis staging bitnami/redis-cluster
檢視隨機生成的 Redis 密碼
記住 helm chart deployment
將為 Redis cluster
生成一個隨機密碼。您可以通過以下命令列檢視密碼:
export REDIS_PASSWORD=$(kubectl get secret --namespace redis staging-redis-cluster -o jsonpath="{.data.redis-password}" | base64 --decode)
自定義 values.yaml
為什麼要自定義?因為預設的 Redis cluster helm chart
配置可能不是您用例的最佳配置。
官方預設配置:
製作 values.yaml
的本地副本。您可以修改 values.yaml
中的內容,並通過執行以下命令將配置更改應用到 Redis cluster
:
helm upgrade -n redis -f values.yaml staging
values.yaml
中有很多配置可以自定義。下面是一個簡單示例:
cluster:
init: true
## nodes:是包括副本在內的節點總數。
## 這意味著將有 3 個主節點和 3 個副本節點
##(由於 replicas 預設設定為 1,每個主節點將有 1 個副本)。
## 因此,nodes = numberOfMasterNodes + numberOfMasterNodes * replicas
nodes: 6
replicas: 1
Redisinsight
通過 Redisinsight 訪問管理 Redis 叢集
儘管我們非常樂意使用 redis-cli
命令列工具與 Redis
叢集進行互動,而且效率很高。但使用 Web UI
來實現同樣的效果更加直觀和高效。我們選擇使用由 RedisLab
開發的 redisinsight
。 Web UI
可以作為 Deployment
部署到 K8S
中。 以下是 RedisLab
官方文件提供的稍微修改過的版本。主要區別在於增加了 PVC
(持久卷宣告),這樣配置就不會因為重啟而丟失:
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redisinsight-pv-claim
labels:
app: redisinsight
namespace: redis
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: redisinsight
namespace: redis
labels:
app: redisinsight
spec:
replicas: 1
selector:
matchLabels:
app: redisinsight
template:
metadata:
labels:
app: redisinsight
spec:
containers:
- name: redisinsight
image: redislabs/redisinsight:1.9.0
imagePullPolicy: IfNotPresent
securityContext:
runAsUser: 0
volumeMounts:
- name: db
mountPath: /db
ports:
- containerPort: 8001
protocol: TCP
volumes:
- name: db
persistentVolumeClaim:
claimName: redisinsight-pv-claim
將上述 YAML
儲存到 redisinsight.yaml
中,通過執行以下命令將其部署到 K8S
中:
kubectl apply -f redisinsight.yaml
部署完成後,執行埠轉發:
kubectl port-forward deployment/redisinsight -n redis 8001
然後,您可以通過在 Web
瀏覽器中開啟 http://localhost:8001
來訪問 redisinsight Web UI
。 您可以在 UI
中單擊 Connect to a Redis Database
按鈕,將顯示以下彈出視窗:
Host
將是 K8S
控制檯中可用的 redis cluster service
的 IP
值。Port
為預設的 redis
埠 6379
。Username
預設值為 default
。Name
可以是你選擇的任何名字。如前一節所述,需要通過kubectl
命令列從 config map
中檢索密碼。點選 ADD REDIS DATABASE
按鈕後,它會提示你選擇所有或任何一個 Redis cluster
成員作為種子節點連線到叢集。你可以選擇全部或其中任何一個。一旦連線配置完成,你應該能夠訪問一個功能齊全的 web UI
來檢視和管理你剛剛安裝的Redis cluster
。
正如您在上面的螢幕截圖中看到的那樣,我們剛剛配置的 Redis
叢集中有 3
個主節點和 3
個從節點。它還顯示每個分割槽中有多少 key
以及正在使用多少 memory
。
更多
在 K8S 中快速部署 Redis Cluster & Redisinsight
公眾號:黑客下午茶