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