docker 安装配置 apisix 网关服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 安装配置 apisix 网关服务相关的知识,希望对你有一定的参考价值。

参考技术A apisix 是一个动态、实时、高性能的开源网关。
GitHub地址: apache/apisix

apisix只是一个服务,依赖etcd作为底层存储,apisix-dashboard是官方提供的一个可视化管理平台,这里一并安装

新建 config.yaml,设置apisix的一些配置信息

新建 dashboard_config.yaml,配置apisix-dashboard

新建 docker-compose.yml,配置docker启动的依赖关系,端口等信息

然后执行命令 docker-compose up -d --build 启动服务。启动etcd时可能会报权限不足的错误,执行 chmod -R 777 etcd_data 给足权限之后再重启一下服务。

APISIX2.6 微服务网关入门

前言:

(1)Apache APISIX是一个动态的、实时的、高性能的 API 网关。它提供丰富的流量管理功能,例如负载均衡、动态上游服务、金丝雀发布、断路、身份验证、可观察性等。您可以使用 Apache APISIX 来处理传统的南北流量,以及服务之间的东西流量。它也可以用作 k8s ingress controller。这个作为微服务网关十分重要

它是国人开源,目前已经进入 Apache 进行孵化,社区活跃,文档详细友好,厉害!!!

APISIX地址:https://github.com/apache/apisixDashBoard:https://github.com/apache/apisix-dashboard

文档地址:https://apisix.apache.org/zh/docs/apisix/architecture-design/apisix

(2)APISIX 通过插件机制,提供了动态负载均衡、身份验证、限流限速等等功能,当然我们也可以自己开发插件进行拓展。更多的特性大家可以自行去了解一下

 

(3)Apache APISIX 的技术架构:

 

 

图片来源:APISIX 官网

 

下面,让我们快速进入APISIX的 极简入门。

 

1、快速安装

《APISIX 官方文档 —— 安装》中,介绍了源码包、RPM 包、Docker 三种安装方式。这里我们使用 CentOS 7.9 系统,所以采用 RPM 包。

 

因为 APISIX 是基于 OpenResty + etcd 来实现,所以需要安装响应的依赖。

1.1 安装相关依赖

# install etcd
wget https://github.com/etcd-io/etcd/releases/download/v3.4.13/etcd-v3.4.13-linux-amd64.tar.gz
tar -xvf etcd-v3.4.13-linux-amd64.tar.gz && \\
    cd etcd-v3.4.13-linux-amd64 && \\
    sudo cp -a etcd etcdctl /usr/bin/

# add OpenResty source
sudo yum install yum-utils
sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

# install OpenResty and some compilation tools
sudo yum install -y openresty curl git gcc openresty-openssl111-devel unzip

# install LuaRocks
curl https://raw.githubusercontent.com/apache/apisix/master/utils/linux-install-luarocks.sh -sL | bash -

# start etcd server
nohup etcd &

检查下ETCD 是否启动成功:

1.2 安装APISIX

$ sudo yum install -y https://github.com/apache/apisix/releases/download/2.6/apisix-2.6-0.x86_64.rpm

检查一下APISIX版本:

启动APISIX服务:

默认会安装在/usr/local/apisix路径下,默认端口9080,可通过如下命令检查:

 

1.3 APISIX dashboard(控制台)安装

参考文档:

https://github.com/apache/apisix-dashboard

 

(1)git获取源码:

$ git clone https://github.com/apache/incubator-apisix-dashboard.git
$ cd incubator-apisix-dashboard

 

切换分支版本,需要与apisix版本一致即可

$ git checkout -b release/2.6 origin/release/2.6

 

(2)构建控制流:manager-api

控制流用于为控制台提供接口,相当于在APISIX与控制台之间的桥梁。手动构建需要如下步骤:1.需要事先装好 Go 1.13+注意:如果你想使用Orchestration的插件功能,需要安装Lua 5.1+已上版本。

 

$ wget https://dl.google.com/go/go1.16.5.linux-amd64.tar.gz
$ tar -C /usr/local -xzvf go1.16.5.linux-amd64.tar.gz
-- 
$ export PATH=$PATH:/usr/local/go/bin
$ source /etc/profile

 

 

检查环境变量:

-- enable Go MODULE
$ go env -w GO111MODULE=on

-- 对于我们国内用户,可以设置Goproxy代理加速下载模块
$ go env -w GOPROXY=https://goproxy.cn,direct

 

(3)构建

执行下面的命令:

$ ./api/build.sh

注意:如果执行上面的命令 会超时,可以单独把wget + 后面的链接复制出来,独立执行就可以了。

 

(3)构建web

 

确保机器上的Node.js版本在10.0.0+已上,执行下面的命令

$ curl -sL https://rpm.nodesource.com/setup_16.x | sudo bash -
$ sudo yum install nodejs
$ node --version
$ npm --version

 

安装yarn:

$ curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
$ sudo yum install yarn
$ sudo yum build

安装依赖:

接下来就是漫长的等待。。。

(4)运行控制流 manager-api

[root@iZhp33yk3z4ttlhta3t5tkZ incubator-apisix-dashboard]# ./api/run.sh &

 

根据提示,创建对应的文件夹:logs

 

重新执行上面的命令:./api/run.sh &

 

然后,我们直接:公网IP:9000,就可以访问 Dashboard,显示这样的界面时,解决方案:

 

https://github.com/apache/apisix-dashboard/blob/master/docs/en/latest/FAQ.md

 

修改:/root/incubator-apisix-dashboard/output/conf/

注意:生产环境不能这样设置!!!

杀掉 manager-api 进程后

再重新启动一下:

./api/run.sh &

 

账号密码都是 admin

 

2、快速实践

 

创建2个netcore 3.1 的项目(注意:需要安装对应的.net core sdk)

启动 5000端口的app:

启动 5001端口的app:

 

2.1 动态负载均衡

(1)创建 APISIX Upstream

在 APISIX 控制台的「上游」菜单中,创建一个 APISIX Upstream。如下图所示:

点击下一步,最后点击 提交,即可。

 

(2)创建 APISIX Route

APISIX Route,字面意思就是路由,通过定义一些规则来匹配客户端的请求,然后根据匹配结果加载并执行相应的 插件,并把请求转发给到指定 Upstream。

 

点击下一步,选择上游服务:

点击下一步,关于插件部门后面的问题后续会陆续更新。

最后点击提交即可:

(3)简单测试:

现在,我们来请求 APISIX 网关,转发请求到后端服务。

浏览器中输入:

 

从结果可以看出,APISIX 网关使用带权轮询算法(Round Robin),将请求轮流转发到后端服务。博客已搬家到Infoq, 欢迎大家关注!

2.2 限流限速

敬请期待~~~

 

 

2.3 身份验证

 

敬请期待~~~

 

以上是关于docker 安装配置 apisix 网关服务的主要内容,如果未能解决你的问题,请参考以下文章

微服务网关 APISIX 群集配置指南

体验 Apache APISIX

国产微服务网关 APISIX,有点意思,直接开锤,换掉家门口的 Nginx

APISIX在CentOS7下安装使用

APISIX在CentOS7下安装使用

apisix 容器安装