Test Istio Multicluster
Problem Statement
We need to validate that the service Istio provides enables us to perform changes to managing the amount of traffic flowing to any given deployment. In the prior quarter we tested Istio by use of Flagger. Now we need to expand this testing to include our many clusters and determine what options we can leverage with Release Tools during an Auto-Deploy.
From #19505, a testing environment with multicluster setup, similar to staging environment, should be set up. We should use that testing environment to test istio multicluster functionality before we deploy it to higher environments (staging/production).
Vision
Ideally we'd be able to combine the use of Flagger for rollouts with changes to Istio to fully coordinate a deploy. We leverage multiple clusters in our staging and production environments. At the time of this writing, we leverage 4 clusters, with a total of 5 deployments. The use of a Istio Multicluster deployment should enable us to manage a single Istio Gateway which points to many Istio Virtual Services. Something like such:
graph TD
B(Client Traffic)
B --> C{Istio Gateway}
C -->|5%| F[Canary Virtual svc]
C -->|95%| K[Main Virtual svc]
K -->|33%| H
K -->|33%| I
K -->|33%| J
subgraph gprd
F[Canary Virtual svc]
end
subgraph gprd-us-east1-b
H[Main Virtual svc]
end
subgraph gprd-us-east1-c
I[Main Virtual svc]
end
subgraph gprd-us-east1-d
J[Main Virtual svc]
end
Let's leverage this issue to determine how to test out various pieces of functionality to determine what capabilities we can unlock to release tools.
Goal For Testing
-
Install a multi cluster configuration of Istio on multiple clusters -
Configure an application to sit behind an Istio Gateway and Virtual Service that is spread across multiple clusters - mimic our zonal clusters -
Test upgrading the application with Flagger and validate that we are properly able to load balance the application between clusters
Milestones
-
Test Environment stood up -
Basic Testing of Istio complete -
Documentation of results and action items completed