什么是apisix
Apache APISIX 是一个高性能、轻量级的开源 API 网关,基于 Nginx 和 OpenResty 构建。APISIX 提供了丰富的功能和灵活的配置,适用于构建现代的微服务架构和云原生应用。
以下是 Apache APISIX 的一些主要特点和功能:
-
动态路由:APISIX 支持基于请求路径、方法、头部等条件进行动态路由,可以根据需求灵活配置路由规则。
-
负载均衡:内置多种负载均衡算法,支持权重、IP 黑白名单等策略,实现流量分发和控制。
-
熔断与限流:提供熔断器和限流功能,保护后端服务免受突发流量冲击,确保系统稳定性。
-
插件系统:APISIX 提供丰富的插件系统,包括认证、日志、监控、缓存、转发、重试等插件,方便扩展和定制功能。
-
动态 SSL/TLS:支持动态证书管理,实现自动化的 SSL/TLS 配置和更新,保障通信安全。
-
灵活配置:采用基于 Lua 的 DSL(Domain Specific Language)进行配置,具有灵活性和可扩展性,方便定制化需求。
-
可观测性:提供丰富的监控指标和日志输出,支持 Prometheus、Grafana 等监控工具,帮助实时监控和调优系统。
-
云原生支持:APISIX 可以无缝集成到 Kubernetes 等容器编排平台中,支持自动伸缩、动态配置等特性。
总的来说,Apache APISIX 是一个功能强大、易于扩展的 API 网关,适用于构建高性能、可靠的微服务架构,并提供丰富的功能和灵活的配置选项来满足不同场景下的需求。
部署apisix
下载官方的包
helm repo add apisix https://charts.apiseven.com
helm pull apisix/apisix
# 可能版本有更新
tar zxvf apisix-2.7.0.tgz
添加自定义配置
- values.override.yaml
- 功能:添加自定义的存储类为etcd
service:
http:
nodePort: 30080
apisix-dashboard:
service:
type: NodePort
port: 80
nodePort: 30081
dashboard:
enabled: true
config:
authentication:
users:
- username: admin
password: admin
ingress-controller:
enabled: true
config:
log_level: debug
apisix:
adminAPIVersion: "v3"
serviceNamespace: apisix #这个是apisix所在的命令空间
etcd:
enable: true
persistence:
storageClass: nfs-provisioner #这个提前建立
nfs-provisioner实现自动创建pv请查看我的k8s~动态生成pvc和pv这篇文章
安装apisix
# 安装时,将使用自定义文件values.override.yaml
helm -n apisix install apisix -f ./apisix/values.override.yaml ./apisix