我是靠谱客的博主 传统菠萝,最近开发中收集的这篇文章主要介绍【项目实战】复盘APISIX云原生网关-APISIX安装全过程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、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

最后

以上就是传统菠萝为你收集整理的【项目实战】复盘APISIX云原生网关-APISIX安装全过程的全部内容,希望文章能够帮你解决【项目实战】复盘APISIX云原生网关-APISIX安装全过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部