前置操作是我已经通过deploy/install-on-linux.sh部署好了k8s,但是我删除了最后通过sealos镜像安装laf这一步。
sealos run --env DOMAIN=$DOMAIN --env DB_PV_SIZE=5Gi --env OSS_PV_SIZE=5Gi --env EXTERNAL_HTTP_SCHEMA=http lafyun/laf:latest
这个镜像实际上通过build/Kubefile来进行打包的,通过CMD可以看到其实最后也就是执行 build/start.sh
CMD ["DOMAIN=$(DOMAIN) REGION=$(REGION) NAMESPACE=$(NAMESPACE) EXTERNAL_HTTP_SCHEMA=$(EXTERNAL_HTTP_SCHEMA) INTERNAL_HTTP_SCHEMA=$(INTERNAL_HTTP_SCHEMA) ENABLE_APISIX_HOST_NETWORK=$(ENABLE_APISIX_HOST_NETWORK) DB_PV_SIZE=$(DB_PV_SIZE) OSS_PV_SIZE=$(OSS_PV_SIZE) PROMETHEUS_PV_SIZE=$(PROMETHEUS_PV_SIZE) ENABLE_MONITOR=$(ENABLE_MONITOR) sh start.sh"]
但是我直接通过这个命令来执行的话,首先镜像会加载很慢(sealos有个registry目录使用了镜像代理缓存的还可以),所有pod是有一堆imagepull的问题,不过等到最后也都能起来。起来之后登录,创建项目,创建函数之类看着都正常。
不过当我创建函数之后,通过调试按钮,总是有跨域问题,而且我手动在APISIX将跨域插件加上后,还是会访问错误。
查看了正常用sealos直接拉起的项目,发现apisix会同步生成函数路由,但是我直接用sh start.sh拉起的apisix就没有这个联动。 不知道问题出在什么地方。
正常的laf集群的apisix路由状态如下:
而我的不会变化