定义环境变量¶
有时需要定义新的环境变量,为集群的组件提供额外的配置。例如,您可以使用它来自定义HAProxy的配置,或者为PMM客户端添加其他选项。
操作符可以将环境变量存储在Kubernetes秘密.下面是一个有几个HAProxy选项的例子:
apiVersion:v1种类:秘密元数据:名字:my-env-var-secrets类型:不透明的数据:HA_CONNECTION_TIMEOUT:MTAwMA = =OK_IF_DONOR:MQ = =HA_SERVER_OPTIONS:Y2hlY2sgaW50ZXIgMzAwMDAgcmlzZSAxIGZhbGwgNSB3ZWlnaHQgMQ = =
如您所见,环境变量被存储为数据-例如,base64编码的字符串,所以你需要编码每个变量的值。例如,To haveHA_CONNECTION_TIMEOUT变量等于1000你可以跑回显-n "1000" | base64——wrap=0(或只是回显-n "1000" | base64如果苹果macOS)在您的本地shell和getMTAwMA = =.
请注意
类似地,你可以从base64编码的字符串中读取选项列表:
$回声“MTAwMA = = "|base64——解码
准备好后,使用以下命令应用YAML文件:
$kubectl创建- f部署/ my-env-secret.yaml
把这个秘密的名字放到envVarsSecret输入任意一个pxc,haproxy或proxysql部分。Yaml的配置文件:
haproxy:....envVarsSecret:my-env-var-secrets....
现在应用部署/ cr.yaml使用以下命令文件:
$kubectl应用- f部署/ cr.yaml
另一个例子展示了如何传递LD_PRELOAD使用mysqld作为内存分配器库名称的环境变量。通常建议尝试使用mysqld的备用分配器库,以防内存使用怀疑高于预期,您可以使用Percona XtraDB Cluster Pods中已经存在的jemalloc分配器,并使用以下环境变量:雷竞技下载官网
LD_PRELOAD=/usr/lib64/libjemalloc.so.1
创建一个新的YAML文件,其内容与前面的示例类似,但是使用LD_PRELOAD变量,存储为base64编码的字符串:
apiVersion:v1种类:秘密元数据:名字:my-new-env-var-secrets类型:不透明的数据:LD_PRELOAD:L3Vzci9saWI2NC9saWJqZW1hbGxvYy5zby4x
如果这个YAML文件被命名为部署/ my-new-env-var-secret,应用它的命令如下所示:
$kubectl创建- f部署/ my-new-env-secret.yaml
现在把这个新的秘密的名字envVarsSecret关键在pxc部分。Yaml的配置文件:
pxc:....envVarsSecret:my-new-env-var-secrets....
别忘了应用部署/ cr.yaml文件,像往常一样:
$kubectl应用- f部署/ cr.yaml