rancher redis helm 安装

Redis

Redis是高级键值缓存和存储。它通常被称为数据结构服务器,因为键可以包含字符串,哈希,列表,集合,排序集合,位图和超级日志。

TL; DR;

# Testing configuration
$ helm install my-release <helm-repo>/redis
# Production configuration
$ helm install my-release <helm-repo>/redis --values values-production.yaml

介绍

该图表使用Helm软件包管理器在Kubernetes集群上引导了Redis部署。

Bitnami图表可与Kubeapps一起用于在群集中部署和管理Helm Charts。该图表已经过测试,可以在BKPR上与NGINX Ingress,证书管理器,流利的软件和Prometheus一起使用

先决条件

  • 总督1.12+
  • Helm 2.11+或Helm 3.0-beta3 +
  • 基础架构中的PV供应商支持

安装图表

要使用发布名称安装图表my-release

$ helm install my-release <helm-repo>/redis

该命令以默认配置在Kubernetes集群上部署Redis。“参数”部分列出了可以在安装过程中配置的参数。

提示:列出所有使用的版本helm list

卸载图表

要卸载/删除my-release部署:

$ helm delete my-release

该命令将删除与图表关联的所有Kubernetes组件并删除发行版。

参量

下表列出了Redis图表的可配置参数及其默认值。

