使用Helm安装Halo最新版本指南
一、数据库部署方案
Helm支持MySQL和PostgreSQL两种数据库部署方式,同时兼容外部数据库配置。
本指南采用外部MySQL数据库方案,推荐使用虚拟机部署MySQL 5.7.17版本,具体部署步骤可参考:虚拟机部署MySQL单机5.7.17版本
二、Halo安装流程
2.1 环境准备
Helm版本要求:
建议使用v3.9.4及以上版本,低版本(如v3.5.2)可能导致安装失败。可通过以下命令验证版本:
helm version
# 输出示例:
# version.BuildInfo{Version:"v3.9.4", GitCommit:"dbc6d8e20fe1d58d50e6ed30f09a04a77e4c68db", ...}
2.2 Helm仓库配置
执行以下命令添加Halo官方仓库并更新本地索引:
helm repo add halo https://halo-sigs.github.io/charts/
helm repo update
2.3 核心安装命令
使用外部MySQL数据库的安装示例:
helm install halo halo/halo \
--set mysql.enabled=false \
--set postgresql.enabled=false \
--set externalDatabase.platform=mysql \
--set externalDatabase.host=192.168.3.7 \
--set externalDatabase.port=3306 \
--set externalDatabase.user=halotest \
--set externalDatabase.password=Halotest@345 \
--set externalDatabase.ssl=false \
--set externalDatabase.enabledTLSProtocols="TLSv1.1" \
--set externalDatabase.database=halotest \
-n default
关键参数说明:
externalDatabase.*
:外部数据库连接配置enabledTLSProtocols
:强制启用TLSv1.1协议ssl=false
:禁用SSL加密连接
三、常见问题解决
3.1 数据库连接异常
典型错误:
io.asyncer.r2dbc.mysql.client.MySqlConnectionClosedException:
Connection unexpectedly closed at ...
Caused by: javax.net.ssl.SSLHandshakeException:
No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
问题根源:
- MySQL 5.7.17-log版本不支持TLS 1.2协议
- JDK 11+默认禁用TLS 1.1及以下版本
解决方案:
修改数据库连接URL,强制指定TLS版本:
# 原deployment中配置
SPRING_R2DBC_URL: 'r2dbc:pool:mysql://192.168.3.7:3306/halotest'
# 修改后变成
SPRING_R2DBC_URL: 'r2dbc:mysql://192.168.3.7:3306/halotest?ssl=false&tlsVersion=TLSv1.1'
四、系统访问与初始化
4.1 NodePort访问
获取服务访问地址:
export NODE_PORT=$(kubectl get svc halo -n default -o jsonpath="{.spec.ports[0].nodePort}")
export NODE_IP=$(kubectl get nodes -n default -o jsonpath="{.items[0].status.addresses[0].address}")
echo "Halo访问地址: http://$NODE_IP:$NODE_PORT/"
echo "控制台地址: http://$NODE_IP:$NODE_PORT/console"
4.2 系统初始化
首次访问将触发初始化向导,需完成:
- 管理员账号创建
- 站点基础信息配置
4.3 域名接入配置
本方案采用APISIX作为流量网关,可根据场景选择版本:
- 内网版:APISIX内网接入方案
- 外网版:APISIX外网HTTPS配置
评论区