k8s 部署Redis哨兵高可用

运维小白 1 阅读 云原生

拉取redis哨兵chart

helm pull bitnami/redis --version 28.0.5

解压

tar -zxvf redis-28.0.5.tgz

使用touch创建 values_custom.yaml并新增以下内容,根据自己的情况改,镜像是我拉下来自定义的根据自己情况改

global:
  security:
    allowInsecureImages: true
image:
  registry: har.wildwintop.com:8443
  repository: base/bitnami-redis
  tag: 8.10.0
architecture: replication
commonConfiguration: |-
  maxmemory 8192mb
  appendonly yes
  appendfsync everysec
auth:
  enabled: true
  password: "xxxxxxxxxxxoooooooooo"
master:
  resources:
    requests:
      memory: 256Mi
      cpu: 100m
    limits:
      memory: 8Gi
      cpu: 1000m
  podAntiAffinityPreset: hard
  nodeSelector:
    app: redis
  persistence:
    enabled: true
    storageClass: "local-path"
    size: 200Gi
replica:
  replicaCount: 3
  resources:
    requests:
      memory: 256Mi
      cpu: 100m
    limits:
      memory: 8Gi
      cpu: 1000m
  podAntiAffinityPreset: hard
  nodeSelector:
    app: redis
  persistence:
    enabled: true
    storageClass: "local-path"
    size: 200Gi
sentinel:
  enabled: true
  image:
    registry: har.wildwintop.com:8443
    repository: base/bitnami-redis-sentinel
    tag: 8.10.0
  masterSet: yourmaster
  quorum: 2
  resources:
    requests:
      memory: 64Mi
      cpu: 50m
    limits:
      memory: 500Mi
      cpu: 500m
  service:
    type: NodePort
    nodePorts:
      redis: "20679"
      sentinel: "22233"
metrics:
  enabled: true
  image:
    registry: har.wildwintop.com:8443
    repository: base/bitnami-redis-exporter
    tag: 8.10.0
  resources:
    requests:
      memory: 256Mi
      cpu: 100m
    limits:
      memory: 2Gi
      cpu: 1000m
  serviceMonitor:
    enabled: true
  

部署storageClass,我这里部署local-path-provisioner

部署redis哨兵

helm install redis redis -f redis/values_custom.yaml

创建nodeport svc共外部访问,文件名redis-np.yaml

apiVersion: v1
kind: Service
metadata:
  name: redis-np
spec:
  type: NodePort
  selector:
    app.kubernetes.io/instance: redis
    app.kubernetes.io/name: redis
    app.kubernetes.io/component: node
  ports:
    - name: redis
      port: 6379
      targetPort: 6379
      nodePort: 30000

部署nodeport svc

kubectl create -f redis-np.yaml

部署后截图