管理 Apigee 入站流量网关

从 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_MINREPLICAS_MAX:安装中 Apigee 入站流量网关的最小和最大副本数。请参阅配置属性参考文档中的 ingressGateways[].replicaCountMiningressGateways[].replicaCountMax
  • CPU_COUNT_REQMEMORY_REQ:安装中每个 Apigee 入站流量网关副本的 CPU 和内存请求。

    请参阅配置属性参考文档中的 ingressGateways[].resources.requests.cpuingressGateways[].resources.requests.memory

  • CPU_COUNT_LIMITMEMORY_LIMIT:安装中每个 Apigee 入站流量网关副本的 CPU 和内存上限。

    请参阅配置属性参考文档中的 ingressGateways[].resources.limits.cpuingressGateways[].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 入站流量网关的一些常见管理任务包括:

调节 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

请参阅在入站流量网关上配置 TLS 和 mTLS

启用非 SNI 客户端

请参阅启用非 SNI 和 HTTP 客户端

安装其他 Apigee 入站流量网关

overrides.yaml 文件中,您可以添加多个入站流量网关。ingressGateways 配置属性是一个数组。如需了解详情,请参阅配置属性参考文档中的 ingressGateways

例如:

ingressGateways:
- name: fruit
  replicaCountMin: 2
  replicaCountMax: 10

- name: meat
  replicaCountMin: 2
  replicaCountMax: 10

使用 apigeectl apply --org 应用更改。

将虚拟主机映射到 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 入站流量网关部署

您可以在替换文件中使用 virtualhosts.cipherSuites 属性将自定义加密套件添加到 Apigee 入站流量网关部署。

如需了解 Apigee Hybrid 中启用的默认加密套件,请参阅 virtualhosts.cipherSuites

您可以在替换文件中使用 virtualhosts.minTLSProtocolVersion 属性启用较低版本的 TLS,并使用 virtualhosts.cipherSuites 属性将自定义加密套件添加到 Apigee 入站流量网关部署。

例如,如需启用 TLS v.1.1:

virtualhosts:
- name: ENV_GROUP_NAME
  minTLSProtocolVersion: "1.1"
  cipherSuites:
  - "ECDHE-ECDSA-AES128-GCM-SHA256"
  - "ECDHE-RSA-AES128-GCM-SHA256"
  - "ECDHE-ECDSA-AES256-GCM-SHA384"
  - "ECDHE-RSA-AES256-GCM-SHA384"
  - "ECDHE-ECDSA-CHACHA20-POLY1305"
  - "ECDHE-RSA-CHACHA20-POLY1305"
  - "ECDHE-ECDSA-AES128-SHA"
  - "ECDHE-RSA-AES128-SHA"
  - "ECDHE-ECDSA-AES256-SHA"
  - "ECDHE-RSA-AES256-SHA"
  ...

自定义入站流量访问日志

您可以使用 istiod.accessLogFileistiod.accessLogFormat 配置属性来自定义 Apigee 入站流量网关访问日志目标和格式。在以下示例中,输出将发送到 /dev/stdout,这是 istiod.accessLogFile 的默认值:

istiod:
  accessLogFormat: '{"request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","status":"%RESPONSE_CODE%"}'

您可以通过分配 istiod.accessLogFile 和空值来停用 Apigee 入站流量网关访问日志记录。例如:

istiod:
  accessLogFile: ''

常见问题解答

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 入站流量网关。