【1.3 API服务网关(SpringCloudGateway)】复盘APISIX云原生网关-APISIX安装全过程

  • Post author:
  • Post category:其他




一、OpenResty入门安装



1、Centos中安装OpenResty

参考文档:https://openresty.org/cn/linux-packages.html#centos

你可以在你的 CentOS 系统中添加 openresty 仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum check-update 命令)。 运行下面的命令就可以添加我们的仓库(对于 CentOS 8 或以上版本,应将下面的 yum 都替换成 dnf):

# add the yum repo:
(1) wget https://openresty.org/package/centos/openresty.repo
(2)  sudo mv openresty.repo /etc/yum.repos.d/
# update the yum index:
(3)sudo yum check-update
(4)sudo yum install -y openresty  安装软件包
(5)sudo yum install -y openresty-resty 安装命令行工具 resty

对于 CentOS 8 及更新版本,我们只需要将上面的 yum 命令都替换成 dnf 即可。

   whereis openresty
    cd /usr/bin
   openresty -s stop
    ps -ef|grep nginx
    openresty -s stop



2、 在指定目录中,新建nginx文件

参考文档:https://openresty.org/cn/linux-packages.html#centos

  (1)mkdir /home/www/logs/conf  新建Nginx对应目录
  (2)touch  nginx.conf  新建nginx配置文件
  (3)vi nginx.conf  编写nginx脚本
  (4)/usr/local/openresty/nginx/sbin/nginx -p `pwd`/ -c conf/nginx.conf   启动Nginx 
  (5)测试curl http://localhost:9000/



二、APISIX安装与介绍



1、 APISIX简介

Apache APISIX 是一个动态、实时、高性能的 API 网关, 提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。你可以使用 Apache APISIX 来处理传统的南北向流量,以及服务间的东西向流量, 也可以当做 k8s ingress controller 来使用。



2、APISIX 项目地址:

https://github.com/apache/apisix



3、使用docker安装apisix



(1)安装提示

使用docker安装apisix前提得先安装好docker和docker-compose,

apisix安装包用git方式拉取,所以建议先安装git,没安装的自行在电脑上拉取后传到linux服务器。



(2)git安装

yum -y install git    使用yum安装
git version 查看安装版本



(3)docker入门安装



X : 错误打开方式:直接使用yum安装。会提示启动报错
yum install docker
service docker start

验证1:验证无果

     cd /usr/lib
     cd systemd
     cd system
     touch docker.socket
     systemctl daemon-reload
     systemctl start docker.service
     service docker start

验证2:验证有效

docker version(检查docker状态和版本)


Y : 正确打开方式
    cd /usr/bin/ 
    yum -y install docker-ce docker-ce-cli containerd.io
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
   yum install -y yum-utils(使用yum的工具集安装)
   yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum -y install docker-ce docker-ce-cli containerd.io
    yum -y install gcc
    yum -y install gcc-c++
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum -y install docker-ce docker-ce-cli containerd.io
   yum -y install docker-ce 
    yum -y install docker(依旧是提示)
    systemctl start docker
    yum -y install podman


切换镜像源

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo



查看当前镜像源中支持的docker版本

yum list docker-ce –showduplicates



安装特定版本的docker-ce,

-y表示安装过程中都同意安装,–setopt=obsoletes=0,否则yum会自动安装更高版本

yum install –setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y



添加一个配置文件

(1)方法1:编辑 daemon.json

mkdir /etc/docker

cat <<EOF >  /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": ["https://kn0t2bca.mirror.aliyuncs.com"]
}
EOF

(2) 方法2:编辑 daemon.json

vi /etc/docker/daemon.json(用vi打开 daemon.json)
cd /etc (切换到etc目录)
mkdir docker(新建docker目录)
cd docker/(进入docker目录)
touch daemon.json(新建文件daemon.json)
vi daemon.json (编辑daemon.json)
systemctl restart docker(启动docker)
systemctl enable docker(启动docker)

podman替换了docker作为高版本cestos默认的容器

systemctl start podman (podman服务启动)
podman -v(podman的版本查看)
podman --help
podman stop
podman images



(4)docker-compose安装

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose(下载二进制文件并且拷贝到执行目录)
sudo chmod +x /usr/local/bin/docker-compose(添加执行权限)
docker-compose --version(查看安装版本)
ulimit -n 65535(增加最大文件打开数)



(5)Apisix安装



下载 apisix-docker


git的方式安装
cd /home/apisix-docker/(访问特定的安装目录)
 git clone https://github.com/apache/apisix-docker.git(下载git中的apisix)
 chmod -R 777 ./example/(增加执行权限)
 cd apisix-docker/example(进入到example目录)
