确保上游高可用性
当 API7 网关将 API 请求发送到上游(Upstream)时,如果这些上游系统发生故障,就会出现可用性和可靠性问题。本指南介绍了实现上游依赖高可用性的几种策略。
前提条件
添加多个上游节点
使用多个上游节点可以防止单节点故障。在某个网关组中对上游节点所做的修改不会影响其他网关组中的服务配置。
- 控制台(Dashboard)
- Ingress Controller
- 从侧边导航栏选择你的网关组下的 服务,然后点击你要修改的服务,例如
httpbin。 - 在该服务下,从侧边导航栏选择 上游。
- 点击 节点 > 新增节点。
- 在对话框中,执行以下操作:
- 在 主机 和 端口 字段中,输入另一个 API 端点。
- 在 权重 字段中,输入与第一个节点相同的
100。 - 点击 新增。
创建一个指向多个上游服务的路由的 Kubernetes 资源清单文件:
- Gateway API
- APISIX CRD
multiple-upstream-nodes.yaml
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
namespace: api7
name: multiple-upstream-nodes
spec:
parentRefs:
- name: apisix
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: upstream1
port: 80
- name: upstream2
port: 80
multiple-upstream-nodes.yaml
apiVersion: apisix.apache.org/v2
kind: ApisixRoute
metadata:
namespace: api7
name: httpbin
spec:
ingressClassName: apisix
http:
- name: httpbin
match:
paths:
- /*
backends:
- serviceName: upstream1
servicePort: 80
- serviceName: upstream2
servicePort: 80
将配置应用到你的集群:
kubectl apply -f multiple-upstream-nodes.yaml