You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kubernetes上部署不启用SSL的InnoDB Cluster

配置InnoDB Cluster允许非TLS/SSL连接

要让你的InnoDB Cluster支持非SSL连接,需要从MySQL Server参数配置和MySQL Router端口/协议配置两部分入手,以下是具体的Helm配置方案:

1. 关闭MySQL Server的强制SSL要求

MySQL Server默认会强制客户端使用SSL连接(require_secure_transport=ON),需要通过Helm参数覆盖该配置,允许非SSL连接:

--set mysql.conf.d.require_secure_transport=OFF

2. 配置MySQL Router开放非SSL端口

默认Router仅开放SSL端口,需要添加非SSL端口并关闭其SSL强制要求,让应用可以通过普通端口连接:

--set router.extraPorts[0].name=mysql \
--set router.extraPorts[0].port=3306 \
--set router.extraPorts[0].targetPort=6446 \
--set router.conf.router.options.default.protocol=classic \
--set router.conf.router.options.default.ssl-mode=DISABLED

参数说明:

  • router.extraPorts:给Router新增3306端口(标准MySQL非SSL端口),映射到Router内部的经典协议端口6446
  • ssl-mode=DISABLED:明确关闭Router的SSL强制校验,允许非SSL连接

3. 完整的Helm安装命令

将上述参数整合到你的原有命令中,最终命令如下:

helm install mycluster mysql-operator/mysql-innodbcluster \
--set credentials.root.user='root' \
--set credentials.root.password='sakila' \
--set credentials.root.host='%' \
--set serverInstances=3 \
--set routerInstances=1 \
--set tls.useSelfSigned=false \
--set mysql.conf.d.require_secure_transport=OFF \
--set router.extraPorts[0].name=mysql \
--set router.extraPorts[0].port=3306 \
--set router.extraPorts[0].targetPort=6446 \
--set router.conf.router.options.default.protocol=classic \
--set router.conf.router.options.default.ssl-mode=DISABLED

4. 验证配置有效性

安装完成后,可通过以下方式验证非SSL连接是否正常:

  • 进入Router Pod,使用非SSL方式连接本地端口:
    kubectl exec -it mycluster-router-0 -- mysql -uroot -psakila -h127.0.0.1 -P3306 --ssl-mode=DISABLED
    
  • 从应用Pod连接Router的Service(mycluster-router)的3306端口,确认能正常访问数据库。

注意事项

非SSL连接会导致数据明文传输,仅建议在K8s集群内部信任网络中使用,切勿暴露到公网环境;若部分应用支持SSL,可保留Router的默认SSL端口(6446),同时开放3306非SSL端口供不同应用按需使用。

内容的提问来源于stack exchange,提问作者Jakob Hürlemann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 05:47:17