参数描述默认
global.imageRegistry全局Docker映像注册表nil
global.imagePullSecrets全局Docker注册表机密名称作为数组[] (不向已部署的吊舱添加图像拉取秘密)
global.storageClass用于动态配置的全局存储类nil
global.redis.passwordRedis密码(覆盖passwordnil
image.registryRedis映像注册表docker.io
image.repositoryRedis映像名称bitnami/redis
image.tagRedis图像标签{TAG_NAME}
image.pullPolicy图片拉出政策IfNotPresent
image.pullSecrets将docker-registry秘密名称指定为数组nil
nameOverride使用字符串部分覆盖redis.fullname模板的字符串(将在发行版名称之前)nil
fullnameOverride使用字符串完全覆盖redis.fullname模板的字符串nil
cluster.enabled使用主从拓扑true
cluster.slaveCount奴隶数量1
existingSecret现有秘密对象的名称(用于密码验证)nil
existingSecretPasswordKey密钥名称,其中包含要从现有机密中检索的密码nil
usePassword使用密码true
usePasswordFile将密码挂载为文件而不是环境变量false
passwordRedis密码(如果设置了现存密码,则忽略此密码)随机产生
configmap其他通用Redis节点配置(此值作为模板评估)参见values.yaml
clusterDomain使用的Kubernetes DNS域名cluster.local
networkPolicy.enabled启用网络策略false
networkPolicy.allowExternal不需要客户端标签进行连接true
networkPolicy.ingressNSMatchLabels允许来自其他名称空间的连接{}
networkPolicy.ingressNSPodMatchLabels对于其他名称空间,按Pod标签和名称空间标签进行匹配{}
securityContext.enabled启用安全上下文(redis主节点和从节点pod)true
securityContext.fsGroup容器的组ID(redis主节点和从节点pod)1001
securityContext.runAsUser容器的用户标识(redis主节点和从节点pod)1001
securityContext.sysctls设置容器的命名空间sysctls(redis主和从属pod)nil
serviceAccount.create指定是否应创建ServiceAccountfalse
serviceAccount.name要创建的ServiceAccount的名称使用全名模板生成
rbac.create指定是否应创建RBAC资源false
rbac.role.rules创建规则[]
metrics.enabled启动边车普罗米修斯出口商false
metrics.image.registryRedis导出器映像注册表docker.io
metrics.image.repositoryRedis导出器映像名称bitnami/redis-exporter
metrics.image.tagRedis导出器图像标签{TAG_NAME}
metrics.image.pullPolicy图片拉出政策IfNotPresent
metrics.image.pullSecrets将docker-registry秘密名称指定为数组nil
metrics.extraArgs二进制的额外参数;这里可能的值{}
metrics.podLabels公制出口商吊舱的附加标签{}
metrics.podAnnotationsMetrics导出器窗格的附加注释{}
metrics.resources出口商资源请求/限制内存:256Mi,CPU:100m
metrics.serviceMonitor.enabled如果true,则创建Prometheus Operator ServiceMonitor(也必须metrics.enabledtruefalse
metrics.serviceMonitor.namespacePrometheus在其中运行的可选名称空间nil
metrics.serviceMonitor.interval刮取指标的频率(默认使用,回溯至Prometheus的默认设置)nil
metrics.serviceMonitor.selector默认为kube-prometheus安装(建议使用CoreOS),但应根据Prometheus安装进行设置{ prometheus: kube-prometheus }
metrics.service.typeKubernetes服务类型(redis指标)ClusterIP
metrics.service.annotations监视服务的注释(redis主服务器和redis从服务){}
metrics.service.labels指标服务的其他标签{}
metrics.service.loadBalancerIP如果redis指标服务类型为loadBalancerIP LoadBalancernil
metrics.priorityClassName指标导出器Pod priorityClassName{}
metrics.prometheusRule.enabled将其设置为true可以为Prometheus运算符创建prometheusRulesfalse
metrics.prometheusRule.additionalLabels普罗米修斯会发现其他可用于普罗米修斯的标签{}
metrics.prometheusRule.namespace应该在其中创建prometheusRules资源的名称空间与Redis相同的名称空间
metrics.prometheusRule.rules要创建的规则,请查看示例值。[]
persistence.existingClaim提供一个现有的PersistentVolumeClaimnil
master.persistence.enabled使用PVC保留数据(主节点)true
master.persistence.path安装卷的路径,以使用其他图像/data
master.persistence.subPath要挂载的卷的子目录""
master.persistence.storageClass背衬PVC的存储类别generic
master.persistence.accessModes永久卷访问模式[ReadWriteOnce]
master.persistence.size数据量大小8Gi
master.persistence.matchLabelsmatchLabels持久卷选择器{}
master.persistence.matchExpressionsmatchExpressions持久卷选择器{}
master.statefulset.updateStrategyStatefulSet的更新策略onDelete
master.statefulset.rollingUpdatePartition分区更新策略nil
master.podLabelsRedis主容器的其他标签{}
master.podAnnotationsRedis主容器的其他注释{}
redisPortRedis端口(在主服务器和从服务器中)6379
master.commandRedis主入口点字符串。redis-server如果未提供该命令,则执行该命令。/run.sh
master.configmap主节点的其他Redis配置(此值作为模板评估)nil
master.disableCommands禁用的Redis命令数组(主)["FLUSHDB", "FLUSHALL"]
master.extraFlagsRedis主站其他命令行标志[]
master.nodeSelector用于容器分配的Redis主节点标签{“ beta.kubernetes.io/arch”:“ amd64”}
master.tolerationsRedis主容器分配的公差标签[]
master.affinityRedis主Pod分配的相似性设置{}
master.schedulerName备用调度程序的名称nil
master.service.typeKubernetes服务类型(redis主服务器)ClusterIP
master.service.portKubernetes服务端口(redis主服务器)6379
master.service.nodePortKubernetes服务nodePort(redis master)nil
master.service.annotationsRedis主服务的注释{}
master.service.labelsRedis主服务的附加标签{}
master.service.loadBalancerIP如果redis主服务类型为loadBalancerIP LoadBalancernil
master.service.loadBalancerSourceRanges如果redis主服务类型为loadBalancerSourceRanges LoadBalancernil
master.resourcesRedis主CPU /内存资源请求/限制内存:256Mi,CPU:100m
master.livenessProbe.enabled打开和关闭活动度探针(redis主窗格)true
master.livenessProbe.initialDelaySeconds启动活动性探测之前的延迟(redis主窗格)30
master.livenessProbe.periodSeconds多久执行一次探查(redis master pod)30
master.livenessProbe.timeoutSeconds探测超时时(redis主容器)5
master.livenessProbe.successThreshold探针失败后的最小连续成功次数(redis主容器)1
master.livenessProbe.failureThreshold成功后将被视为探针的最小连续失败数。5
master.readinessProbe.enabled打开和关闭就绪探针(redis主容器)true
master.readinessProbe.initialDelaySeconds启动就绪探针之前的延迟(redis主容器)5
master.readinessProbe.periodSeconds多久执行一次探查(redis master pod)10
master.readinessProbe.timeoutSeconds探测超时时(redis主容器)1
master.readinessProbe.successThreshold探针失败后的最小连续成功次数(redis主容器)1
master.readinessProbe.failureThreshold成功后将被视为探针的最小连续失败数。5
master.priorityClassNameRedis Master Pod PriorityClassName{}
volumePermissions.enabled启用用于更改注册表中的卷权限的初始化容器(对于默认的k8runAsUserfsUser值不起作用的情况)false
volumePermissions.image.registry初始化容器容量许可映像注册表docker.io
volumePermissions.image.repository初始化容器容量许可映像名称bitnami/minideb
volumePermissions.image.tag初始化容器体积许可图像标签buster
volumePermissions.image.pullPolicy初始化容器容量许可映像拉取策略Always
volumePermissions.resources初始化容器的容量许可CPU /内存资源请求/限制{}
slave.service.typeKubernetes服务类型(redis从属)ClusterIP
slave.service.nodePortKubernetes服务nodePort(redis从属)nil
slave.service.annotationsRedis从站服务注释{}
slave.service.labelsRedis从站服务的附加标签{}
slave.service.portKubernetes服务端口(redis从站)6379
slave.service.loadBalancerIP如果Redis从属服务类型为LoadBalancerIP LoadBalancernil
slave.service.loadBalancerSourceRanges如果Redis从属服务类型为loadBalancerSourceRanges LoadBalancernil
slave.commandRedis从站入口点数组。如果未提供,则使用docker映像的ENTRYPOINT。/run.sh
slave.configmap从节点的其他Redis配置(此值作为模板评估)nil
slave.disableCommandsRedis命令数组以禁用(从属)[FLUSHDB, FLUSHALL]
slave.extraFlagsRedis从站附加命令行标志[]
slave.livenessProbe.enabled打开和关闭活动性探针(redis从属Pod)true
slave.livenessProbe.initialDelaySeconds启动活动性探测之前的延迟(redis从属Pod)30
slave.livenessProbe.periodSeconds多久执行一次探测(redis从属Pod)10
slave.livenessProbe.timeoutSeconds探测超时时(redis从属Pod)5
slave.livenessProbe.successThreshold探针失败后的最小连续成功次数(redis slave pod)1
slave.livenessProbe.failureThreshold成功后将被视为探针的最小连续失败数。5
slave.readinessProbe.enabled打开和关闭slave.readiness探针(redis slave pod)true
slave.readinessProbe.initialDelaySeconds启动slave.readiness探针之前的延迟(redis slave pod)5
slave.readinessProbe.periodSeconds多久执行一次探测(redis从属Pod)10
slave.readinessProbe.timeoutSeconds探测超时时(redis从属Pod)10
slave.readinessProbe.successThreshold探针失败后的最小连续成功次数(redis slave pod)1
slave.readinessProbe.failureThreshold成功后将被视为探针的最小连续失败数。(redis奴隶吊舱)5
slave.persistence.enabled使用PVC保留数据(从节点)true
slave.persistence.path安装卷的路径,以使用其他图像/data
slave.persistence.subPath要挂载的卷的子目录""
slave.persistence.storageClass背衬PVC的存储类别generic
slave.persistence.accessModes永久卷访问模式[ReadWriteOnce]
slave.persistence.size数据量大小8Gi
slave.persistence.matchLabelsmatchLabels持久卷选择器{}
slave.persistence.matchExpressionsmatchExpressions持久卷选择器{}
slave.statefulset.updateStrategyStatefulSet的更新策略onDelete
slave.statefulset.rollingUpdatePartition分区更新策略nil
slave.podLabelsRedis从属Pod的附加标签master.podLabels
slave.podAnnotationsRedis从属Pod的附加注释master.podAnnotations
slave.schedulerName备用调度程序的名称nil
slave.resourcesRedis从站CPU /内存资源请求/限制{}
slave.affinity为奴隶启用节点/荚亲和力{}
slave.priorityClassNameRedis从站pod priorityClassName{}
sentinel.enabled启用哨兵容器false
sentinel.usePassword使用标记容器的密码true
sentinel.masterSet前哨主机组的名称mymaster
sentinel.initialCheckTimeout查询Redis Sentinel服务以获取活动Sentinel列表的超时5
sentinel.quorum选举新主人的法定人数2
sentinel.downAfterMilliseconds检测Redis节点超时60000
sentinel.failoverTimeout执行选举故障转移的超时18000
sentinel.parallelSyncs集群中的并行同步数1
sentinel.portRedis Sentinel端口26379
sentinel.configmap前哨节点的其他Redis配置(此值作为模板评估)nil
sentinel.staticID为哨兵副本启用静态ID(如果禁用的ID将在启动时随机生成)false
sentinel.service.typeKubernetes服务类型(redis标记)ClusterIP
sentinel.service.nodePortKubernetes服务nodePort(redis sentinel)nil
sentinel.service.annotationsRedis哨兵服务注释{}
sentinel.service.labelsRedis哨兵服务的附加标签{}
sentinel.service.redisPort用于Redis只读操作的Kubernetes服务端口6379
sentinel.service.sentinelPort用于Redis标记的Kubernetes服务端口26379
sentinel.service.redisNodePort用于Redis只读操作的Kubernetes服务节点端口``
sentinel.service.sentinelNodePort用于Redis标记的Kubernetes服务节点端口``
sentinel.service.loadBalancerIP如果Redis前哨服务类型为LoadBalancerIP LoadBalancernil
sentinel.livenessProbe.enabled打开和关闭活动性探针(redis前哨吊舱)true
sentinel.livenessProbe.initialDelaySeconds启动活力探测之前的延迟(redis前哨吊舱)5
sentinel.livenessProbe.periodSeconds多久执行一次探测(redis前哨容器)5
sentinel.livenessProbe.timeoutSeconds探针超时时(redis前哨容器)5
sentinel.livenessProbe.successThreshold探针失败后的最小连续成功次数(redis前哨容器)1
sentinel.livenessProbe.failureThreshold成功后将被视为探针的最小连续失败数。5
sentinel.readinessProbe.enabled打开和关闭sentinel.readiness探针(redis sentinel pod)true
sentinel.readinessProbe.initialDelaySeconds启动sendinel.readiness探针之前的延迟(redis sentinel pod)5
sentinel.readinessProbe.periodSeconds多久执行一次探测(redis前哨吊舱)5
sentinel.readinessProbe.timeoutSeconds探针超时时(redis前哨容器)1
sentinel.readinessProbe.successThreshold探针失败后的最小连续成功次数(redis前哨容器)1
sentinel.readinessProbe.failureThreshold成功后将被视为探针的最小连续失败数。(redis前哨容器)5
sentinel.resourcesRedis前哨CPU /内存资源请求/限制{}
sentinel.image.registryRedis Sentinel映像注册表docker.io
sentinel.image.repositoryRedis Sentinel映像名称bitnami/redis-sentinel
sentinel.image.tagRedis Sentinel图片标签{TAG_NAME}
sentinel.image.pullPolicy图片拉出政策IfNotPresent
sentinel.image.pullSecrets将docker-registry秘密名称指定为数组nil
sysctlImage.enabled启用初始化容器来修改内核设置false
sysctlImage.commandsysctlImage命令执行[]
sysctlImage.registrysysctlImage初始化容器注册表docker.io
sysctlImage.repositorysysctlImage初始化容器名称bitnami/minideb
sysctlImage.tagsysctlImage初始化容器标签buster
sysctlImage.pullPolicysysctlImage初始化容器拉取策略Always
sysctlImage.mountHostSys将主机/sys文件夹挂载到/host-sysfalse
sysctlImage.resourcessysctlImage初始化容器CPU /内存资源请求/限制{}
podSecurityPolicy.create指定是否应创建PodSecurityPolicyfalse

使用的--set key=value[,key=value]参数指定每个参数helm install。例如,

$ helm install my-release \
  --set password=secretpassword \
    <helm-repo>/redis

上面的命令将Redis服务器密码设置为secretpassword

或者,可以在安装图表时提供指定参数值的YAML文件。例如,

$ helm install my-release -f values.yaml <helm-repo>/redis

提示:您可以使用默认值。

minikube用户注意事项minikube的当前版本(在撰写本文时为v0.24.1)提供hostPath仅可由root写入的持久卷。使用图表默认值会导致Redis Pod在尝试写入/bitnami目录时导致Pod失败。考虑使用安装Redis --set persistence.enabled=false。有关更多信息,请参见minikube 1990

配置和安装详细信息

滚动式VS不可变标签

强烈建议在生产环境中使用不可变标签。这样可以确保如果使用不同的映像更新相同的标记,则部署不会自动更改。

如果存在主容器的新版本,重大更改或严重漏洞,Bitnami将发布新图表以更新其容器。

生产配置

该图表包括一个values-production.yaml文件,您可以在其中找到一些与常规配置相比面向生产配置的参数values.yaml。您可以使用此文件而不是默认文件。

  • 奴隶数量:
    ```diff

  • cluster.slaveCount:2

  • cluster.slaveCount:3

     
  • 启用NetworkPolicy:
    ```diff

  • networkPolicy.enabled:否

  • networkPolicy.enabled:true

     
  • 启动侧面汽车普罗米修斯出口商:
    ```diff

  • metrics.enabled:假

  • metrics.enabled:true

     

集群拓扑

默认值:主从

使用安装图表时cluster.enabled=true,它将部署Redis主StatefulSet(仅允许一个主节点)和Redis从StateStatefulSet。从属设备将是主设备的只读副本。将公开两个服务:

  • Redis主服务:指向可以执行读写操作的主服务器
  • Redis从站服务:指向从站,其中仅允许读取操作。

万一主节点崩溃,从节点将等待,直到Kubernetes Controller Manager再次重新生成主节点为止。

奴隶主奴

使用cluster.enabled=true和安装图表时sentinel.enabled=true,它将部署Redis主服务器StatefulSet(仅允许一个主服务器)和Redis从属StatefulSet。在这种情况下,豆荚将包含一个带有Redis Sentinel的额外容器。此容器将形成Redis Sentinel节点的群集,如果实际的主机失败,它将提升一个新的主机。除此之外,仅公开一项服务:

  • Redis服务:公开端口6379(用于Redis只读操作)和端口26379(用于访问Redis Sentinel)。

对于只读操作,请使用端口6379访问服务。对于写操作,必须使用以下命令(使用redis-cli或类似命令)访问Redis Sentinel群集并查询当前的主服务器:

SENTINEL get-master-addr-by-name <name of your MasterSet. Example: mymaster>

该命令将返回当前主机的地址,可以从群集内部对其进行访问。

万一当前的主节点崩溃,Sentinel容器将选择一个新的主节点。

使用密码文件

要将密码文件用于Redis,您需要创建一个包含密码的秘密。

注意:重要的是必须调用带有密码的文件redis-password

然后使用秘密名称作为参数来部署Helm Chart:

usePassword=true
usePasswordFile=true
existingSecret=redis-password-file
sentinels.enabled=true
metrics.enabled=true

指标

该图表可以选择启动Prometheus的指标导出器。指标终结点(端口9121)在服务中公开。可以使用类似于示例Prometheus scrape配置中所述的方法从群集中擦除指标。如果要从集群外部抓取指标,则可以利用Kubernetes API代理访问端点。

主机内核设置

Redis可能需要对主机内核进行一些更改才能按预期工作,特别是增加somaxconn价值并禁用透明大页面。
为此,您可以使用sysctlImage配置值设置特权的initContainer ,例如:

sysctlImage:
  enabled: true
  mountHostSys: true
  command:
    - /bin/sh
    - -c
    - |-
      install_packages procps
      sysctl -w net.core.somaxconn=10000
      echo never > /host-sys/kernel/mm/transparent_hugepage/enabled

另外,对于Kubernetes 1.12+,您可以设置securityContext.sysctls为主和从Pod配置sysctls 。例:

securityContext:
  sysctls:
  - name: net.core.somaxconn
    value: "10000"

请注意,这不会禁用透明大表。

坚持不懈

默认情况下,统计图在路径上安装持久卷/data。使用动态卷供应创建卷。如果持久卷声明已存在,请在安装期间指定它。

现有的PersistentVolume索赔

  1. 创建PersistentVolume
  2. 创建PersistentVolumeClaim
  3. 安装图表
$ helm install my-release --set persistence.existingClaim=PVC_NAME <helm-repo>/redis

网络政策

要为Redis启用网络策略,请安装
实现Kubernetes NetworkPolicy规范的网络插件
并将其设置networkPolicy.enabledtrue

对于Kubernetes v1.5和v1.6,还必须通过设置
DefaultDeny名称空间注释来打开NetworkPolicy 。注意:这将对名称空间中的所有Pod强制执行策略:

kubectl annotate namespace default "net.beta.kubernetes.io/network-policy={\"ingress\":{\"isolation\":\"DefaultDeny\"}}"

启用NetworkPolicy后,只有带有生成的客户端标签的Pod
才能连接到Redis。
成功安装后,该标签将显示在输出中。

使用networkPolicy.ingressNSMatchLabels来自其他命名空间的pod可以连接到Redis。设置networkPolicy.ingressNSPodMatchLabels为与匹配的命名空间中的pod标签匹配。例如,对于标记为的名称空间redis=external和该名称空间中的标记为podredis-client=true的字段,应设置以下字段:

networkPolicy:
  enabled: true
  ingressNSMatchLabels:
    redis: external
  ingressNSPodMatchLabels:
    redis-client: true

将现有发行版升级到新的主要版本

图表的主要版本更改(例如v1.2.3-> v2.0.0)表明存在
不兼容的重大更改,需要手动操作。

到10.0.0

对于带有的发行版usePassword: true,该值sentinel.usePassword控制密码验证是否也适用于前哨端口。true对于安全配置,默认为,但是可以考虑以下情况而禁用:

  • 5.0.1在引入身份验证功能之前使用redis-sentinel版本。
  • 需要更新redis客户端以支持哨兵身份验证的位置。

如果使用主/从拓扑,或者使用usePassword: false,则无需采取任何措施。

至8.0.18

对于带有metrics.enabled: true导出器映像默认标签的发行版,现在为v1.x.x。这引入了许多更改,包括度量标准名称。您现在要使用此仪表板。请参阅redis_exporter github页面以获取更多详细信息。

至7.0.0

此版本导致Redis Master StatefulSet定义发生更改,因此命令头盔升级将无法立即使用。或者,可以执行以下操作之一:

  • 推荐:创建Redis Master PVC的克隆(例如,使用类似项目的项目)。然后重新使用此克隆的PVC启动新版本。

    helm install my-release <helm-repo>/redis --set persistence.existingClaim=<NEW PVC>
  • 替代方案(不建议这样做,后果自负):helm delete --purge不删除分配给Redis Master StatefulSet的PVC。因此,可以执行以下命令来升级发行版

    helm delete --purge <RELEASE>
    helm install <RELEASE> <helm-repo>/redis

图表的早期版本未在从属服务器中使用持久性,因此此升级会将其添加到它们中。另一个重要的变化是,没有值从主机继承到从机。例如,在6.0.0中slaves.readinessProbe.periodSeconds,如果为空,则将其设置为master.readinessProbe.periodSeconds。这种方法缺乏透明度,难以维护。从现在开始,必须像配置主机一样​​配置所有从机参数。

一些值也发生了变化:

  • master.portslave.port已更改为redisPort(主机和从机的值相同)
  • master.securityContext并且slave.securityContext已更改为securityContext(主机和从机的值相同)

默认情况下,升级不会更改群集拓扑。如果要使用Redis Sentinel,则必须显式设置sentinel.enabledtrue

至6.0.0

图表的早期版本使用init容器来更改卷的权限。如果securityContext模板中的指令还不够用(例如,使用cephFS),则可以这样做。在图表的此新版本中,默认情况下禁用此容器(这不会影响大多数部署)。如果您的安装仍然需要起始容器,执行helm upgrade--set volumePermissions.enabled=true

至5.0.0

对于包含redis-server
redis-cli二进制文件的任何映像,此版本中的默认映像可能会切换出来。如果redis-server不是默认图像ENTRYPOINT,则master.command
必须指定。

重大变化

  • master.args并被slave.args删除。使用master.commandslave.command代替以覆盖图像入口点,或master.extraFlags将其他标志传递给redis-server
  • disableCommands 现在被解释为字符串数组,而不是逗号分隔值的字符串。
  • master.persistence.path现在默认为/data

4.0.0

此版本chart从中删除了spec.selector.matchLabels
不变的标签StatefulSet apps/v1beta2。它被无意中
添加,导致任何后续升级失败。参见https://github.com/helm/charts/issues/7726

它还修复了https://github.com/helm/charts/issues/7726extensions/v1beta1如果spec.selector未明确设置,则无法升级部署。

最后,它通过删除可变标签来修复https://github.com/helm/charts/issues/7803spec.VolumeClaimTemplate.metadata.labels从而使其可升级。

为了升级,请在升级之前删除Redis StatefulSet:

$ kubectl delete statefulsets.apps --cascade=false my-release-redis-master

并编辑Redis从属(以及指标,如果启用)部署:

kubectl patch deployments my-release-redis-slave --type=json -p='[{"op": "remove", "path": "/spec/selector/matchLabels/chart"}]'
kubectl patch deployments my-release-redis-metrics --type=json -p='[{"op": "remove", "path": "/spec/selector/matchLabels/chart"}]'

显着变化

9.0.0

由于Redis导出器代码的最新更改,因此度量标准导出器已从单独的部署更改为Sidecar容器。检查官方页面以获取更多信息。指标容器映像已从oliver006 / redis_exporter更改为bitnami / redis-exporter(Bitnami维护的Oliver006 / redis_exporter软件包)。

7.0.0

为了在从站发生故障的情况下提高性能,我们向只读从站添加了持久性。这意味着我们从Deployment移到StatefulSets。这不会影响从图表的早期版本进行的升级,因为部署根本不包含任何持久性。

此版本还允许在Redis Pod内部启用Redis Sentinel容器(默认情况下禁用此功能)。万一主服务器崩溃,将选择一个新的Redis节点作为主服务器。为了查询当前的主服务器(不公开Redis主服务器服务),您需要首先查询Sentinel群集。在本节中找到更多信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值