apisix多节点搭建

2024-02-01 15:12
文章标签 搭建 节点 apisix

本文主要是介绍apisix多节点搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、介绍
    • 1. 端口介绍
    • 2. APISIX节点介绍
    • 3. apisix单机安装配置教程(选看)
  • 二、准备
    • 1. 配置集群免密登录
    • 2. 搭建etcd集群
  • 三、安装apisix节点
    • 1. 复制脚本
    • 2. 增加执行权限
    • 3. 分发脚本
    • 4. 执行脚本
    • 5. 配置apisix的etcd集群地址
  • 四、安装apisix-dashboard
    • 1. 复制脚本
    • 2. 增加执行权限
    • 3. 执行脚本
    • 4. 配置apisix-dashboard的etcd集群地址
    • 5. 浏览器访问
    • 6. 卸载Apisix和apisix-dashboard
  • 五、命令
    • 1. Apisix命令
      • 1.1 启动apisix服务
      • 1.2 停止apisix服务
      • 1.3 优雅地停止apisix服务
      • 1.4 重启apisix服务
      • 1.5 重新加载apisix服务
      • 1.6 初始化本地nginx.conf
      • 1.7 初始化etcd的数据
      • 1.8 测试生成的nginx.conf
      • 1.9 显示apisix的版本信息
      • 1.10 显示apisix帮助信息
    • 2. apisix-dashboard命令
      • 2.1 启动apisix-dashboard服务
      • 2.2 停止apisix-dashboard服务
      • 2.3 重启apisix-dashboard服务
  • 总结


前言

本文介绍了APISIX的安装和配置过程,包括在集群环境中安装APISIX节点和APISIX Dashboard,并提供了相应的脚本和命令。首先介绍了端口的作用以及各个端口的默认值,然后详细说明了APISIX节点和etcd集群之间的关系。接下来给出了一个单机安装配置教程供参考。

在准备阶段,我们需要设置集群免密登录并搭建etcd集群。然后,在每个节点上执行脚本进行APISIX节点的安装,并将etcd集群地址添加到配置文件中。

接着介绍如何安装并配置APISIX Dashboard,在192.168.145.103节点上执行相关脚本完成下载、安装与修改访问权限等操作。最后通过浏览器访问Dashboard页面进行验证。

如果需要卸载Apisix或apisix-dashboard服务,可以按照给出命令断开对应服务并删除相关文件和目录即可。


一、介绍

1. 端口介绍

  • 管理接口端口(Admin API Port):默认为9180。这个端口用于与APISIX的管理接口进行通信,可以执行添加、修改、删除等操作。
  • 代理监听端口(Proxy Listen Port):默认为9080。这个端口是APISIX作为反向代理监听客户请求的入站流量所使用的。
  • APISIX仪表盘端口:默认为9000。

2. APISIX节点介绍

  1. APISIX 的控制面是高可用性的,因为它只依赖于一个 etcd 集群。简单的说,apisix上配置的数据(apisix自身的配置除外)是完全保存到etcd集群的,apisix完全依赖于etcd集群。
  2. APISIX 可以通过在它前面添加一个负载均衡器来实现高可用性,因为 APISIX 的数据平面是无状态的,可以在需要时进行扩展。简单来说,apisix的每一个节点都是独立的,并没有apisix集群的说法,只需要给apisix的每个节点都绑定同一个etcd集群,就可以实现etcd中apisix的配置数据共享。

3. apisix单机安装配置教程(选看)

  • API网关-Apisix RPM包方式自动化安装配置教程

二、准备

1. 配置集群免密登录

集群版安装之前,先准备好三个节点。并已经设置好集群免密登录。

  • 配置集群免密登录教程

在这里,准备的集群节点为:192.168.145.103192.168.145.104192.168.145.105

2. 搭建etcd集群

  • etcd自动化安装配置教程

三、安装apisix节点

分别在三个节点安装apisix。

1. 复制脚本

首先,在192.168.145.103节点将以下脚本内容复制并保存为/tmp/install_apisix.sh文件。

