rancher-rke2 修改 server-url
发表: |更新:
|字数总计: 928|阅读时长: 4分钟|阅读量:
本文永久链接: https://www.xtplayer.cn/rancher/rancher-rke2-change-server-url/
更新 rancher helm 安装参数
使用上一次安装或者更新 rancher 的 helm 参数,修改其中的 hostname,然后重新执行更新。
修改 rancher server-url
- 通过 helm 使用新的 hostname 更新完成之后,使用新的域名登录 rancher ui。
- 进入 rancher ui 后,点击左下角地球图标,在 Settings 中找到 server-url ,将其修改为新的域名。
获取节点请求 token
此处的 token 不能使用用户 API KEY,会报 500 错误。需要进入集群管理,点击目标集群,点击节点注册,在节点注册命令中获取此 token。
进入集群管理,点击目标集群。

在节点注册中,获取注册 token 备用。

更新 rancher-system-agent 配置
拷贝并修改以下脚本内容:
替换脚本中的 CATTLE_SERVER_URL,注意结尾不要添加 ‘/’。
替换脚本中的 CATTLE_TOKEN 为上一步骤中获取到的 token 值。
将脚本保存在所有 rke2 集群节点中,并执行 bash xxx.sh。
#!/bin/bash set -e # 遇到错误立即退出 CATTLE_SERVER_URL=https://xxx.xxxx.cn # 注意: 需要进入集群管理,点击目标集群,点击节点注册,在节点注册命令中获取此 token。如果设置用户 API KEY 会报 500 错误。 CATTLE_TOKEN=xxxxxxxxxxxhwqd5m # CATTLE_AGENT_VAR_DIR=/var/lib/rancher/agent # 如果启用 debug, 添加 -v 参数 CURL_LOG="-sS"
# 创建目录 mkdir -p ${CATTLE_AGENT_VAR_DIR}
# 检查 cattle-id 文件是否存在 if [ ! -f "/etc/rancher/agent/cattle-id" ]; then echo "Error: /etc/rancher/agent/cattle-id not found" >&2 exit 1 fi
systemctl stop rancher-system-agent.service
# 备份现有配置 if [ -f ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json ]; then BACKUP_FILE="${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info-$(date +%Y%m%d_%H%M%S).json" cp ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json ${BACKUP_FILE} echo "Backup created: ${BACKUP_FILE}" fi
# 获取新的连接信息 CATTLE_ID=$(cat /etc/rancher/agent/cattle-id) echo "Using cattle-id: ${CATTLE_ID}"
# 执行 curl 请求 HTTP_CODE=$(curl -kL --connect-timeout 60 --max-time 60 --write-out "%{http_code}\n" ${CURL_LOG} \ -H "Authorization: Bearer ${CATTLE_TOKEN}" \ -H "X-Cattle-Id: ${CATTLE_ID}" \ "${CATTLE_SERVER_URL}/v3/connect/agent" \ -o ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json.tmp)
# 检查 HTTP 状态码 case $HTTP_CODE in 200|201|204) # 检查文件是否为空或无效 JSON if [ ! -s ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json.tmp ]; then echo "Error: Downloaded file is empty" >&2 exit 1 fi # 验证是否为有效 JSON if ! jq . ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json.tmp > /dev/null 2>&1; then echo "Error: Downloaded file is not valid JSON" >&2 cat ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json.tmp exit 1 fi # 移动文件到最终位置 mv ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json.tmp ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json chmod 600 ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json echo "Connection info updated successfully" # 重启 rancher-system-agent 服务 echo "Restarting rancher-system-agent service..." if systemctl restart rancher-system-agent; then echo "Service restarted successfully" # 可选:等待服务启动并检查状态 sleep 3 if systemctl is-active --quiet rancher-system-agent; then echo "rancher-system-agent is running" # 显示最近的日志 echo "Recent logs:" journalctl -u rancher-system-agent.service --since "1 minute ago" --no-pager --lines=10 else echo "Warning: rancher-system-agent service is not running" >&2 exit 1 fi else echo "Error: Failed to restart rancher-system-agent service" >&2 exit 1 fi ;; *) echo "Error: Failed to update connection info, HTTP code: ${HTTP_CODE}" >&2 # 显示错误响应内容 if [ -f ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json.tmp ]; then echo "Error response:" >&2 cat ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json.tmp >&2 rm -f ${CATTLE_AGENT_VAR_DIR}/rancher2_connection_info.json.tmp fi exit 1 ;; esac
|
更新 fleet 配置
在修改 rancher 访问域名后,fleet 持续交付相关组件状态可能会不正常。查看相关 pod,可以发现在连接旧的 rancher 域名。如果出现这种情况,点击 持续交付 按钮,接着点击集群,选择目标集群,点击强制更新。

