跳到主要内容
版本:3.10.x

安装常见问题

本文回答安装 API7 网关时的常见问题,并提供相应解决方法。

Q1:控制面为何无法连接 PostgreSQL 数据库?

:请确认以下事项:

-控制面环境可以访问数据库主机。

  • 数据库用户拥有创建表所需的权限。
  • 数据库服务器已开放端口 5432。
  • 查看控制面日志中的具体错误消息,例如:kubectl logs -n <namespace> deploy/<dashboard-deployment-name> --tail=100

Q2:如何解决安装期间的端口冲突错误?

:如果 744379439080 等端口已被占用,可以:

  • Kubernetes:在 values.yaml 中更改服务端口。
  • Docker Compose:更新主机到容器的端口映射,例如 "8443:7443"
  • 物理机:更新配置文件,监听其他端口。

Q3:数据面在 Dashboard 中为何显示为“Offline”?

:这通常表示数据面与控制面之间存在通信问题。

  • 检查数据面能否通过端口 7943 访问控制面地址。
  • 确认 mTLS 证书配置正确且未过期。
  • 确保数据面指向正确的控制面/DP Manager 地址,在 Kubernetes 中为 etcd.host,在 Docker Compose 或物理机配置中使用对应设置。

Q4:运行 Helm 命令时出现“Permission Denied”,应如何处理?

:请确保 Kubernetes 上下文设置正确,并且你拥有命名空间的管理权限。

  • 运行 kubectl config current-context 验证当前上下文。
  • 使用 RBAC 为用户账号授予所需权限。

Q5:如何修复镜像拉取错误(ImagePullBackOff)?

:Kubernetes 节点无法下载容器镜像时会出现此错误。

  • 检查能否访问互联网或私有镜像仓库。
  • 验证 values.yaml 中的镜像仓库和标签。
  • 使用私有镜像仓库时,确保正确配置 imagePullSecrets

Q6:许可证无效,如何获取新的许可证?

:可以通过以下方式获取许可证:

  • 试用申请试用许可证
  • 生产:联系你的 API7 客户经理。
  • 验证:检查许可证密钥是否已正确复制到配置中,且没有多余空格或换行符。

Q7:控制面/数据面Pod 为何频繁重启(CrashLoopBackOff)?

:这通常是资源限制或配置错误导致的。

  • 运行 kubectl describe pod <pod_name> 查看重启原因。
  • 检查日志中的错误消息:kubectl logs -n <namespace> <pod_name> --previous
  • 确认硬件符合系统要求

Q8:如何配置控制面与数据面之间的 mTLS?

:控制面与数据面之间默认启用 mTLS,以保护通信安全。

有关证书签发、轮换和验证的详细工作原理,请参阅控制面与数据面之间的双向 TLS

Q9:能否在 Kubernetes 中部署不使用 LoadBalancer 的 API7?

:可以使用 NodePortClusterIP Service。

  • NodePort:通过 <NodeIP>:<NodePort> 访问服务。
  • ClusterIP:将服务保留在集群内部,并通过 Ingress Controller、反向代理或外部负载均衡器公开。

Q10:如何查看 API7 安装版本?

  • Helm:运行 helm list -n <namespace> 查看已安装的 Chart 和应用版本。
  • Dashboard:在 Dashboard 中打开用户菜单并选择 About,查看运行版本。
  • Helm 配置项:运行 helm get values <release-name> -n <namespace>,检查特定安装使用的配置项。
  • 镜像:运行 kubectl -n <namespace> get pods -o jsonpath='{.items[*].spec.containers[*].image}' | tr ' ' '\n' | sort -u,列出集群中运行的确切镜像标签。