管理 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 入站流量网关的一些常见管理任务包括:

停止向 ASM 提供配置

升级到 Apigee Hybrid v1.8 并将流量迁移到 Apigee 入站流量网关后,您便无需再向 Anthos Service Mesh 提供路由配置。

  1. 更新 Apigee 控制器,使系统停止更新 API 服务器中的 Anthos Service Mesh CR 对象。在替换文件中,进行如下设置:

    ao:
      args:
        disableIstioConfigInAPIServer: true
  2. 应用配置更改:

    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
    

    如需了解详情,请参阅配置属性参考文档中的 ao

  3. 使用以下命令检查部署的状态,因为上一个命令重启了控制器:
    $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
  4. 更新 virtualhosts。每个虚拟主机都需要包含值为 app: apigee-ingressgatewayapp 选择器标签。进行此更改后,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

调节 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 入站流量网关定位到特定虚拟主机。此配置指定了 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 入站流量网关搭配使用。