We use envoy as our gateway and istio as envoy’s control plane in the production environment.But there are the following problems
- We have made customized development, but once there are small features that are not compatible with envoy, the entire xds configuration will be rejected by envoy.
- crd configuration such as virtualservice, destinationrule will be affected in real time if it is misused or deleted, resulting in online service 503 or 404
- Pilot OOM is caused when the online endpoint changes on a large scale. At this time, pilot is pushing the xds configuration, and the xds configuration is updated partly, causing envoy to go down
I think The gateway is important and stable, and it should not change configuration frequently. And the problem of the control plane should not affect the data plane, the control plane and the data plane should be isolated.
We are willing to exchange endpoint inconsistencies at certain intervals in exchange for stability.
Therefore, I envisage expanding the functionality of gateway crd and adding configuration synchronization policy fields. It has the following strategies:
- Real-time synchronization
- Timed interval synchronization
- User triggered synchronization
Different logical gateways decide the timing of synchronization configuration according to the strategy.I think it will be a very practical feature.