title: GKE External Load Balancer Configuration, NEG's are empty, health checks are not working
body: <p>I'm working on a deployment in GKE that is my first one, so I'm pretty new to the concepts, but I understand where they're going with the tools, just need the experience to be confident.</p>
  <p>First, I have a cluster that has about five services, two of which I want to expose via external load balancer. I've defined an annotation for Gcloud to set these up under load balancing, and that seems to be working, I've also setup an annotation to setup a network endpoint groups for the services. Here's how one is configured as in the deployment and service manifests.</p>
  <pre><code>---
  #api-deployment.yaml
  apiVersion: apps/v1
  kind: Deployment
  metadata:
    annotations:
      kompose.cmd: kompose convert -f ./docker-compose.yml
      kompose.version: 1.21.0 ()
    creationTimestamp: null
    labels:
      io.kompose.service: api
    name: api
  spec:
    replicas: 1
    selector:
      matchLabels:
        io.kompose.service: api
    strategy:
      type: Recreate
    template:
      metadata:
        annotations:
          kompose.cmd: kompose convert -f ./docker-compose.yml
          kompose.version: 1.21.0 ()
        creationTimestamp: null
        labels:
          io.kompose.service: api
      spec:
        containers:
        - args:
          - bash
          - -c
          - node src/server.js
          env:
          - name: NODE_ENV
            value: production
          - name: TZ
            value: America/New_York
          image: gcr.io/&lt;PROJECT_ID&gt;/api
          imagePullPolicy: Always
          name: api
          ports:
          - containerPort: 8087
          resources: {}
        restartPolicy: Always
        serviceAccountName: &quot;&quot;
  status: {}
  
  ---
  #api-service.yaml
  apiVersion: v1
  kind: Service
  metadata:
    annotations:
      cloud.google.com/load-balancer-type: &quot;Internal&quot;
      cloud.google.com/neg: '{&quot;ingress&quot;: true}'
    creationTimestamp: null
    labels:
      io.kompose.service: api
    name: api
  spec:
    type: LoadBalancer
    ports:
    - name: &quot;8087&quot;
      port: 8087
      targetPort: 8087
  status:
    loadBalancer: {}
  
  
  </code></pre>
  <p>I think I may be missing some kind of configuration here, but I'm unsure.</p>
  <p>I've also seen where I can define Liveness checks in the yaml by adding</p>
  <pre><code>livenessProbe:
        httpGet:
          path: /healthz
          port: 8080
  </code></pre>
  <p>I also have my ingress configured like this:</p>
  <pre><code>---
  # master-ingress.yaml
  apiVersion: extensions/v1beta1
  kind: Ingress
  metadata:
    name: master-application-ingress
    annotations:
      ingress.kubernetes.io/secure-backends: &quot;true&quot;
  spec:
    rules:
    - http:
        paths:
        - path: /api
          backend:
            serviceName: api
            servicePort: 8087
    - http:
        paths:
        - path: /ui
          backend:
            serviceName: ui
            servicePort: 80
  </code></pre>
  <p>and I've seen it where it just needs the port, for TCP checks, but I've already defined these in my application, and in the load balancer. I guess I want to know where I should be defining these checks.</p>
  <p>Also, I have an issue with the NEG's created by the annotation being empty, or is this normal with manifest created NEG's?</p>