<p>So, I started out trying to fix what was supposed to be a simple issue on my company's website.  The HTTP was not redirecting to the HTTPS.</p>
<p>To try to resolve this, I tried deleting the HTTPS load balancer so that I could recreate it with the redirect.</p>
<p>However, now, 3 days later, another developer and myself can't get it recreated and can't figure out why.</p>
<p>When I try creating the load balancer, I get the error:</p>
<p><code>Invalid value for field 'resource.IPAddress': 'projects/bes-com/global/addresses/bes-load-balancer-ip'. Specified IP address is in-use and would result in a conflict.</code></p>
<p>If I go to IP Addresses, the specified IP address says &quot;<strong>In use by</strong>: <em>None</em>&quot;</p>
<p>I also tried recreating the load balancer with a new IP Address instead of the current one, but this one didn't work either.</p>
<p>With this, I got:</p>
<p><code>Operation type [patch] failed with message &quot;Validation failed for instance 'projects/bes-com/zones/us-central1-c/instances/gke-bes-com-bes-com-n-37339480-9xpj': instance may belong to at most one load-balanced instance group.&quot;</code></p>
<p>If I go to the Ingress, it has this error at the top:</p>
<p><code>Error syncing to GCP: error running backend syncing routine: received errors when updating backend service: googleapi: Error 400: INSTANCE_IN_MULTIPLE_LOAD_BALANCED_IGS - Validation failed for instance 'projects/bes-com/zones/us-central1-c/instances/gke-bes-com-bes-com-n-37339480-9xpj': instance may belong to at most one load-balanced instance group. googleapi: Error 400: INSTANCE_IN_MULTIPLE_LOAD_BALANCED_IGS</code></p>
<p>Note that I did not create this website.  I inherited it, and am new to GCP so am learning as I go.
However, I have to get this website back up and do not know where to go next.
Thanks for any help, and please let me know what I can show.</p>

Justin Lloyd
<p><strong>Note</strong>: Make sure your domain is accessible via https and Google managed certificate is already in Active status and fully propagated. Also, <strong>these steps are part of the troubleshooting steps. It was posted as an answer since it won't fit in the comment section</strong>. If you have questions or clarifications, you may reply in the comment section.</p>
<p>I ask you to list the backend services, for you to confirm that no MIG is used in multiple backend services.</p>
<p>If you are deploying using YAML, I recommend using this procedure as a reference. Since your primary concern is the redirection from HTTP to HTTPs, let me share some basic configuration in deploying GKE redirection using an existing static frontend static IP address and managed SSL certificate.</p>
<pre><code>1. In Cloud shell. Execute below commands to point which region and cluster you’re working on.
gcloud config set compute/zone us-central1-a
gcloud container clusters get-credentials test-gke

test-gke &gt; your existing cluster 
us-central1-a  &gt; “test-gke” cluster region

2. In Cloud shell, create redirection YAML file

sudo nano web-redirect.yaml

web-redirect.yaml  &gt; preferred YAML filename

3. Copy paste below lines

apiVersion: networking.gke.io/v1beta1
kind: FrontendConfig
metadata:
 name: my-frontend-config
spec:
 redirectToHttps:
   enabled: true
   responseCodeName: PERMANENT_REDIRECT

my-frontend-config &gt; preferred name for frontend config
PERMANENT_REDIRECT &gt; for http - https redirection. To return a 308 redirect response code.

4. Save the web-redirect.yaml file. Press ctrl + o to write the lines, then Enter to verify the filename lastly ctrl + x to exit.

5. Apply the resource to the cluster 
kubectl apply -f web-redirect.yaml

6. Modify your existing ingress yaml (sample: web-ingress.yaml)
sudo nano web-ingress.yaml

7. Add the annotation to use the manifested FrontendConfig:
Sample modified ingress YAML:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: basic-ingress
  annotations:
    networking.gke.io/v1beta1.FrontendConfig: &quot;my-frontend-config&quot;
    kubernetes.io/ingress.global-static-ip-name: &quot;bes-load-balancer-ip&quot;
    networking.gke.io/managed-certificates: &quot;managed-cert&quot;
    kubernetes.io/ingress.class: &quot;gce&quot;
spec:
  defaultBackend:
    service:
      name: web
      port:
        number: 8080

my-frontend-config  &gt; FrontendConfig metadata name in web-redirect.yaml
web &gt; name of service deployed in your cluster
bes-load-balancer-ip&gt; name of reserve external IP
managed-cert &gt; name of managed certificate

8. Save the existing ingress.yaml file. Press ctrl + o to write the lines, then Enter to verify the filename lastly ctrl + x to exit.

9. Apply the resource to the cluster:
kubectl apply -f &lt;ingress.yaml&gt;

</code></pre>
<p>For more information, you may check these documents <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#https_redirect" rel="nofollow noreferrer">HTTP to HTTPS redirects</a>, and
<a href="https://www.doit-intl.com/say-goodbye-to-improvised-https-redirection-workarounds/" rel="nofollow noreferrer">Say goodbye to improvised HTTPS Redirection Workarounds</a>.</p>
