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

MicroK8s部署WSO2 APIM 4.3后Publisher页面异常求助

解决WSO2 API Manager 4.3部署后Publisher页面异常及数据库未知列'TYPE'错误

问题场景

在MicroK8s单节点环境部署WSO2 APIM 4.3,已完成以下配置:

  • 镜像配置:
    dockerRegistry: "docker.io"
    imageName: "wso2/wso2am"
    imageTag: "4.3.0"
    imagePullPolicy: Always
    
  • 存储类配置:
    persistentRuntimeArtifacts:    
      storageClass: &storage_class "microk8s-hostpath"
    
  • Ingress配置:
    ingress:
      management:
        enabled: true
        hostname: "paul-inspiron-5570.local"
        annotations:
          kubernetes.io/ingress.class: "public"
          nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
          nginx.ingress.kubernetes.io/affinity: "cookie"
          nginx.ingress.kubernetes.io/session-cookie-name: "route"
          nginx.ingress.kubernetes.io/session-cookie-hash: "sha1"
      gateway:
        enabled: true
        hostname: "gateway.paul-inspiron-5570.local"
        annotations:
          kubernetes.io/ingress.class: "public"
          nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
      websub:
        enabled: true
        hostname: "websub.paul-inspiron-5570.local"
        annotations:
          kubernetes.io/ingress.class: "public"
          nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
      websocket:
        enabled: true
        hostname: "websocket.paul-inspiron-5570.local"
        annotations:
          kubernetes.io/ingress.class: "public"
          nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    
  • 部署命令:
    microk8s helm3 install my-apim am-single --version 4.3.0 --namespace myapim --dependency-update  --create-namespace
    

部署完成后,登录Publisher端点仅显示“Let’s get started ! Choose your option to create an API”,无操作选项;日志报错无法获取租户域carbon.super的环境,原因是SQL语句中存在未知列TYPE。

解决方案

1. 确认数据库表结构缺失

进入APIM容器检查数据库表:

# 替换<my-apim-pod-name>为实际pod名称
microk8s kubectl exec -it <my-apim-pod-name> -n myapim -- bash

连接内置H2数据库:

cd /home/wso2carbon/wso2am-4.3.0/bin
./h2.sh

在H2控制台连接数据库(JDBC URL:jdbc:h2:file:/home/wso2carbon/wso2am-4.3.0/repository/database/WSO2AM_DB),执行查询:

DESCRIBE AM_ENVIRONMENT;

如果结果中没有TYPE字段,说明数据库初始化脚本未完整执行。

2. 手动添加缺失的数据库列

在H2控制台执行以下SQL语句:

ALTER TABLE AM_ENVIRONMENT ADD TYPE VARCHAR(255) DEFAULT 'hybrid';

执行完成后,验证列是否添加成功:

SELECT TYPE FROM AM_ENVIRONMENT;

3. 重启APIM Pod

删除现有Pod触发重建:

microk8s kubectl delete pod <my-apim-pod-name> -n myapim

等待Pod启动完成后,重新登录Publisher页面检查功能是否恢复。

额外排查点

  • 存储挂载验证:检查Pod的存储挂载状态,确保microk8s-hostpath正确持久化数据库文件,避免每次重启都重新初始化:
    microk8s kubectl describe pod <my-apim-pod-name> -n myapim | grep -A 10 Volumes
    
  • 版本一致性:确认Helm Chart版本4.3.0与镜像版本4.3.0完全匹配,避免版本不兼容导致脚本执行异常。

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:43:17