apisix-ingress-controller: request help: apisix-ingress-controller "error": "unexpected non-empty object"

Issue description

apisix集群物理机部署非容器环境,这套集群是否可以同时作为apisix-ingress-controller 的apisix/admin 使用,又提供给外部物理机环境通过Dashboard配置路由,上游。既我想容器和物理机混用apisix集群。 实测下来好像不可以,不知道是否支持?有没有计划支持? apisix-ingress-controller 报错信息 2021-10-13T16:15:38+08:00 error apisix/upstream.go:121 failed to convert upstream item {“url”: “http://192.168.8.9:9080/apisix/admin/upstreams”, “upstream_key”: “/apisix/upstreams/376788208932881080”, “error”: “unexpected non-empty object”} 2021/10/13 下午4:15:38 2021-10-13T16:15:38+08:00 error apisix/cluster.go:199 failed to list upstreams in APISIX: unexpected non-empty object 2021/10/13 下午4:15:40 2021-10-13T16:15:40+08:00 error apisix/upstream.go:121 failed to convert upstream item {“url”: “http://192.168.8.9:9080/apisix/admin/upstreams”, “upstream_key”: “/apisix/upstreams/376788208932881080”, “error”: “unexpected non-empty object”} 2021/10/13 下午4:15:40 2021-10-13T16:15:40+08:00 error apisix/cluster.go:199 failed to list upstreams in APISIX: unexpected non-empty object 2021/10/13 下午4:15:42 [GIN] 2021/10/13 - 16:15:42 | 200 | 34.554µs | ip | GET “/healthz” 2021/10/13 下午4:15:42 2021-10-13T16:15:42+08:00 error apisix/upstream.go:121 failed to convert upstream item {“url”: “http://192.168.8.9:9080/apisix/admin/upstreams”, “upstream_key”: “/apisix/upstreams/376788208932881080”, “error”: “unexpected non-empty object”} 2021/10/13 下午4:15:42 2021-10-13T16:15:42+08:00 error apisix/cluster.go:199 failed to list upstreams in APISIX: unexpected non-empty object 2021/10/13 下午4:15:44 2021-10-13T16:15:44+08:00 error apisix/upstream.go:121 failed to convert upstream item {“url”: “http://192.168.8.9:9080/apisix/admin/upstreams”, “upstream_key”: “/apisix/upstreams/376788208932881080”, “error”: “unexpected non-empty object”} 2021/10/13 下午4:15:44 2021-10-13T16:15:44+08:00 error apisix/cluster.go:199 failed to list upstreams in APISIX: unexpected non-empty object 2021/10/13 下午4:15:44 [GIN] 2021/10/13 - 16:15:44 | 200 | 37.139µs | ip | GET “/healthz” 2021/10/13 下午4:15:46 2021-10-13T16:15:46+08:00 error apisix/upstream.go:121 failed to convert upstream item {“url”: “http://192.168.8.9:9080/apisix/admin/upstreams”, “upstream_key”: “/apisix/upstreams/376788208932881080”, “error”: “unexpected non-empty object”} 2021/10/13 下午4:15:46 2021-10-13T16:15:46+08:00 error apisix/cluster.go:199 failed to list upstreams in APISIX: unexpected non-empty object 2021/10/13 下午4:15:46 2021-10-13T16:15:46+08:00 error apisix/cluster.go:161 failed to sync cache {“cost_time”: “8.039422647s”, “cluster”: “default”} 2021/10/13 下午4:15:46 2021-10-13T16:15:46+08:00 error ingress/controller.go:391 failed to wait the default cluster to be ready: unexpected non-empty object 2021/10/13 下午4:15:46 2021-10-13T16:15:46+08:00 info ingress/controller.go:332 controller now is running as a candidate {“namespace”: “ingress-apisix”, “pod”: “apisix-ingress-controller-64f9645f9c-dfp9p”} 2021/10/13 下午4:15:46 I1013 16:15:46.528768 1 leaderelection.go:243] attempting to acquire leader lease ingress-apisix/ingress-apisix-leader… 2021/10/13 下午4:15:46 2021-10-13T16:15:46+08:00 info apisix/cluster.go:152 syncing cache {“cluster”: “default”} 2021/10/13 下午4:15:46 2021-10-13T16:15:46+08:00 info apisix/cluster.go:340 syncing schema {“cluster”: “default”} 2021/10/13 下午4:15:46 2021-10-13T16:15:46+08:00 error apisix/plugin.go:46 failed to list plugins’ names: Get http://192.168.8.9:9080/apisix/admin/plugins/list: context canceled 2021/10/13 下午4:15:46 2021-10-13T16:15:46+08:00 error apisix/cluster.go:360 failed to list plugin names in APISIX: Get http://192.168.8.9:9080/apisix/admin/plugins/list: context canceled 2021/10/13 下午4:15:46 2021-10-13T16:15:46+08:00 warn apisix/cluster.go:324 failed to sync schema: Get http://192.168.8.9:9080/apisix/admin/plugins/list: context canceled 2021/10/13 下午4:15:46 2021-10-13T16:15:46+08:00 error apisix/route.go:117 failed to list routes: Get http://192.168.8.9:9080/apisix/admin/routes: context canceled 2021/10/13 下午4:15:46 2021-10-13T16:15:46+08:00 error apisix/cluster.go:194 failed to list route in APISIX: Get http://192.168.8.9:9080/apisix/admin/routes: context canceled

其中/apisix/upstreams/376788208932881080 是我在dashboard上手动创建的上游 ,dashboard 删除后,ingress可以正常自动注册

Environment

apisix 2.8 dashboard 2.8
外部物理机部署的apisix

  • your apisix-ingress-controller version (output of apisix-ingress-controller version --long); Version: 1.2.0 Git SHA: no-git-module Go Version: go1.13.8 Building OS/Arch: linux/amd64 Running OS/Arch: linux/amd64
  • your Kubernetes cluster version (output of kubectl version); Client Version: version.Info{Major:“1”, Minor:“18”, GitVersion:“v1.18.20”, GitCommit:“1f3e19b7beb1cc0110255668c4238ed63dadb7ad”, GitTreeState:“clean”, BuildDate:“2021-06-16T12:58:51Z”, GoVersion:“go1.13.15”, Compiler:“gc”, Platform:“linux/amd64”}
  • if you run apisix-ingress-controller in Bare-metal environment, also show your OS version (uname -a). 5.4.151-1.el7.elrepo.x86_64 #1 SMP Tue Oct 5 10:21:01 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 23 (14 by maintainers)

Most upvoted comments

I think the original problem has been fixed, I will close this one. Thanks all.

There may be some historical data compatibility issues, we may need some discussion. I will put it in the v1.5 plan.

Judging from the log, it should be that the upstream created through the dashboard cannot be converted to the upstream data structure in the ingress-controller.

@renweijun I will try to simulate your scenario.