In gcloud docs it says:
"TCP Proxy Load Balancing supports the following ports: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222"
They are not mentioning protocols or applications, I don't know if you setup kamailio to listen for example on port 443 if it might work? Clients would have to connect to X.X.X.X:443 though... (which is solvable using SRV records).
This is a suggestion to test, I'm really not sure myself if it would work. I don't know if google does straight TCP proxy or if it has any sort of application level awareness, in such case it would definitely not work (as the default 5060 SIP port is not listed). Giving the example they have a little further down in the docs, (talking about setting up apache (http) to listen on port 110 (pop3), and using curl to test) makes me think that it could work.
Client -> Kamailio -> FreeSWITCHs = Works... widely used.
Client -> GCP Load Balancer -> Kamailio -> FreeSWITCHs = No idea, best way to find out is to test, one thing for sure is you will have to mess around a lot in the config file to get the IPs right in all the headers.
Does what I'm saying makes sense? Please correct me if I'm wrong.
Best,
Joel.