- 创建namespace
sudo kubectl create namespace redis-cluster
- 创建configmap
apiVersion: v1kind: ConfigMapmetadata:name: redis-confnamespace: redis-clusterdata:redis.conf:| appendonly yes cluster-enabled yes cluster-config-file /var/lib/redis/nodes.conf dir /var/lib/redis port 6379
- 创建PV
apiVersion: v1kind: PersistentVolumemetadata:name: nfspv0spec:storageClassName: redis-storage-classcapacity:storage: 1GiaccessModes:- ReadWriteOncenfs:path:"/redis0"server: 192.168.43.205---apiVersion: v1kind: PersistentVolumemetadata:name: nfspv1spec:storageClassName: redis-storage-classcapacity:storage: 1GiaccessModes:- ReadWriteOncenfs:path:"/redis1"server: 192.168.43.205---apiVersion: v1kind: PersistentVolumemetadata:name: nfspv2spec:storageClassName: redis-storage-classcapacity:storage: 1GiaccessModes:- ReadWriteOncenfs:path:"/redis2"server: 192.168.43.205---apiVersion: v1kind: PersistentVolumemetadata:name: nfspv3spec:storageClassName: redis-storage-classcapacity:storage: 1GiaccessModes:- ReadWriteOncenfs:path:"/redis3"server: 192.168.43.205---apiVersion: v1kind: PersistentVolumemetadata:name: nfspv4spec:storageClassName: redis-storage-classcapacity:storage: 1GiaccessModes:- ReadWriteOncenfs:path:"/redis4"server: 192.168.43.205---apiVersion: v1kind: PersistentVolumemetadata:name: nfspv5spec:storageClassName: redis-storage-classcapacity:storage: 1GiaccessModes:- ReadWriteOncenfs:path:"/redis5"server: 192.168.43.205---apiVersion: v1kind: PersistentVolumemetadata:name: nfspv6spec:storageClassName: redis-storage-classcapacity:storage: 1GiaccessModes:- ReadWriteOncenfs:path:"/redis6"server: 192.168.43.205---apiVersion: v1kind: PersistentVolumemetadata:name: nfspv7spec:storageClassName: redis-storage-classcapacity:storage: 1GiaccessModes:- ReadWriteOncenfs:path:"/redis7"server: 192.168.43.205
- 创建head-less service
StatefulSet需建立headlessService
apiVersion: v1kind: Servicemetadata:name: redis-headless-servernamespace: redis-clusterlabels:app: redis-cluster-appspec:ports:-name: redis-portport:6379clusterIP: Noneselector:app: redis-cluster-app
- 创建statefulset
–cluster-announce-ip $(MY_POD_IP) 可在pod重启集群自动恢复时带入新ip
apiVersion: apps/v1kind: StatefulSetmetadata:name: redis-appnamespace: redis-clusterspec:selector:matchLabels:app: redis-cluster-appserviceName:"redis-cluster-app"replicas:6template:metadata:labels:app: redis-cluster-appspec:containers:-name: redisimage:"redis:6.0.6"command:-"redis-server"args:-"/etc/redis/redis.conf"-"--protected-mode"-"no"-"--cluster-announce-ip"-" $(MY_POD_IP)"ports:-name: rediscontainerPort:6379protocol:"TCP"-name: clustercontainerPort:16379protocol:"TCP"volumeMounts:-name:"redis-conf"mountPath:"/etc/redis"-name:"redis-data"mountPath:"/var/lib/redis"env:-name: MY_POD_IPvalueFrom:fieldRef:fieldPath: status.podIPvolumes:-name:"redis-conf"configMap:name:"redis-conf"items:-key:"redis.conf"path:"redis.conf"volumeClaimTemplates:-metadata:name: redis-dataspec:accessModes:["ReadWriteOnce"]storageClassName:"redis-storage-class"resources:requests:storage: 1Gi
- 创建redis cluster
kubectl get pods -lapp=redis-cluster-app -ojsonpath='{range.items[*]}{.status.podIP}:6379 ' -n redis-cluster#取得redis pod ip
kubectl -n redis-clusterexec -it redis-app-0 -- redis-cli --cluster create --cluster-replicas1\$(kubectl get pods -lapp=redis-cluster-app -ojsonpath='{range.items[*]}{.status.podIP}:6379 ' -n redis-cluster)
7 创建service
apiVersion: v1kind: Servicemetadata:name: redis-servicenamespace: redis-clusterlabels:app: redis-cluster-appspec:ports:-name: redis-portprotocol:"TCP"port:6379targetPort:6379selector:app: redis-cluster-app
参考
https://www.tpisoftware.com/tpu/articleDetails/2011
热门文章
- 聊城宠物市场在什么地方(在聊城有最大的宠物店吗)
- 长沙美容专业学校(长沙美容专业的大专)
- 教你如何获取Harbor的带tag的镜像清单_docker
- 狂犬疫苗需要打几针(狂犬疫苗需要多少钱)
- js模块 – amd cmd commonjs esm umd
- 2月13日 - 最高速度19.5M/S,2025年Surfboard每天更新免费节点订阅链接,干净IP机场推荐
- 动物预防疾病控制中心可以打疫苗吗多少钱(动物疫病预防控制中心给宠物看病吗)
- 1月24日 - 最高速度20.2M/S,2025年Surfboard每天更新免费节点订阅链接,干净IP机场推荐
- 小动物疫苗注射证明去哪里开(动物疫苗证是什么样的)
- 2月25日 - 最高速度22.4M/S,2025年Surfboard每天更新免费节点订阅链接,干净IP机场推荐