apisix网关安装部署文档
1. apisix网关简介及官方文档
apisix简介:
Apache APISIX 是 Apache 软件基金会下的云原生 API 网关,它兼具动态、实时、高性能等特点,提供了负载均衡、动态上游、灰度发布(金丝雀发布)、服务熔断、身份认证、可观测性等丰富的流量管理功能。我们可以使用 Apache APISIX 来处理传统的南北向流量,也可以处理服务间的东西向流量。同时,它也支持作为 K8s Ingress Controller 来使用。
apisix主要特性:
-
多平台支持:APISIX 提供了多平台解决方案,它不但支持裸机运行,也支持在 Kubernetes 中使用,还支持与 AWS Lambda、Azure Function、Lua 函数和 Apache OpenWhisk 等云服务集成。
-
全动态能力:APISIX 支持热加载,这意味着你不需要重启服务就可以更新 APISIX 的配置。请访问为什么 Apache APISIX 选择 Nginx + Lua 这个技术栈?以了解实现原理。
-
精细化路由:APISIX 支持使用 NGINX 内置变量做为路由的匹配条件,你可以自定义匹配函数来过滤请求,匹配路由。
-
运维友好:APISIX 支持与以下工具和平台集成:HashiCorp Vault、Zipkin、Apache SkyWalking、Consul、Nacos、Eureka。通过 APISIX Dashboard,运维人员可以通过友好且直观的 UI 配置 APISIX。
-
多语言插件支持:APISIX 支持多种开发语言进行插件开发,开发人员可以选择擅长语言的 SDK 开发自定义插件。
官方文档地址
apisix:https://apisix.apache.org/zh/docs/apisix/getting-started/
apisix- ingress controller:https://apisix.apache.org/zh/docs/ingress-controller/getting-started/
2. 部署记录文档
前言
本文档记录在XXX环境采用Helm Chart方式部署apisix网关,与现有nginx-ingress-controller同时并存
部署流程
1,helm repo add apisix https://charts.apiseven.com #添加chart源
2,helm repo update #更新到最新版本
3,kubectl create ns apisix #创建apisix namespace
4,编辑values.yaml,按需启动相关配置,本次部署启动了tls,apisix-dashboard和外部extPlugin
extPlugin配置中 cmd中路径为自定义,但要与后面build镜像时路径相同
5,helm install apisix . -n apisix #安装apisix
6,查看pod启动情况
3. 基础使用方法
- 查看service及各service的作用
apisix-admin : 控制apisix配置的接口,如增删路由,upstream等一切配置相关的地址
apisix-dashboard:dashboard service地址,截图中为手动改为nodeport的,以便网页访问
apisix-gateway:使用apisix作为ingressClass的路由中域名后的端口,就是网关端口
apisix-ingress-controller:ingress-controller的集群内地址
-
创建upstream
curl "http://XXX.XXX.XXX.XXX:9180/apisix/admin/upstreams/1"
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X PUT -d '
{
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1
}
}' -
创建route
curl "http://XXX.XXX.XXX.XXX:9180/apisix/admin/routes/1"
-H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X PUT -d '
{
"methods": ["GET"],
"host": "example.com",
"uri": "/anything/*",
"upstream_id": "1"
}' -
将route和upstream绑定并启用自编插件api-signature
curl -i http://XXX.XXX.XXX.XXX:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uri": "/anything/*",
"plugins": {
"ext-plugin-pre-req": {
"conf" : [
{"name": "api-signature", "value": "{"ccc":"eeee"}"}
]
}
},
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1
}
}
}' -
验证
curl example.com:30631/anything/test
标签:网关,XXX,文档,apisix,Apache,APISIX From: https://www.cnblogs.com/peng-zone/p/17335787.html