本文是一个Apisix的快速搭建文章记录,如果想要了解更多Apisix的相关概念,请查看官网进行学习。https://apisix.apache.org/
本次安装,Linux服务器涉及的相关端口,尽量确保这些端口都没有被占用
本次安装,涉及到的dockers镜像
1、拉取etcd镜像
代码语言:javascript复制docker pull bitnami/etcd:latest
2、查看etcd相关端口是否被占用
代码语言:javascript复制netstat -tlnp | grep 2379
netstat -tlnp | grep 2380
3、生成etcd容器服务实例
代码语言:javascript复制docker run -d -it --name etcd-server
--restart=always -p 2379:2379 -p 2380:2380
--env ALLOW_NONE_AUTHENTICATION=yes bitnami/etcd:latest
4、拉取apisix镜像
代码语言:javascript复制docker pull apache/apisix:3.2.0-centos
5、查看apisix相关端口是否被占用
代码语言:javascript复制netstat -tlnp | grep 9080
netstat -tlnp | grep 9443
netstat -tlnp | grep 9181
netstat -tlnp | grep 9182
netstat -tlnp | grep 9091
netstat -tlnp | grep 9092
6、生成apisix容器服务实例
代码语言:javascript复制docker run -d --name apisix-server --restart=always
--network host
-v /home/apisix/config.yaml:/usr/local/apisix/conf/config.yaml:ro
-v /home/apisix/apisix_log:/usr/local/apisix/logs
-p 9080:9080 -p 9443:9443 -p 9181:9181 -p 9182:9182
-d apache/apisix:3.2.0-centos
可以挂载配置文件,
注意其中有etcd和prometheus的相关配置
https://github.com/apache/apisix-docker/blob/master/example/apisix_conf/config.yaml
7、拉取apisix-dashboard镜像
代码语言:javascript复制docker pull apache/apisix-dashboard:3.0.1-centos
8、查看apisix-dashboard相关端口是否被占用
代码语言:javascript复制netstat -tlnp | grep 9000
9、生成apisix-dashboard容器服务实例
代码语言:javascript复制docker run -d -p 9000:9000 --restart=always
--network host
-v /home/apisix/dashboard_conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml
--name apisix-dashboard
apache/apisix-dashboard:3.0.1-centos
可以挂载文件 , 账号密码在自定义的挂载文件中
https://github.com/apache/apisix-docker/blob/master/example/dashboard_conf/conf.yaml
10、访问9000端口查看后台管理页面
完成
11、Prometheus
代码语言:javascript复制docker pull prom/prometheus:v2.25.0
netstat -tlnp | grep 9090
docker run -d --name prometheus --restart=always
--network host
-v /home/apisix/prometheus_conf/prometheus.yml:/etc/prometheus/prometheus.yml
-p 9090:9090 -d prom/prometheus:v2.25.0
注意其中有关于apisix的job信息
12、grafana
代码语言:javascript复制docker pull grafana/grafana:7.3.7
netstat -tlnp | grep 3000
docker run -d --name grafana --restart=always
--network host
-v /home/apisix/grafana_conf/provisioning:/etc/grafana/provisioning -v /dataB/soft/apisix/grafana_conf/dashboards:/var/lib/grafana/dashboards
-v /home/apisix/grafana_conf/config/grafana.ini:/etc/grafana/grafana.ini
-p 3000:3000 -d grafana/grafana:7.3.7
默认账号密码在挂载的ini文件中,默认admin/admin
这里挂载了三个文件
分别是dashboards中的看板json、ini的grafana配置文件
13、grafana开启认证访问
首先将挂载的grafana.ini配置文件中的匿名访问改成false,取消匿名
然后在启动的时候,可以在docker run 命令中,加入用户名密码配置,如:
代码语言:javascript复制docker run -d --name grafana --restart=always --network host
-e GF_SECURITY_ADMIN_USER=xxxxx
-e GF_SECURITY_ADMIN_PASSWORD=xxxx
-v /home/apisix/grafana_conf/provisioning:/etc/grafana/provisioning
-v /home/apisix/grafana_conf/dashboards:/var/lib/grafana/dashboards
-v /home/apisix/grafana_conf/config/grafana.ini:/etc/grafana/grafana.ini
-p 3000:3000 -d grafana/grafana:7.3.7
这样访问任意grafana页面,都会跳转到登录页。