22人参与 • 2025-05-16 • Redis
在kubernetes 1.26.14中部署redis单实例/集群的步骤如下(结合nfs持久化存储与认证配置):
# configmap存储redis配置 apiversion: v1 kind: configmap metadata: name: redis-config data: redis.conf: | bind 0.0.0.0 port 6379 requirepass your_secure_password # 替换为实际密码 appendonly yes dir /data --- # 密码secret apiversion: v1 kind: secret metadata: name: redis-secret type: opaque data: password: ew91cl9zzwn1cmvfcgfzc3dvcmq= # base64编码密码 --- # statefulset定义 apiversion: apps/v1 kind: statefulset metadata: name: redis spec: servicename: redis-headless replicas: 1 # 单实例 selector: matchlabels: app: redis template: metadata: labels: app: redis spec: containers: - name: redis image: redis:7.0.12 command: ["redis-server", "/etc/redis/redis.conf"] ports: - containerport: 6379 volumemounts: - name: config mountpath: /etc/redis - name: data mountpath: /data env: - name: redis_password # 从secret注入密码 valuefrom: secretkeyref: name: redis-secret key: password volumes: - name: config configmap: name: redis-config volumeclaimtemplates: # 动态pvc - metadata: name: data spec: accessmodes: [ "readwriteonce" ] storageclassname: "nfs-redis" # 需提前创建nfs storageclass resources: requests: storage: 5gi --- # headless service(内部dns) apiversion: v1 kind: service metadata: name: redis-headless spec: clusterip: none selector: app: redis ports: - port: 6379 name: redis --- # nodeport service(外部访问) apiversion: v1 kind: service metadata: name: redis-external spec: type: nodeport selector: app: redis ports: - port: 6379 targetport: 6379 nodeport: 31000 # 自定义端口范围30000-32767
kubectl apply -f redis-statefulset.yaml
# 修改statefulset部分 spec: replicas: 6 # 6节点 template: spec: containers: - env: - name: redis_cluster_enabled # 启用集群模式 value: "yes" # 其他部分与单实例相同
# 进入任意redis pod执行集群初始化 kubectl exec -it redis-0 -- redis-cli -a your_password \ --cluster create \ $(kubectl get pods -l app=redis -o jsonpath='{range.items[*]}{.status.podip}:6379 ') \ --cluster-replicas 1
持久化存储
volumeclaimtemplates
自动创建pvc,数据目录/data
持久化安全认证
requirepass
配置强制认证访问服务暴露
redis-0.redis-headless
)集群模式扩展
redis-cli --cluster create
)# 检查资源状态 kubectl get statefulset,pvc,svc -l app=redis # 测试单实例连接 kubectl exec -it redis-0 -- redis-cli -a your_password ping # 查看集群状态(集群模式) kubectl exec -it redis-0 -- redis-cli -a your_password cluster nodes
到此这篇关于k8s redis 部署的项目实践的文章就介绍到这了,更多相关k8s redis 部署内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论