I find it a bit confusing how Google Cloud Auto Scaler, Managed Instance Group, Target Pools and Network Load Balancers work together. The documentation is a bit sparse and there is no explicit connection between how to use a NLB (we need this since we require HTTPS, so the current Http Load Balancer won't cut it) and an Auto Scaler. I would think that the Auto Scaler main use case would be to manage instances behind a NLB.
Problem 1: it doesn't seem that once we assign a target pool to a managed instance group (via the [set-target-pool]) the already exiting instances get assigned to that target pool (may be our mistake).
Problem 2: it doesn't seem that managed group instances get into rotation on the NLB unless they have a public (albeit ephemeral) IP. Could be our mistake once again, but shouldn't a private IP be sufficient?
Problem 3: if an instance on the managed instance group becomes unhealthy (say.. it stops responding to HTTP) the NLB removes it from the rotation (via the health check) but it seems that the Auto Scaler stays happy and considers it to be a valid running instance.
What are we missing?