更改MySQL选项¶
您可能需要对应用程序进行配置更改。MySQL允许使用配置文件配置数据库。方法传递选项my.cnf配置文件包含在MySQL配置中,方法如下:
编辑
部署/ cr.yaml文件,使用ConfigMap,
使用秘密对象。
编辑部署/ cr.yaml文件¶
控件中添加选项my.cnf配置文件的配置部分部署/ cr.yaml。这里有一个例子:
规范:secretsName:cluster1-secretsmysql:…配置:|max_connections = 250
看到自定义资源选项,MySQL部分欲知详情。
使用ConfigMap¶
您可以使用configmap和集群重启来重置配置选项。configmap允许Kubernetes在容器化应用程序中传递或更新配置数据。
使用kubectl命令从外部资源创建configmap,更多信息请参见配置Pod使用ConfigMap。
例如,让我们假设您的应用程序需要更多连接。为了增加你的max_connections在MySQL中,你定义一个my.cnf配置文件,设置如下:
max_connections = 250
方法创建configmapmy.cnf与Kubectl创建configmap命令。
类型的组合应使用集群名称mysql后缀作为configmap的命名约定。查询集群名称,可以使用以下命令:
美元kubectl得到ps
的语法Kubectl创建configmap命令是:
美元kubectl创建configmap<集群名称> mysql<资源类型=资源名称>
下面的示例定义了cluster1-mysql作为configmap名称和my.cnf文件作为数据源:
美元kubectl创建configmapcluster1-mysql——从文件=my.cnf
查看已创建的configmap,使用如下命令:
美元kubectl描述configmapscluster1-mysql
使用秘密对象¶
操作符也可以存储配置选项Kubernetes秘密。如果您需要对某些敏感数据进行额外的保护,这可能很有用。
您应该创建一个具有特定名称的Secret对象,该名称由您的集群名称和mysql后缀。
请注意
查询集群名称,可以使用以下命令:
美元kubectl得到ps
配置选项应该放在一个特定的键里面数据部分。此键的名称为my.cnfPerc雷竞技下载官网ona服务器的MySQL pods。
实际选项应该用Base64。
例如,让我们定义一个my.cnf配置文件,并在那里放置一对MySQL选项,我们在前面的例子中使用:
max_connections = 250
你可以通过命令行从你的选项中获得一个Base64编码的字符串,如下所示:
美元猫my.cnf|base64——包装=0
美元猫my.cnf|base64
请注意
类似地,你可以从Base64编码的字符串中读取选项列表:
美元回声“bWF4X2Nvbm5lY3Rpb25zPTI1MAo”|base64——解码
最后,使用yaml文件创建Secret对象。例如,您可以创建一个部署/ mysql-secret.yaml文件内容如下:
apiVersion:v1种类:秘密元数据:名字:cluster1-mysql数据:my.cnf:“bWF4X2Nvbm5lY3Rpb25zPTI1MAo”
准备好后,使用以下命令应用它:
美元kubectl创建- f部署/ mysql-secret.yaml
请注意
不要忘记重新启动MySQL pod的Percona雷竞技下载官网服务器,以确保集群已经更新了配置。您可以通过以下命令来完成:
美元kubectl推出重新启动statefulsetcluster1-mysql
自动调优MySQL选项¶
MySQL的一些配置选项可以由操作员根据可用的Pod内存资源限制自动计算和设置如果用户没有为这些选项指定常量值(在cr.yaml或ConfigMap)。
可自动设置的选项有:
通过innodb_buffer_pool_sizemax_connections
如果定雷竞技下载官网义了Percona Server for MySQL容器资源限制,则使用限制值来计算这些选项。如果没雷竞技下载官网有定义用于MySQL容器的Percona Server资源限制,则不会进行自动调优。
此外,从Operator 0.4.0开始,还有另一种自动调优的方法。你可以使用"{{containerMemoryLimit}}"作为一种价值spec.mysql.configuration如下:
mysql:配置:|(mysqld]innodb_buffer_pool_size={{containerMemoryLimit * 3 / 4}}…