安装apisix详细教程

安装:
docker安装ApiSi
常见问题-提前查阅
1-端口被占用
确保所需的所有端口(默认的 9080/9091/9443/2379/9000)未被其他系统/进程使用

#查询端口占用情况
netstat -antp |grep 9443

如果端口冲突可尝试修改apisix的端口配置,

但不建议,因为会出现端口对应不上,导致apisix服务出错

除非必须修改,那请查看修改此文件

vim /opt/testApiSix/apisix-docker/example/docker-compose.yml
2-cannot access data directory
ETCD出现报错:cannot access data directory: mkdir /bitnami/etcd/data: permission denied,表示etcd启动时未没有创建db的权限,
在opt目录下执行:ETCD会把安装目录下的etcd_data 映射到容器内部的/bitnami/etcd/目录,并在此目录下创建data存储DB数据

chmod -R 777 /opt/apisix-docker/example/
3-容器持续地重启或失败
如果 Docker 容器持续不断地重启或失败,请登录容器并观察日志以诊断问题。

查询容器id

docker ps -a | grep 容器模糊名称

查询容器id对应日志

docker logs -f containerId

#进入到容器内部
docker exec -it containerId /bin/sh

第一步-部署ApiSix前docker基础环境准备

安装前必要部署环境准备
本文基于docker-compose安装APISIX, 所以需要提前安装好docker、docker-compose。
必要条件如下
1.Linux服务器Centos7.2(注:服务器操作系统版本)
2.Linux已部署Docker(注:如没安装,请参照下面连接第一步到第三步)
安装部署docker与docker-compose的步骤
2.Linux已部署Docker-Compose(注:如没安装,请参照下面连接第一步到第四步)
安装部署docker与docker-compose的步骤

**

第二步-docker部署安装APISIX-分批次操作

**
apisix-docker对应github地址,为下列链接
apisix-docker对应github地址

2.1-从远程github仓库获取ApiSix的部署全家桶

切换到安装目录,如/opt

cd /opt
#将 Apache APISIX 的 Docker 镜像下载到本地
git clone https://github.com/apache/apisix-docker.git
2.2-赋权限

赋权限(不执行,会报:ETCD容器启动时报错:

cannot access data directory: mkdir /bitnami/etcd/data: permission denied,

表示etcd启动时未没有创建db的权限)

chmod -R 777 /opt/apisix-docker/example/
2.3-切换目录,使用docker命令安装部署apisix已经被打好的包

将当前的目录切换到 apisix-docker/example 路径下

cd /opt/apisix-docker/example

运行 docker-compose 命令,安装 Apache APISIX

确保所需的所有端口(默认的 9080/9091/9443/2379/9000)未被其他系统/进程使用,再执行下面命令

#查询端口占用情况
netstat -antp |grep 9443

如被占用

如果端口冲突可尝试修改apisix的端口配置,

但不建议,因为会出现端口对应不上,导致apisix服务出错

除非必须修改,那请查看修改此文件

vim /opt/testApiSix/apisix-docker/example/docker-compose.yml

修改完之后,再执行下列命令启动apisix容器

docker-compose -p docker-apisix up -d

其中example目录结构如下:
在这里插入图片描述

第三步-验证APISIX所需服务是否安装成功

3.1-docker ps -a | grep apisix查看以下5个容器是否都已经启动

docker ps -a | grep 模糊匹配服务名

docker ps -a | grep apisix
docker ps -a | grep etcd
docker ps -a |grep dashboard
docker ps -a |grep grafana
docker ps -a |grep prometheus
如下图-右侧显示up,即为正常启动,如不是up标识,

如不是up标识,进入各自的容器,查看容器启动日志

docker logs -f 复制上面图片中的左侧容器id,以左上角举例

docker logs -f 60ce72be6caa
排查完所有未启动成功的容器,修正启动成功之后,进入网址

3.3-访问apisix-dashboard
将IP替换成实际的部署APISIX的服务器IP

http://IP:9000
默认账号密码admin/admin

第四步-扩展docker-compose操作与docker操作

4.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
4.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

后面备注:

启动etcd:
systemctl start etcd

docker安装:
镜像配置文件:
/home/apisix/apisix-docker/example/
下载并启动镜像:
启动所有镜像:docker-compose -p docker-apisix up

实践操作:

添加路由:
➜ curl “http://127.0.0.1:9180/apisix/admin/routes/1” -X PUT -d ’
{
“methods”: [“GET”],
“host”: “zhiyou.com”,
“uri”: “/anything/*”,
“upstream”: {
“type”: “roundrobin”,
“nodes”: {
“httpbin.org:80”: 1
}
}
}’ -H ‘X-API-KEY: edd1c9f034335f136f87ad84b625c8f1’

正常会得到如下所示的结果

{“value”:{“create_time”:1679392758,“methods”:[“GET”],“host”:“youdianzhishi.com”,“status”:1,“priority”:0,“update_time”:1679392758,“upstream”:{“pass_host”:“pass”,“hash_on”:“vars”,“type”:“roundrobin”,“nodes”:{“httpbin.org:80”:1},“scheme”:“http”},“id”:“1”,“uri”:“/anything/*”},“key”:“/apisix/routes/1”}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在Kubernetes平台上使用Helm安装Apisix的stream代理的详细配置: 1. 安装Helm 如果您尚未安装Helm,请先按照Helm官方文档中的说明进行安装。 2. 添加Apisix Helm仓库 通过以下命令将Apisix Helm仓库添加到您的Helm仓库列表中: ``` helm repo add apisix https://charts.apiseven.com helm repo update ``` 3. 创建Apisix的stream代理配置文件 在您的本地计算机上创建一个名为`values.yaml`的文件,并将以下内容复制到文件中: ``` apisix: enableStreamProxy: true streamProxy: type: stream port: 1984 upstreams: - name: upstream1 nodes: - ip: 127.0.0.1 port: 8080 - name: upstream2 nodes: - ip: 127.0.0.1 port: 8081 rules: - name: rule1 match: sni: example.com actions: - type: route upstreamName: upstream1 - name: rule2 match: sni: foo.com actions: - type: route upstreamName: upstream2 ``` 在这个配置文件中,我们启用了Apisix的stream代理,并定义了两个上游节点,每个节点都有一个名称和一个IP地址和端口号。我们还定义了两个规则,每个规则都基于SNI匹配,并将流量路由到不同的上游节点。 4. 安装Apisix的stream代理 使用以下命令安装Apisix的stream代理: ``` helm install my-apisix-stream apisix/apisix -f values.yaml ``` 此命令将在您的Kubernetes集群中安装Apisix的stream代理,并将其命名为`my-apisix-stream`。 5. 验证Apisix的stream代理是否正常工作 您可以使用以下命令检查Apisix的stream代理是否正在运行: ``` kubectl get pods ``` 如果一切正常,您应该能够看到一个名为`my-apisix-stream-xxxxx`的Pod正在运行。 接下来,您可以使用您的流量测试工具测试Apisix的stream代理是否按预期工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值