#!/bin/bash# apisix版本
APISIX_VERSION='3.8.0'# 安装yum工具包并更新软件包
yum -y update
if [ -z "$(yum list installed | grep yum-utils)" ]; thenyum -y install yum-utils
fi
if [ -z "$(command -v wget)" ]; thenyum -y install wget
fi# 安装 OpenResty 和 APISIX 仓库
install_openresty() {local apisix_rpm_url='https://repos.apiseven.com/packages/centos/apache-apisix-repo-1.0-1.noarch.rpm'local apisix_repo_url='https://repos.apiseven.com/packages/centos/apache-apisix.repo'if [ -z "$(yum repolist | grep -i openresty)" ]; thenwget $apisix_rpm_url -P /tmpif [ $? -ne 0 ]; thenecho "apache-apisix-repo-1.0-1.noarch.rpm 下载失败,请重试或手动下载到/tmp目录下再次执行"echo "下载地址:$apisix_rpm_url"exit 1fiyum -y install /tmp/apache-apisix-repo-1.0-1.noarch.rpmif [ $? -eq 0 ]; thenecho "向 yum 包管理器添加软件仓库 OpenResty 成功"elseecho "向 yum 包管理器添加软件仓库 OpenResty 失败,请查看异常信息后重试"exit 1fifiif [ -z "$(yum repolist | grep -i apisix)" ]; thenwget $apisix_repo_url -P /tmpif [ $? -ne 0 ]; thenecho "apache-apisix.repo 下载失败,请重试或手动下载到/tmp目录下再次执行"echo "下载地址:$apisix_repo_url"exit 1fiyum-config-manager -y --add-repo /tmp/apache-apisix.repoif [ $? -eq 0 ]; thenecho "向 yum 包管理器添加软件仓库 APISIX 成功"elseecho "向 yum 包管理器添加软件仓库 APISIX 失败,请查看异常信息后重试"exit 1fifi
}# apisix安装与配置
install_apisix() {if [ -z "$(command -v apisix)" ]; thenyum -y install apisix-"${1}"if [ $? -ne 0 ]; thenecho "apisix-${1} 安装失败,请查看异常信息后重试"exit 1fiulimit -n 4096apisix initif [ $? -eq 0 ]; thenecho "初始化配置文件和 etcd 成功"elseecho "初始化配置文件和 etcd 失败,请查看异常信息后重试"exit 1fiapisix startif [ $? -eq 0 ]; thenecho "启动 apisix 服务成功"elseecho "启动 apisix 服务失败,请查看异常信息后重试"exit 1fifi
}install_openresty
install_apisix $APISIX_VERSIONexit 0

2. 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

chmod a+x /tmp/install_apisix.sh

3. 分发脚本

使用scp命令把脚本分发到192.168.145.104192.168.145.105节点。

scp /tmp/install_apisix.sh 192.168.145.104:/tmp/
scp /tmp/install_apisix.sh 192.168.145.105:/tmp/

4. 执行脚本

192.168.145.103节点执行以下命令,开始在三个节点分别运行脚本,开始下载和安装apisix。

/tmp/install_apisix.sh
ssh 192.168.145.104 /tmp/install_apisix.sh
ssh 192.168.145.105 /tmp/install_apisix.sh

请等待安装完成,如有异常会有提示。

5. 配置apisix的etcd集群地址

等待apisix节点安装完成后。
分别打开三个节点的apisix的配置文件/usr/local/apisix/conf/config.yaml,然后添加etcd集群地址配置,如下所示。

deployment:role: traditionalrole_traditional:config_provider: etcdetcd:host:- http://192.168.145.103:2379- http://192.168.145.104:2379- http://192.168.145.105:2379

然后分别在三个节点执行以下命令加载apisix配置文件。

ulimit -n 4096
apisix reload

四、安装apisix-dashboard

安装之前,确保节点可以访问到github,若不能,请查看解决方法:
Windows和Linux访问不了GitHub的解决方法

1. 复制脚本

首先,在192.168.145.103节点将以下脚本内容复制并保存为/tmp/install_dashboard.sh文件。

