apisix 容器安装
1. 按照官方文档进行docker容器安装,安装完成后启动报错,关键错误日志如下:
apisix | 2023/05/25 06:36:35 [error] 7#7: *205 [lua] resolver.lua:80: parse_domain(): failed to parse domain: etcd-server, error: failed to query the DNS server: dns server error: 3 name error, context: ngx.timer
apisix | 2023/05/25 06:36:35 [warn] 7#7: *205 [lua] v3.lua:245: _request_uri(): http://etcd-server:2379: failed to parse domain: failed to query the DNS server: dns server error: 3 name error. Retrying, context: ngx.timer
...
apisix | 2023/05/25 06:36:36 [error] 34#34: *115 [lua] config_etcd.lua:628: no healthy etcd endpoint available, next retry after 8s, context: ngx.timer
2. 查阅官方Issue
https://github.com/apache/apisix/issues/8800,若是luaJit的bug,已经修复。然后按照官方文档 安装最新版apisix-3.3.0,依然报错。按照Issue中的说法,需要自己rebuild的apisix-base.
3. 然后下载apisix-build-tools,在虚拟机中进行build
4. 整个build过程是在docker容器中进行,并需要不断从互联网下载各种包、库以及github代码,而且需要容器能够连接互联网(需梯子)。
build之前需要修改构建脚本添加VPN代理:
修改build-apisix-base.sh,在开始从github仓库下载代码之前,添加VPN代理:
export https_proxy=http://192.168.144.129:7890 http_proxy=http://192.168.144.129:7890 all_proxy=socks5://192.168.144.129:7890
export https_proxy=http://192.168.144.129:7890 http_proxy=http://192.168.144.129:7890 all_proxy=socks5://192.168.144.129:7890
192.168.144.129为运行VPN软件的宿主机的IP地址,你的虚拟机要能够访问到(即虚拟机与宿主机需要互通)。
在 cd grpc-client-nginx-module-${grpc_client_nginx_module_ver} || exit 1 这一行后面,添加如下代码:
sed -i '/#!\/usr\/bin\/env\sbash/a\export https_proxy=http://192.168.144.129:7890 http_proxy=http://192.168.144.129:7890 all_proxy=socks5://192.168.144.129:7890' install-util.sh sed -i '/install-util.sh\sinstall_go/a\\tPATH="$(PATH):/usr/local/go/bin" go env -w GOPROXY=https://goproxy.io,direct' Makefile
第一行是在install-util.sh中添加代理,第二行是为go设置环境变量GOPROXY (go语言下载包时使用的代理)
5. 执行构建:
make package type=rpm app=apisix-base version=1.21.4.1.8 image_base=centos image_tag=7
注意:version参数,必须与apisix-3.3.0 依赖的版本一致,不一致会导致rpm包无法安装。