docker-compose -p docker-apisix up -d (使用docker-compose 启动apisix )
 docker-compose -p docker-apisix down (使用docker-compose 关闭apisix服务)
如果端口有冲突的话修改配置文件,没有跳过此步骤
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}" | grep apisix(查看安装结果)


rpm的方式安装
 sudo yum install -y https://github.com/apache/apisix/releases/download/2.5/apisix-2.5-0.x86_64.rpm



(6)卸载掉Podman,使用docker作为默认容器

引用:Centos8,安装docker 默认装的是podman-docker 软件

就需要卸载装的podman-docker,重新安装就可以了,解决办法如下

1,卸载podman软件(可以使用rpm -qal grep docker)
yum remove docker
2,下载docker-ce源
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
3,安装docker-ce
yum install docker-ce -y

实操内容:

  docker-compose down (关闭 docker-compose)
  docker ps -a(docker查看所有进程)
   docker-compose -p apisix-docker down
   yum remove docker(删除docker
  rpm -qa |grep docker(查看docker的源)
  curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo(下载repo)
 yum clean all(清理yml)
 yum list docker-ce(查看 yml-list docker-ce)
 yum install docker-ce -y(查看 yml-list docker-ce)
service docker start (docke 启动 )
docker-compose -p apisix-docker up -d  (docker-compose启动apisix-docker)
docker ps -a(docker查看所有启动的进程 )



(6) 管理apisix-dashboard服务

您可以使用以下命令来管理服务。

>systemctl start apisix-dashboard(启动apisix-dashboard)
>systemctl stop apisix-dashboard(停止apisix-dashboard)
>systemctl status apisix-dashboard(检查apisix-dashboard状态)



(7)测试访问与验证dashboard



没有权限的报错

浏览器输入:http://:9000,访问Web页面,如果报错:

{“Code”:20002,“Message”:“IP address not allowed”,“Data”:null,“SourceSrv”:“”}



allow_list的修改

默认情况下,127.0.0.0/24允许访问的 IPv4 范围APISIX Dashboard。

表示该终端没有权限访问,只需在apisix/conf/config.yaml 文件中的allow_admin处

如果是虚拟机或者docker机器的话,可能需要打开admin的访问显示

如果要允许所有IPv4访问,那么只需conf.allow_list在配置文件中conf/conf.yaml

vim /usr/local/apisix/conf/config.yaml,

vi /usr/local/apisix-dashboard/conf/conf.yaml

找到 allow_admin,进行如下配置:- 127.0.0.0/24 改为 – all

conf:
  allow_list:
    - 0.0.0.0/0

增加允许访问终端IP,执行make init 初始化数据, make reload 重启即可。

就是允许所有IP访问,生产环境可不能这样,有非常大的安全风险

(2.1版本信息在,config-default.yaml文件中,可以在config.yaml文件里面

添加会默认优先读取覆盖掉config-default.yaml文件,也可以直接在config-default.yaml文件中更改)

可以参考以下修改

 allow_list的修改



网关信息配置说明

网关配置信息基本上是在conf/config.yaml进行配置,配置文件在修改后,需要make init 才能生效。下面大概说明几个关键地方:

allow_admin: 表示允许访问控制台dashboard的IP地址;

node_listen : 网关监听的端口默认9080,可根据需要进行更改端口;

allow_admin: 允许访问控制台的IP白名单,将其注释表示允许所有IP访问。

etcd host 配置etcd的地址,默认本机(etcd集群配置也是在这里);



访问管理端口与测试

访问管理台 ip:9000(如果是远程访问记得开放端口)

默认账号密码 admin:admin

访问管理台



三、复习:



(1)docker-compose操作

#拉取镜像
docker-compose pull
#创建并启动镜像
docker-compose -p docker-apisix up -d
#停止并删除镜像
docker-compose -p docker-apisix down
#启动服务
docker-compose -p docker-apisix start
#停止服务
docker-compose -p docker-apisix stop



(2)docker操作

#停止、启动、kill指定容器
docker stop containerid
docker start containerid
docker kill containerid

# 查看运行的容器
docker ps

#停止指定容器
docker stop $(docker ps -qa)
#删除全部容器
docker rm $(docker ps -qa)
#删除指定容器
docker rmi containerid
#查看所有镜像
docker images
#查看容器日志
docker logs -f containerid
#进入到容器内部
docker exec -it containerid /bin/sh



版权声明:本文为wstever原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。