Allow integrating with pre-existing route table
When deploying AKS with kubenet, you are able to select a pre-existing VNet but are not able to specify a pre-existing route-table. Most organizations require the use of a firewall via a network virtual appliance and thus require use of custom route tables.
AKS with kubenet deploys a route-table that it creates/manages and updates with new routes for nodes on scale out that it needs.
Ideally would be better if AKS can optionally integrate with a pre-existing route table associated with the existing VNet, and simply add/remove its routes.
This appears to have been done now:
Scott Heath commented
On a similar note, if we can' specify a route table to be updated with the AKS routes, let us pass routes to the AKS API to be added to the managed route table. I wrote some not very complex terraform that passes the created route table name to my route resources and it adds the routes successfully. Unfortunately if the node pool is scaled and the route table is adjusted by AKS it removes my custom routes. For now I can work around this by running my route resources in a separate plan after the AKS changes, but I'd like for it to work together.
Robin Afflerbach commented
Same happened to me these days. When deploying the cluster i added the subnet_id with a route table attached so i was hoping that new rules will be added there. Use case is that we already have a route table with a FW route.
Only problem i currently see is that there might be concurring routes but that always needs to be considered.
Tbh: looks like a bug for me why i created an issue: https://github.com/Azure/AKS/issues/1460
Dear god, yes, this. The worst part is that the created route table isn't even used, because of course the subnet is already assigned to a different route table.
I lost DAYS trying to figure out why pods couldn't communicate with service IPs despite iptables rules and everything else working as designed.
I am two seconds away from abandoning the half-baked solution entirely and moving to OpenShift.