Migrating to Apigee Ingress gateway

Use this procedure to migrate existing Apigee hybrid v1.8 installations from using Anthos Service Mesh for ingress to using Apigee ingress gateway.

Apigee ingress gateway in Apigee hybrid version 1.8

Starting in version 1.8, Apigee hybrid offers a new feature to manage the ingress gateway for your hybrid installation, Apigee ingress gateway. Anthos Service Mesh is no longer a prerequisite for hybrid installation and Apigee will stop supplying routing configuration to Anthos Service Mesh. After the upgrade, you have to migrate the traffic to the new Apigee ingress gateway gateway.

Two scenarios for migrating are:

  • Multi-cluster or multi-region migration (recommended):

    Before switching to a new Ingress for Apigee, drain all the traffic to another cluster or region from the cluster you are migrating. This will give you time to test if the new Apigee ingress gateway gateway is working as expected. Then shift the traffic back to the upgraded cluster.

  • In-place upgrade (not recommended in production environments):

    During the upgrade Apigee will bring up the new ingress gateway with a new IP address. You can then test if the new Apigee ingress gateway gateway is working as expected, and then shift traffic to the new ingress. There might be downtime during this upgrade.

Install Apigee ingress gateway

  1. To install Apigee ingress gateway, you need to add the ingressGateways property to your overrides file.

    Syntax

    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

    Example

    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 is the name of the ingress deployment. This can be any name that meets the following requirements:
      • Have a maximum length of 17 characters
      • Contain only lowercase alphanumeric characters, '-' or '.'
      • Start with an alphanumeric character
      • End with an alphanumeric character
      See ingressGateways[].name in the Configuration property reference.
    • REPLICAS_MIN and REPLICAS_MAX are the minimum and maximum replica counts for Apigee ingress gateway in your installation. For more information and default settings, see ingressGateways[].replicaCountMin and ingressGateways[].replicaCountMax in the Configuration property reference.
    • CPU_COUNT_REQ and MEMORY_REQ are the CPU and memory request for each replica of Apigee ingress gateway in your installation.

      For more information and default settings, see ingressGateways[].resources.requests.cpu and ingressGateways[].resources.requests.memory in the Configuration property reference.

    • CPU_COUNT_LIMIT and MEMORY_LIMIT Are the maximum CPU and memory limits for each replica of Apigee ingress gateway in your installation.

      For more information and default settings, see ingressGateways[].resources.limits.cpu and ingressGateways[].resources.limits.memory in the Configuration property reference.

    • SVC_ANNOTATIONS_KEY SVC_ANNOTATIONS_VALUE (optional):

      This is a key-value pair that provides annotations for your default ingress service. Annotations are used by your cloud platform to help configure your hybrid installation, for example setting the loadbalancer type to either internal or external. For example:

      ingressGateways:
        svcAnnotations:
          networking.gke.io/load-balancer-type: "Internal"

      Annotations vary from platform to platform. Refer to your platform documentation for required and suggested annotations.

      See ingressGateways[].svcAnnotations in the Configuration property reference.
    • SVC_LOAD_BALANCER_IP (optional) Allows you to assign a static IP address for your load balancer. On platforms that support specifying the load balancer IP address, the load balancer will be created with this IP address. On platforms that do not allow you to specify the load balancer IP address, this property is ignored.

      If you do not have a static IP address allocated for your load balancer, leave this property out of your overrides file.

      See ingressGateways[].svcLoadBalancerIP in the Configuration property reference.
  2. Apply the changes to install Apigee ingress gateway with the following commands:
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml

Switch traffic to Apigee ingress gateway

To migrate traffic from Anthos Service Mesh to Apigee ingress gateway follow the steps in Switch traffic from Anthos Service Mesh to Apigee ingress gateway in the Upgrading to Apigee Hybrid v1.8 topic.