什麼是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