#!/bin/bashDASHBOARD_VERSION='3.0.1'install_dashboard() {local dashboard_url="https://github.com/apache/apisix-dashboard/releases/download/v${1}/apisix-dashboard-${1}-0.el7.x86_64.rpm"if [ -z "$(systemctl list-units --type=service | grep apisix-dashboard)" ]; thenwget "$dashboard_url" -P /tmpif [ $? -ne 0 ]; thenecho "apisix-dashboard-${1}-0.el7.x86_64.rpm 下载失败,请重试或手动下载到/tmp目录下再次执行"echo "下载地址:$dashboard_url"exit 1fiyum -y install /tmp/apisix-dashboard-"${1}"-0.el7.x86_64.rpmif [ $? -ne 0 ]; thenecho "apisix-dashboard 安装失败,请查看异常信息后重试"exit 1fi# sudo manager-api -p /usr/local/apisix/dashboard/systemctl start apisix-dashboardif [ $? -ne 0 ]; thenecho "apisix-dashboard 启动失败,请查看异常信息后重试"exit 1fifi
}alter() {file_path='/usr/local/apisix/dashboard/conf/conf.yaml'allow_list='    - 127.0.0.1           # The rules are checked in sequence until the first match is found.'new_allow_list='    - 0.0.0.0/0           # The rules are checked in sequence until the first match is found.'sed -i "s|$allow_list|$new_allow_list|" "$file_path"if [ $? -ne 0 ]; thenecho "修改为允许任何ip访问失败,请查看异常信息后重试"exit 1fisystemctl restart apisix-dashboardif [ $? -ne 0 ]; thenecho "apisix-dashboard 重启失败,请查看异常信息后重试"exit 1fi
}install_dashboard $DASHBOARD_VERSION
alterexit 0

2. 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

chmod a+x /tmp/install_dashboard.sh

3. 执行脚本

192.168.145.103节点执行以下命令,开始在三个节点分别运行脚本,开始下载和安装apisix-dashboard。

/tmp/install_dashboard.sh

请等待安装完成,如有异常会有提示。

4. 配置apisix-dashboard的etcd集群地址

等待apisix-dashboard节点安装完成后。
打开192.168.145.103节点的apisix-dashboard的配置文件/usr/local/apisix/dashboard/conf/conf.yaml,然后添加etcd集群地址配置,如下所示。

  etcd:endpoints:            # supports defining multiple etcd host addresses for an etcd cluster- 192.168.145.103:2379- 192.168.145.104:2379- 192.168.145.105:2379

然后执行以下命令重启apisix-dashboard。

systemctl restart apisix-dashboard

5. 浏览器访问

浏览器输入192.168.145.103:9000进行访问(192.168.145.103替换为自己的ip地址),然后输入账号密码登录,如下图所示。
账号:admin
密码:admin

在这里插入图片描述
在这里插入图片描述

查看节点信息:

在这里插入图片描述

6. 卸载Apisix和apisix-dashboard

停止服务,然后删除对应文件和目录即可。

apisix stop
systemctl stop apisix-dashboard
rm -rf /usr/bin/apisix
rm -rf /usr/local/apisix
rm -rf /usr/local/openresty/lualib/resty/apisix

五、命令

1. Apisix命令

1.1 启动apisix服务

apisix start

1.2 停止apisix服务

apisix stop

1.3 优雅地停止apisix服务

apisix quit

1.4 重启apisix服务

apisix restart

1.5 重新加载apisix服务

apisix reload

1.6 初始化本地nginx.conf

apisix init

1.7 初始化etcd的数据

apisix init_etcd

1.8 测试生成的nginx.conf

apisix test

1.9 显示apisix的版本信息

apisix version

1.10 显示apisix帮助信息

apisix help

2. apisix-dashboard命令

2.1 启动apisix-dashboard服务

systemctl start apisix-dashboard

2.2 停止apisix-dashboard服务

systemctl stop apisix-dashboard

2.3 重启apisix-dashboard服务

systemctl restart apisix-dashboard

总结

通过这篇文章,您学习到了如何在多个节点上部署 APISIX 和 APisix-Dashboard,并成功地启动它们。您还学会使用一些常用命令来管理 APisix 服务以及查看版本信息等操作。

希望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

这篇关于apisix多节点搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/667641

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

JavaFX环境的搭建和一个简单的例子

之前在网上搜了很多与javaFX相关的资料,都说要在Eclepse上要安装sdk插件什么的,反正就是乱七八糟的一大片,最后还是没搞成功,所以我在这里写下我搭建javaFX成功的环境给大家做一个参考吧。希望能帮助到你们! 1.首先要保证你的jdk版本能够支持JavaFX的开发,jdk-7u25版本以上的都能支持,最好安装jdk8吧,因为jdk8对支持JavaFX有新的特性了,比如:3D等;

springboot+maven搭建的项目,集成单元测试

springboot+maven搭建的项目,集成单元测试 1.在pom.xml文件中引入单元测试的依赖包 <!--单元测试依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></depen

CentOS 7 SVN的搭建和使用

https://subversion.apache.org/packages.html#centos 阿里云的ECS貌似已经自带了SVN [root@xxx ~]# svn --versionsvn, version 1.7.14 (r1542130)compiled Aug 23 2017, 20:43:38Copyright (C) 2013 The Apache Software Fo