apisix安装

基于官方文档快速安装部署:

https://apisix.apache.org/zh/docs/apisix/getting-started

记录通过通过 Docker Compose安装 Apache APISIX遇到的问题点

版本依赖

依赖 版本
Go go1.16.4
Git 2.30.1
Docker 20.10.7
Docker-compose 1.29.2

安装 Apache APISIX

#将 Apache APISIX 的 Docker 镜像下载到本地
git clone https://github.com/apache/apisix-docker.git
# 将当前的目录切换到 apisix-docker/example 路径下
cd apisix-docker/example
# 运行 docker-compose 命令,安装 Apache APISIX 
docker-compose -p docker-apisix up -d

-p为docker-compose开启的当前容器组的统一前缀,本条命令的创建的容器统一前缀为“docker-apisix”,查看创建的网络也会加上这个统一前缀 “docker network ls”

下载完成后,在运行 Docker 的宿主机上执行curl命令访问 Admin API,根据返回数据判断 Apache APISIX 是否成功启动。

curl "http://127.0.0.1:9080/apisix/admin/services/" -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1'

返回数据如下所示,表示Apache APISIX 成功启动:

{
  "count":1,
  "action":"get",
  "node":{
    "key":"/apisix/services",
    "nodes":{},
    "dir":true
  }
}

很遗憾,启动失败了

描述问题:

查看容器运行状态发现部分容器启动失败,apache/apisix:2.6-alpine不可用,或者创建容器成功,但是curl调用失败

docker ps

797232e77336   apache/apisix:2.7-alpine      "sh -c '/usr/bin/api…"   23 hours ago   Up 23 hours   0.0.0.0:9080->9080/tcp, :::9080->9080/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp   docker-apisix_apisix_1
5f4309055eb4   bitnami/etcd:3.4.15           "/opt/bitnami/script…"   23 hours ago   Up 23 hours   0.0.0.0:2379->2379/tcp, :::2379->2379/tcp, 2380/tcp                                    docker-apisix_etcd_1
c5a6aec8251d   nginx:1.19.0-alpine           "/docker-entrypoint.…"   23 hours ago   Up 23 hours   0.0.0.0:9082->80/tcp, :::9082->80/tcp                                                  docker-apisix_web2_1
2c1c8acd9bb6   apache/apisix-dashboard:2.7   "/usr/local/apisix-d…"   23 hours ago   Up 23 hours   0.0.0.0:9000->9000/tcp, :::9000->9000/tcp                                              docker-apisix_apisix-dashboard_1
1bf53dc6181e   nginx:1.19.0-alpine           "/docker-entrypoint.…"   23 hours ago   Up 23 hours   0.0.0.0:9081->80/tcp, :::9081->80/tcp                                                  docker-apisix_web1_1

查看log 日志

docker logs docker-apisix_apisix_1

WARNING: using fixed Admin API token has security risk.
Please modify "admin_key" in conf/config.yaml .


/usr/local/openresty/luajit/bin/luajit ./apisix/cli/apisix.lua init_etcd
Warning! Request etcd endpoint 'http://etcd:2379/version' error, connection refused, retry time=1
Warning! Request etcd endpoint 'http://etcd:2379/version' error, connection refused, retry time=2
request etcd endpoint 'http://etcd:2379/version' error, connection refused

分析为etcd不可达导致的apisix不可用导致的问题

直接登陆docker-apisix_web1_1容器查看etcd是否可用显示正常

curl "http://etcd:2379/version"

{"etcdserver":"3.4.15","etcdcluster":"3.4.0"}

登陆docker-apisix_etcd_1容器查看也没问题etcdctl 调用没问题
感觉是docker-apisix_apisix_1本身的问题

解决办法

猜测apisix版本兼容问题导致不可用更换apisix版本
修改https://github.com/apache/apisix-docker.git项目的/example/docker-compose.yml文件

截屏2021-07-28 下午4.51.08.png

image: apache/apisix:2.6-alpine改成image: apache/apisix:2.7-alpine

删除之前创建的容器重新创建即可

docker-compose down #删除之前创建的容器
docker network prune #删除之前创建的网络

docker-compose -p docker-apisix up -d

调用curl "http://127.0.0.1:9080/apisix/admin/services/" -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1',正常返回json,容器创建成功,浏览器访问127.0.0.1:9000正常进入apisix-dashboard
(apisix-dashboard调用的接口部分接口不兼容)

你可能感兴趣的:(apisix安装)