title: Ingress not binding to Load Balancer
body: <p>I have my <a href="https://support.dnsimple.com/articles/a-record/" rel="nofollow noreferrer">A record</a> on Netlify mapped to my Load Balancer IP Address on Digital Ocean, and it's able to hit the nginx server, but I'm getting a 404 when trying to access any of the apps APIs. I noticed that the status of my Ingress doesn't show that it is bound to the Load Balancer.</p>
  <p><a href="https://i.stack.imgur.com/6IB0k.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/6IB0k.png" alt="enter image description here" /></a></p>
  <p>Does anybody know what I am missing to get this setup?</p>
  <p>Application Ingress:</p>
  <pre class="lang-yaml prettyprint-override"><code>apiVersion: networking.k8s.io/v1
  kind: Ingress
  metadata:
    name: d2d-server
  spec:
    rules:
      - host: api.cloud.myhostname.com
        http:
          paths:
            - backend:
                service:
                  name: d2d-server
                  port:
                    number: 443
              path: /
              pathType: ImplementationSpecific
  </code></pre>
  <p>Application Service:</p>
  <pre class="lang-yaml prettyprint-override"><code>apiVersion: v1
  kind: Service
  metadata:
    name: d2d-server
  spec:
    selector:
      app: d2d-server
    ports:
      - name: http-api
        protocol: TCP
        port: 443
        targetPort: 8080
    type: ClusterIP
  </code></pre>
  <p>Ingress Controller:</p>
  <pre class="lang-yaml prettyprint-override"><code>apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: ingress-nginx-controller
    namespace: ingress-nginx
    uid: fc64d9f6-a935-49b2-9d7a-b862f660a4ea
    resourceVersion: '257931'
    generation: 1
    creationTimestamp: '2021-10-22T05:31:26Z'
    labels:
      app.kubernetes.io/component: controller
      app.kubernetes.io/instance: ingress-nginx
      app.kubernetes.io/managed-by: Helm
      app.kubernetes.io/name: ingress-nginx
      app.kubernetes.io/version: 1.0.4
      helm.sh/chart: ingress-nginx-4.0.6
    annotations:
      deployment.kubernetes.io/revision: '1'
  spec:
    replicas: 1
    selector:
      matchLabels:
        app.kubernetes.io/component: controller
        app.kubernetes.io/instance: ingress-nginx
        app.kubernetes.io/name: ingress-nginx
    template:
      metadata:
        creationTimestamp: null
        labels:
          app.kubernetes.io/component: controller
          app.kubernetes.io/instance: ingress-nginx
          app.kubernetes.io/name: ingress-nginx
      spec:
        volumes:
          - name: webhook-cert
            secret:
              secretName: ingress-nginx-admission
              defaultMode: 420
        containers:
          - name: controller
            image: &gt;-
              k8s.gcr.io/ingress-nginx/controller:v1.0.4@sha256:545cff00370f28363dad31e3b59a94ba377854d3a11f18988f5f9e56841ef9ef
            args:
              - /nginx-ingress-controller
              - '--publish-service=$(POD_NAMESPACE)/ingress-nginx-controller'
              - '--election-id=ingress-controller-leader'
              - '--controller-class=k8s.io/ingress-nginx'
              - '--configmap=$(POD_NAMESPACE)/ingress-nginx-controller'
              - '--validating-webhook=:8443'
              - '--validating-webhook-certificate=/usr/local/certificates/cert'
              - '--validating-webhook-key=/usr/local/certificates/key'
            ports:
              - name: http
                containerPort: 80
                protocol: TCP
              - name: https
                containerPort: 443
                protocol: TCP
              - name: webhook
                containerPort: 8443
                protocol: TCP
            env:
              - name: POD_NAME
                valueFrom:
                  fieldRef:
                    apiVersion: v1
                    fieldPath: metadata.name
              - name: POD_NAMESPACE
                valueFrom:
                  fieldRef:
                    apiVersion: v1
                    fieldPath: metadata.namespace
              - name: LD_PRELOAD
                value: /usr/local/lib/libmimalloc.so
            resources:
              requests:
                cpu: 100m
                memory: 90Mi
            volumeMounts:
              - name: webhook-cert
                readOnly: true
                mountPath: /usr/local/certificates/
            livenessProbe:
              httpGet:
                path: /healthz
                port: 10254
                scheme: HTTP
              initialDelaySeconds: 10
              timeoutSeconds: 1
              periodSeconds: 10
              successThreshold: 1
              failureThreshold: 5
            readinessProbe:
              httpGet:
                path: /healthz
                port: 10254
                scheme: HTTP
              initialDelaySeconds: 10
              timeoutSeconds: 1
              periodSeconds: 10
              successThreshold: 1
              failureThreshold: 3
            lifecycle:
              preStop:
                exec:
                  command:
                    - /wait-shutdown
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            imagePullPolicy: IfNotPresent
            securityContext:
              capabilities:
                add:
                  - NET_BIND_SERVICE
                drop:
                  - ALL
              runAsUser: 101
              allowPrivilegeEscalation: true
        restartPolicy: Always
        terminationGracePeriodSeconds: 300
        dnsPolicy: ClusterFirst
        nodeSelector:
          kubernetes.io/os: linux
        serviceAccountName: ingress-nginx
        serviceAccount: ingress-nginx
        securityContext: {}
        schedulerName: default-scheduler
    strategy:
      type: RollingUpdate
      rollingUpdate:
        maxUnavailable: 25%
        maxSurge: 25%
    revisionHistoryLimit: 10
    progressDeadlineSeconds: 600
  
  </code></pre>
  <p>Load Balancer:</p>
  <pre class="lang-yaml prettyprint-override"><code>apiVersion: v1
  kind: Service
  metadata:
    name: ingress-nginx-controller
    namespace: ingress-nginx
    labels:
      app.kubernetes.io/component: controller
      app.kubernetes.io/instance: ingress-nginx
      app.kubernetes.io/managed-by: Helm
      app.kubernetes.io/name: ingress-nginx
      app.kubernetes.io/version: 1.0.4
      helm.sh/chart: ingress-nginx-4.0.6
    annotations:
      kubernetes.digitalocean.com/load-balancer-id: &lt;LB_ID&gt;
      service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: 'true'
      service.beta.kubernetes.io/do-loadbalancer-name: ingress-nginx
      service.beta.kubernetes.io/do-loadbalancer-protocol: https
  status:
    loadBalancer:
      ingress:
        - ip: &lt;IP_HIDDEN&gt;
  spec:
    ports:
      - name: http
        protocol: TCP
        appProtocol: http
        port: 80
        targetPort: http
        nodePort: 31661
      - name: https
        protocol: TCP
        appProtocol: https
        port: 443
        targetPort: https
        nodePort: 32761
    selector:
      app.kubernetes.io/component: controller
      app.kubernetes.io/instance: ingress-nginx
      app.kubernetes.io/name: ingress-nginx
    clusterIP: &lt;IP_HIDDEN&gt;
    clusterIPs:
      - &lt;IP_HIDDEN&gt;
    type: LoadBalancer
    sessionAffinity: None
    externalTrafficPolicy: Local
    healthCheckNodePort: 30477
    ipFamilies:
      - IPv4
    ipFamilyPolicy: SingleStack
  
  </code></pre>