从 Apigee Hybrid 1.8 版开始,Apigee Hybrid 使用 Apigee 入站流量网关为 Hybrid 提供入站流量网关。
配置 Apigee 入站流量网关
您可以在 overrides.yaml
中配置入站流量网关。例如:
语法
ingressGateways: - name: INGRESS_NAME replicaCountMin: REPLICAS_MIN replicaCountMax: REPLICAS_MAX resources: requests: cpu: CPU_COUNT_REQ memory: MEMORY_REQ limits: cpu: CPU_COUNT_LIMIT memory: MEMORY_LIMIT svcAnnotations: # optional. See Known issue 243599452. SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE svcLoadBalancerIP: SVC_LOAD_BALANCER_IP # optional
示例
ingressGateways: - name: prod1 replicaCountMin: 2 replicaCountMax: 100 resources: requests: cpu: 1 memory: 1Gi limits: cpu: 2 memory: 2Gi svcAnnotations: # optional. See Known issue 243599452. networking.gke.io/load-balancer-type: "Internal" svcLoadBalancerIP: 198.252.0.123
- INGRESS_NAME 是入站流量网关部署的名称。该字段可以是满足以下要求的任何名称:
- 长度不得超过 17 个字符
- 只能包含小写字母数字字符、“-”或“.”
- 以字母数字字符开头
- 以字母数字字符结尾
请参阅配置属性参考文档中的
ingressGateways[].name
。 - REPLICAS_MIN 和 REPLICAS_MAX:安装中 Apigee 入站流量网关的最小和最大副本数。请参阅配置属性参考文档中的
ingressGateways[].replicaCountMin
和ingressGateways[].replicaCountMax
。 - CPU_COUNT_REQ 和 MEMORY_REQ:安装中每个 Apigee 入站流量网关副本的 CPU 和内存请求。
请参阅配置属性参考文档中的
ingressGateways[].resources.requests.cpu
和ingressGateways[].resources.requests.memory
。 - CPU_COUNT_LIMIT 和 MEMORY_LIMIT:安装中每个 Apigee 入站流量网关副本的 CPU 和内存上限。
请参阅配置属性参考文档中的
ingressGateways[].resources.limits.cpu
和ingressGateways[].resources.limits.memory
。 - SVC_ANNOTATIONS_KEY SVC_ANNOTATIONS_VALUE(可选):。
这是一个键值对,用于为默认入站流量服务提供注解。云平台会使用注解来帮助您配置 Hybrid 安装,例如将 loadbalancer 类型设置为内部或外部。例如:
ingressGateways: svcAnnotations: networking.gke.io/load-balancer-type: "Internal"
注解因平台而异。如需了解必需和建议的注解,请参阅平台文档。
请参阅配置属性参考文档中的ingressGateways[].svcAnnotations
。 - SVC_LOAD_BALANCER_IP(可选)。在支持指定负载均衡器 IP 地址的平台上,系统会使用此 IP 地址创建负载均衡器。在不允许指定负载均衡器 IP 地址的平台上,系统会忽略此属性。
请参阅配置属性参考文档中的
ingressGateways[].svcLoadBalancerIP
。
应用 Apigee 入站流量网关配置
使用 apigeectl
更改组织范围。
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --org
管理任务
Apigee 入站流量网关的一些常见管理任务包括:
停止向 ASM 提供配置
升级到 Apigee Hybrid v1.8 并将流量迁移到 Apigee 入站流量网关后,您便无需再向 Anthos Service Mesh 提供路由配置。
-
更新 Apigee 控制器,使系统停止更新 API 服务器中的 Anthos Service Mesh CR 对象。在替换文件中,进行如下设置:
ao: args: disableIstioConfigInAPIServer: true
- 使用以下命令检查部署的状态,因为上一个命令重启了控制器:
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
-
更新
virtualhosts
。每个虚拟主机都需要包含值为app: apigee-ingressgateway
的app
选择器标签。进行此更改后,Anthos Service Mesh 网关将无法读取 Apigee 路由配置。在每个虚拟主机中添加或替换
selector
属性,如下所示:virtualhosts: - name: ENV_GROUP selector: app: apigee-ingressgateway # required ...
应用配置更改:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
如需了解详情,请参阅配置属性参考文档中的
virtualhosts.selector
。
应用配置更改:
$APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
如需了解详情,请参阅配置属性参考文档中的 ao
。
调节 Apigee 入站流量网关:
更新替换文件中的以下属性。
ingressGateways[].replicaCountMax
ingressGateways[].replicaCountMin
如需了解详情,请参阅配置属性参考文档中的 ingressGateways
。
使用 apigeectl apply --org
应用更改。
更新资源分配
更新替换文件中的以下属性。
ingressGateways[].resources.limits.cpu
ingressGateways[].resources.limits.memory
ingressGateways[].resources.requests.cpu
ingressGateways[].resources.requests.memory
如需了解详情,请参阅配置属性参考文档中的 ingressGateways
。
使用 apigeectl apply --org
应用更改。
更新 Apigee 入站流量网关服务
更新替换文件中的以下属性。
ingressGateways[].svcAnnotations
ingressGateways[].svcLoadBalancerIP
如需了解详情,请参阅配置属性参考文档中的 ingressGateways
。
使用 apigeectl apply --org
应用更改。
停用默认 Apigee 入站流量网关服务的负载均衡器:
如果您为入站流量网关部署创建自定义 Kubernetes 服务,则可以在默认 Kubernetes 服务上停用负载均衡器的创建功能。在替换文件中将 ingressGateways[].svcType
属性更新为 ClusterIP
。例如:
ingressGateways: - name: my-ingress-gateway replicaCountMin: 2 replicaCountMax: 10 svcType: ClusterIP
使用 apigeectl apply --org
应用更改。
配置 TLS 和 mTLS
启用非 SNI 客户端
安装其他 Apigee 入站流量网关
在 overrides.yaml
文件中,您可以添加多个入站流量网关。ingressGateways
配置属性是一个数组。如需了解详情,请参阅配置属性参考文档中的 ingressGateways。
例如:
ingressGateways: - name: fruit replicaCountMin: 2 replicaCountMax: 10 - name: meat replicaCountMin: 2 replicaCountMax: 10
使用 apigeectl apply --org
应用更改。
将 Apigee 入站流量定位到虚拟主机
您可以在替换文件中将已加标签的 Apigee 入站流量网关定位到特定虚拟主机。此配置指定了 Apigee 将虚拟主机的配置应用于的入站流量网关。在以下示例中,虚拟主机 spam-vh
配置为使用标有 meat
的入站流量网关,而其他两个虚拟主机使用 fruit
入站流量网关。您必须按照安装其他 Anthos Service Mesh 网关中的说明,为入站流量网关正确添加标签。
virtualhosts: - name: spam-vh sslCertPath: cert-spam.crt sslKeyPath: cert-spam.key selector: app: apigee-ingressgateway ingress_name: meat - name: banana-vh sslCertPath: cert-banana.crt sslKeyPath: cert-banana.key selector: app: apigee-ingressgateway ingress_name: fruit - name: plum-vh sslCertPath: cert-plum.crt sslKeyPath: cert-plum.key selector: app: apigee-ingressgateway ingress_name: fruit
常见问题解答
- Apigee 入站流量网关如何与其他命名空间中现有的 Anthos Service Mesh/Istio 安装配合工作?
- 只要 Apigee 安装在专用命名空间中,Apigee 入站流量网关就可以与集群中现有的 Anthos Service Mesh/Istio 安装一起运行。Apigee 入站流量网关不会将任何配置存储在 apiserver 中,因此不会发生任何冲突。
- 谁负责升级 Apigee 入站流量网关组件?
- Apigee 入站流量网关组件的升级由 Apigee 负责,并在常规 Hybrid 升级和补丁发布期间进行。
- 如何在 Apigee 入站流量网关中公开端口 80?
- Apigee 入站流量网关不支持端口 80。如果您要从 Anthos Service Mesh 迁移到 Apigee 入站流量网关,并且按照社区帖子中的说明启用了端口 80,它将无法与 Apigee 入站流量网关搭配使用。