Configuring Istio HA by using replica count

Enable High Availability (HA) for the Istio control plane by pinning a static replica count, which keeps the mesh available and provides a fixed level of redundancy across the istiod pods.

NOTE

A static replica count fixes the size of the Istio control plane. This approach is appropriate when control plane load is steady or predictable, or when you would rather scale istiod manually instead of relying on autoscaling.

Prerequisites

  • You are logged in to the Alauda Container Platform web console as a user with the cluster-admin role, or you have an active ACP CLI (kubectl) session as a cluster administrator.
  • The Alauda Service Mesh v2 Operator is installed.
  • The Istio resource has been deployed.

Configuring via the web console

Procedure

  1. In the Alauda Container Platform web console, navigate to Administrator.

  2. Select Marketplace > OperatorHub.

  3. Search for the Alauda Service Mesh v2.

  4. Locate the Alauda Service Mesh v2 and click to select it.

  5. Click the All Instances tab.

  6. From the Filter by instance type dropdown, select Istio.

  7. Click the name of the Istio installation, for example default.

  8. Click the YAML tab.

  9. Update the Istio custom resource (CR) so it resembles the following example:

    apiVersion: sailoperator.io/v1
    kind: Istio
    metadata:
      name: default
    spec:
      namespace: istio-system
      values:
        pilot:
          autoscaleEnabled: false
          replicaCount: 2
    1. spec.values.pilot.autoscaleEnabled set to false turns off autoscaling so the replica count stays fixed at the value you define.
    2. spec.values.pilot.replicaCount sets the fixed number of Istio control plane replicas. To meet HA requirements, this value must be at least 2.

Configuring via the CLI

Procedure

  1. Retrieve the name of the Istio resource:

    kubectl get istio -n istio-system

    Example output

    NAME      NAMESPACE      PROFILE   REVISIONS   READY   IN USE   ACTIVE REVISION   STATUS    VERSION   AGE
    default   istio-system             1           1       1        default           Healthy   v1.28.6   24m

    The Istio resource is named default.

  2. Patch the Istio custom resource (CR) to disable autoscaling and set a fixed replica count:

    kubectl patch istio default -n istio-system --type merge -p '
    spec:
      values:
        pilot:
          autoscaleEnabled: false
          replicaCount: 2
    '

    For field explanations of these settings, see Configuring via the web console.

Verification

Check the status of the Istio control plane pods:

kubectl get pods -n istio-system -l app=istiod

Example output

NAME                      READY   STATUS    RESTARTS   AGE
istiod-6b8d64c946-2dq2k   1/1     Running   0          28m
istiod-6b8d64c946-skg4v   1/1     Running   0          35s

Two istiod pods are running, which is the minimum required for an HA Istio control plane and indicates that a basic HA setup is in place.