接入高级版:母版握手、授权门控与失联处置

雅卡团队 · 2026-10-20T13:00

标准版和高级版是同一个安装包,差别只在服务等级与授权校验方式:标准版免费、免登录、离线可用; 高级版需要母版签发授权,启动时与母版握手,拿到授权碎片才继续启动。

一、装高级版

sudo mkdir -p /opt/yaka && cd /opt/yaka
# 和标准版同一个包,只是安装时选 premium
sudo curl -fsSLO https://yaka-dist.tos-cn-beijing.volces.com/releases/latest/yaka-instance.tar.gz
sudo tar -xzf yaka-instance.tar.gz && cd yaka-instance-*
sudo bash install.sh --edition=premium

手工部署时改 .env,三项必须一致,否则容器起不来(门控是 fail-closed 的):

DEPLOY_EDITION=premium
BOOT_GRANT_REQUIRED=1
MASTER_URL=https://master.yaka.cn
INSTANCE_ID=母版控制台分配给你的实例编号

装错成 BOOT_GRANT_REQUIRED=0 也不是「能用」,而是授权校验形同虚设, 升级/分发时会直接暴露。改完记得 docker compose up -d --no-deps --force-recreate yaka-ext。

二、启动时发生了什么

  1. 扩展层启动,向母版发起握手(带实例编号与本机指纹);
  2. 母版校验:实例是否在册、服务等级是否有效、指纹是否与首次登记一致;
  3. 通过 → 下发授权碎片(有有效期),扩展层进入正常服务;
  4. 不通过 → 记录原因并拒绝启动,而不是降级到"功能少了点"。

授权碎片只存在内存里、绑定实例编号、过期时间以母版为准;本地时钟被改也不会延长有效期。

三、常见运维场景

换服务器 / 迁机

系统会采集机器指纹(machine-id + 产品 UUID)。换机器后指纹会变,母版那边会看到告警。 迁完机到母版控制台做一次「指纹确认」(采纳最近上报,或按工单登记),不要自己想办法绕过告警。

母版暂时不可达

已拿到的授权碎片在有效期内继续可用;到期前会持续重试。可用期过后按门控策略处理。 别把 MASTER_URL 指向一个假地址来"绕过" —— 那会直接进拒绝启动分支。

降级成标准版

# .env 改回
DEPLOY_EDITION=standard
BOOT_GRANT_REQUIRED=0
# 然后重建
docker compose up -d --no-deps --force-recreate yaka-ext

踩坑清单

现象原因与处置
启动即退出,日志提示授权获取失败 实例未在母版登记 / INSTANCE_ID 填错 / 出网被拦(curl -I $MASTER_URL 验通)。
母版显示「指纹不一致」告警 换机器或重装系统。功能不受影响,到母版控制台确认指纹即可。
授权到期后功能突然不可用 属预期:高级版需要有效授权。续期后在实例后台重新握手,或等下一个心跳周期。
同环境多台实例只有一台保持高级版 反盗版规则:同一环境多个实例只保留一个高级版授权,其余按降级处理。这是设计如此。