如何配置Bitnami Redis Helm Chart实现实例与Sentinel分Pod部署
解决Redis主/从与Sentinel Pod分离的配置方案
Bitnami Redis Helm Chart默认在启用Sentinel时,会将Sentinel容器嵌入到Redis主节点和从节点的Pod中。要实现每个组件独立Pod部署,需通过以下配置关闭主/从Pod内的Sentinel容器,并确保独立的Sentinel实例被部署:
修改后的Terraform配置片段
更新helm_release资源中的values部分,添加关键参数以分离组件:
resource "helm_release" "redis" { name = "redis" namespace = "redis" chart = "redis" repository = "oci://registry-1.docker.io/bitnamicharts" version = "20.0.5" create_namespace = true values = [ <<-EOF architecture: replication persistence: enabled: true existingClaim: ${kubernetes_persistent_volume_claim.longhorn_pvc.metadata[0].name} master: persistence: enabled: false sentinel: container: enabled: false # 禁止主节点Pod中启动Sentinel容器 replica: persistence: enabled: false replicaCount: 2 sentinel: container: enabled: false # 禁止从节点Pod中启动Sentinel容器 sentinel: enabled: true replicaCount: 3 # 独立部署3个Sentinel实例 auth: password: ${var.redis_password} ingress: enabled: true annotations: {} hosts: - host: ${var.redis_host} paths: - / tls: [] EOF ] depends_on = [rke_cluster.k8s, local_file.kubeconfig] }
配置说明
architecture: replication:明确使用主从复制架构(Chart默认值,显式声明更清晰)master.sentinel.container.enabled: false:关闭主节点Pod内的Sentinel容器replica.sentinel.container.enabled: false:关闭所有从节点Pod内的Sentinel容器sentinel.replicaCount: 3:指定独立部署3个Sentinel实例,每个实例运行在单独Pod中
预期部署结果
执行terraform apply后,Redis命名空间下会生成以下独立Pod:
redis-master-0:仅包含Redis主节点容器redis-replica-0、redis-replica-1:各包含一个Redis从节点容器redis-sentinel-0、redis-sentinel-1、redis-sentinel-2:各包含一个Sentinel实例容器
可通过以下命令验证:
kubectl get pods -n redis
内容的提问来源于stack exchange,提问作者Muhammed Celik
相关产品推荐
相关产品推荐

