更新数据库和操作符¶
从版本1.1.0开始,MongoDB的Percona Operator允雷竞技下载官网许升级到新版本。集群可升级组件如下:
- 操作员;
- 自定义资源定义,
- 数据库管理系统(Percona Server for M雷竞技下载官网ongoDB)。
推荐的升级场景有两种:
- 升级到Operator的新版本而且雷竞技下载官网Percona Server for MongoDB,
- Minor 雷竞技下载官网Percona Server用于MongoDB版本升级没有操作员升级。
升级Operator和CRD¶
请注意
运营商支持最后三个版本的CRD,所以在技术上可以跳过升级CRD,只升级Operator。如果CRD比新的Operator版本旧不超过三次释放,您将能够继续使用旧的CRD,甚至可以使用它进行Percona Server for MongoDB小版本升级。雷竞技下载官网但是推荐的方法是更新Operator而且CRD。
只支持增量更新到最接近的Operator版本(例如,从1.5.0更新到1.6.0)。若要更新到与当前版本相差不止一个的新版本,请按顺序进行几次增量更新。
请注意
从版本1.14.0开始,Operator使用本地完全限定域名(FQDN)配置复制集成员。在此版本之前,它在副本集配置中使用公开的IP地址,以防暴露副本集。如果你你的复制品曝光了吗并升级到1.14.0,设置副本配置会改为使用FQDN吗.如果您不希望发生这种重新配置,请设置clusterServiceDNSMode自定义资源选项外部升级前。
手动升级¶
升级包括以下步骤。
更新自定义资源对于Operator,从Github的官方存储库中获取,并对基于角色的访问控制进行同样的操作:
$kubectl应用——服务器端- fhttps://raw.githubusercontent.com/雷竞技下载官网percona/percona-server-mongodb-operator/v1.14.0/deploy/crd.yaml美元kubectl应用- fhttps://raw.githubusercontent.com/雷竞技下载官网percona/percona-server-mongodb-operator/v1.14.0/deploy/rbac.yaml现在你应该打补丁对于您的部署,使用更新的版本标记提供必要的映像名称。您可以为当前的Operator版本找到合适的映像名称在认证映像列表中.更新到
1.14.0版本应该如下所示:$kubectl补丁部署雷竞技下载官网percona-server-mongodb-operator\- p”{“规范”:{“模板”:{"规范":{“容器”:[{“名称”:“percona-server-mongo雷竞技下载官网db-operator”,“图像”:“percona / percona-server-mongodb-operator: 1.14.0”}]}}}}”部署滚出将由应用的补丁自动触发。控件可以实时跟踪推出过程
Kubectl rollout状态使用集群名称命令:$kubectl推出状态部署雷竞技下载官网percona-server-mongodb-operator请注意
升级过程中,操作舱上设置的标签不会更新。
通过头盔升级¶
如果你有使用头盔安装操作员,则可以使用执掌升级命令。
如果你安装了Operator没有自定义参数时,可按如下步骤进行升级:
$舵升级my-op雷竞技下载官网percona / psmdb-operator——版本1.14.0的
my-op参数的名称释放对象您在安装舵图时为操作员选择的。如果操作者安装了一些自定义参数,您应该在升级命令中列出这些选项。
请注意
方法可以获得YAML格式的已使用选项列表
Helm get values my-op -a > my-values.yaml命令,该文件可以直接传递给升级命令,如下所示:$舵升级my-op雷竞技下载官网percona / psmdb-operator——版本1.14.0- fmy-values.yaml更新自定义资源对于Operator,从Github的官方存储库中获取,并对基于角色的访问控制进行同样的操作:
$kubectl应用——服务器端- fhttps://raw.githubusercontent.com/雷竞技下载官网percona/percona-server-mongodb-operator/v1.14.0/deploy/crd.yaml美元kubectl应用- fhttps://raw.githubusercontent.com/雷竞技下载官网percona/percona-server-mongodb-operator/v1.14.0/deploy/rbac.yaml
请注意
你可以使用执掌升级仅升级操作符。数据库(Percona Se雷竞技下载官网rver for MongoDB)应该以相同的方式升级,无论您是否使用helm安装它。
为MongoDB升级雷竞技下载官网Percona服务器¶
下一节假设您正在升级集群智能更新策略,当Operator控制对象如何更新时。时启用智能更新策略updateStrategy输入自定义资源配置文件设置为智能更新(这是默认值,也是升级的推荐方式)。
请注意
作为一种替代方法updateStrategy这个键可以用来关机智能更新策略.你可以在适当的节.
手动升级¶
手动更新Percona Serve雷竞技下载官网r for MongoDB的方法如下:
确保
spec.updateStrategy选项中的自定义资源设置为智能更新,spec.upgradeOptions.apply选项设置为从来没有或禁用(这意味着运营商将不会自动进行升级)。...规范:updateStrategy:智能更新upgradeOptions:应用:禁用...现在打补丁到您的自定义资源,设置必要的自定义资源版本和映像名称与较新的版本标签。
请注意
检查您在Kubernetes环境中使用的Operator版本。详情请参阅操作员升级指南升级操作员和CRD(如有需要)。
自定义资源补丁是使用
Kubectl补丁PSMDB命令。可以找到实际的映像名称在认证映像列表中.例如,更新my-cluster-name集群到1.14.0版本应该如下所示:$kubectl补丁psmdbmy-cluster-name——类型=合并——补丁”{"规范":{:“crVersion 1.14.0”,“图像”:“perc雷竞技下载官网ona / percona-server-mongodb: 4.4.18-18”,"backup": {"image": "p雷竞技下载官网ercona/percona-backup-mongodb:2.0.4"},"pmm": {"image": "p雷竞技下载官网ercona/pmm-client:2.35.0"}}}’警告
上面的命令升级了集群的各个组件,包括PMM Client。它是强烈推荐升级PMM服务器之前升级PMM客户端。如果没有这样做,你想避免PMM客户端升级,从镜像列表中删除它,减少两个补丁命令的最后一个,如下所示:
$kubectl补丁psmdbmy-cluster-name——类型=合并——补丁”{"规范":{:“crVersion 1.14.0”,“图像”:“perc雷竞技下载官网ona / percona-server-mongodb: 4.4.18-18”,"backup": {"image": "p雷竞技下载官网ercona/percona-backup-mongodb:2.0.4"}}}’部署滚出将由应用的补丁自动触发。控件可以实时跟踪推出过程
Kubectl rollout状态使用集群名称命令:$kubectl推出状态stsmy-cluster-name-rs0当所有pod都重新启动(包括mongos和Config Server节点)时,更新过程将成功完成雷竞技下载官网Percona Server for MongoDB Sharding是对的)。
自动升级¶
智能更新策略允许您更多地自动化升级。在这种情况下,操作员可以检测新的Percona Server for MongoDB版本的可用性,或者依赖于用户对版本的选择。雷竞技下载官网为了检查新版本的可用性,操作员将查询一个特殊的服务版本管理服务器,以获取有关版本号和有效映像路径的最新信息。
如果当前版本需要升级,操作员将更新自定义资源以反映新的映像路径,并进行连续的Pods删除,允许StatefulSet使用新映像重新部署集群Pods。配置Percona服务器用于Mong雷竞技下载官网oDB升级部署/ cr.yaml配置文件如下:
确保
spec.updateStrategy选项设置为智能更新.改变
spec.crVersion选项以匹配自定义资源定义升级的版本你已经做到了同时升级Operator:...规范:crVersion:1.14.0...请注意
如果不更新crVersion,则只会进行小版本升级。例如,图像
雷竞技下载官网percona-server-mongodb: 5.0.7-6可升级为雷竞技下载官网percona-server-mongodb: 5.0.11-10.设置
upgradeOptions.apply选择从禁用转换为以下值之一:推荐-自动升级将选择标记为推荐的最新版本的软件(对于从头创建的集群,无论镜像路径如何,都会选择Percona Server for MongoDB 6.0版本,而不是Percona Server for MongoDB 5.0或4.4版本;雷竞技下载官网对于已经存在的集群,将保留6.0 vs. 5.0或4.4的分支选择),6.0推荐,5.0推荐,4.4推荐-和上面一样,但是为新提供的集群保留了特定的主要MongoDB版本(比如6.0不会自动代替5.0)。最新的-自动升级将选择最新版本的可用软件(对于从头创建的集群,无论镜像路径如何,都会选择Percona Server for MongoDB 6.0版本,而不是Percona Server for MongoDB 5.0或4.4版本;雷竞技下载官网对于已经存在的集群,将保留6.0 vs. 5.0或4.4的分支选择),6.0最新,5.0最新,4.4最新-和上面一样,但是为新提供的集群保留了特定的主要MongoDB版本(比如6.0不会自动代替5.0)。- 版本号-明确指定所需的版本(版本号指定为6.0.4-3,5.0.14-12等)。可以找到实际版本在认证映像列表中.
确保
versionServiceEndpointkey被设置为有效的版本服务器URL(否则不会发生智能更新)。您可以使用官方Percona版本服务的URL(默认)。雷竞技下载官网集
upgradeOptions.versionServiceEndpoint来https://check.雷竞技下载官网percona.com.或者,您也可以在集群中运行版本服务。这可以用
kubectl命令如下:$kubectl运行服务版本管理——图片=雷竞技下载官网perconalab /服务版本管理- - - env=“SERVE_HTTP = true”——港口11000——暴露请注意
中的自动更新被禁用时,则永远不会检查版本服务
upgradeOptions.apply选择。如果启用了自动更新,但无法到达版本服务URL,则不会执行任何更新。使用
upgradeOptions.schedule选项以CRON格式指定更新检查时间。下面的例子设置了Percona官方版本服务的午夜更新检查:雷竞技下载官网
规范:updateStrategy:智能更新upgradeOptions:应用:推荐versionServiceEndpoint:https://check.雷竞技下载官网percona.com时间表:“00***”...请注意
您可以通过将计划更改为来强制立即升级
* * * * *(不断检查和升级),并在升级完成后将其更改回另一个更保守的计划。不要忘记以通常的方式将您的更改应用到自定义资源:
$kubectl应用- f部署/ cr.yaml请注意
方法禁用自动升级时
应用选项,智能更新功能将继续工作由其他事件触发的更改,如旋转密码,或更改资源值。
主要版本自动升级¶
通常自动升级发生在小版本(例如,从4.4.16-16来4.4.18-18)的MongoDB。主要版本升级(例如从5.0推荐来6.0推荐)是比较复杂的任务,它可能会潜在地影响数据的存储方式以及应用程序与数据库的交互方式(在API更改的情况下)。
操作员一次只支持一个主版本的升级:例如,要将Percona Server for MongoDB的主版本从4.4升级到6.0,应该先将其升级到5.0,然后再单独从5.0升级到6.0。雷竞技下载官网对于主要版本降级也是如此。
请注意
建议在升级前进行备份,也建议在暂存环境中进行升级。
重大版本升级可以使用upgradeOptions.apply输入部署/ cr.yaml配置文件:
规范:upgradeOptions:应用:5.0推荐
请注意
当进行降级时(例如将版本从5.0更改为4.4),请确保删除持久化的不兼容特性和/或更新不兼容的配置设置。主要MongoDB版本之间的兼容性问题可以在上游文档.
默认情况下,操作符不设置FeatureCompatibilityVersion(流量控制阀)以匹配新版本,从而确保在主要版本升级时不会自动启用向后不兼容的特性(这是推荐的安全行为)。可以在任何时候(在升级之后甚至在升级之前)关闭这种向后兼容性upgradeOptions.setFCV标志。部署/ cr.yaml配置文件真正的.
请注意
使用setFeatureCompatibilityVersion设置主要版本回退目前不被操作员支持。因此,建议在重大升级后的一段时间内保持不启用此标志,以确保降级的可能性最小。设置setFCV旗帜真正的与此同时应用只有当整个过程在阶段上进行了测试,并且您对它有100%的把握时,才应该进行标记。
更多升级策略¶
升级集群的推荐方法是使用智能更新策略,当Operator控制对象如何更新时。时启用智能更新策略updateStrategy输入自定义资源配置文件设置为智能更新(这是默认值,也是升级的推荐方式)。
您也可以将该键设置为RollingUpdate或OnDelete,这意味着你必须遵循Kubernetes的低级数据库升级方式.但是要考虑到智能更新战略不仅仅是为了简化升级。在打开时,它允许禁用自动升级,并且仍然控制以适当的顺序重新启动Pods以处理由其他事件触发的更改,例如更新ConfigMap、旋转密码或更改资源值。这就是为什么智能更新即使你根本没有自动化升级的计划,策略也是有用的。