<p>I created a <code>Deployment</code>, <code>Service</code> and an <code>Ingress</code>. Unfortunately, the <code>ingress-nginx-controller</code> pods are complaining that my <code>Service</code> does not have an Active Endpoint:</p>
<p><code>controller.go:920] Service &quot;&lt;namespace&gt;/web-server&quot; does not have any active Endpoint.</code></p>
<p>My <code>Service</code> definition:</p>
<pre class="lang-yaml prettyprint-override"><code>apiVersion: v1
kind: Service
metadata:
  annotations:
    prometheus.io/should_be_scraped: &quot;false&quot;
  creationTimestamp: &quot;2021-06-22T07:07:18Z&quot;
  labels:
    chart: &lt;namespace&gt;-core-1.9.2
    release: &lt;namespace&gt;
  name: web-server
  namespace: &lt;namespace&gt;
  resourceVersion: &quot;9050796&quot;
  selfLink: /api/v1/namespaces/&lt;namespace&gt;/services/web-server
  uid: 82b3c3b4-a181-4ba2-887a-a4498346bc81
spec:
  clusterIP: 10.233.56.52
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 8080
  selector:
    app: web-server
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}
</code></pre>
<p>My <code>Deployment</code> definition:</p>
<pre class="lang-yaml prettyprint-override"><code>apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: &quot;1&quot;
  creationTimestamp: &quot;2021-06-22T07:07:19Z&quot;
  generation: 1
  labels:
    app: web-server
    chart: &lt;namespace&gt;-core-1.9.2
    release: &lt;namespace&gt;
  name: web-server
  namespace: &lt;namespace&gt;
  resourceVersion: &quot;9051062&quot;
  selfLink: /apis/apps/v1/namespaces/&lt;namespace&gt;/deployments/web-server
  uid: fb085727-9e8a-4931-8067-fd4ed410b8ca
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: web-server
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: web-server
    spec:
      containers:
      - env:
        &lt;removed environment variables&gt;
        image: &lt;url&gt;/&lt;namespace&gt;/web-server:1.10.1
        imagePullPolicy: IfNotPresent
        name: web-server
        ports:
        - containerPort: 8080
          name: http
          protocol: TCP
        - containerPort: 8082
          name: metrics
          protocol: TCP
        readinessProbe:
          failureThreshold: 3
          httpGet:
            path: /actuator/health
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 10
          periodSeconds: 5
          successThreshold: 1
          timeoutSeconds: 1
        resources:
          limits:
            memory: 1Gi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /config
          name: &lt;namespace&gt;-config
      dnsPolicy: ClusterFirst
      hostAliases:
      - hostnames:
        - &lt;url&gt;
        ip: 10.0.1.178
      imagePullSecrets:
      - name: registry-pull-secret
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - configMap:
          defaultMode: 420
          name: &lt;namespace&gt;-config
        name: &lt;namespace&gt;-config
status:
  conditions:
  - lastTransitionTime: &quot;2021-06-22T07:07:19Z&quot;
    lastUpdateTime: &quot;2021-06-22T07:07:19Z&quot;
    message: Deployment does not have minimum availability.
    reason: MinimumReplicasUnavailable
    status: &quot;False&quot;
    type: Available
  - lastTransitionTime: &quot;2021-06-22T07:17:20Z&quot;
    lastUpdateTime: &quot;2021-06-22T07:17:20Z&quot;
    message: ReplicaSet &quot;web-server-6df6d6565b&quot; has timed out progressing.
    reason: ProgressDeadlineExceeded
    status: &quot;False&quot;
    type: Progressing
  observedGeneration: 1
  replicas: 1
  unavailableReplicas: 1
  updatedReplicas: 1
</code></pre>
<p>In the same namespace, I have more <code>Service</code> and <code>Deployment</code> resources, all of them work, except this one (+ another, see below).</p>
<pre><code># kubectl get endpoints -n &lt;namespace&gt;
NAME                 ENDPOINTS                                                          AGE
activemq             10.233.64.3:61613,10.233.64.3:8161,10.233.64.3:61616 + 1 more...   26d
content-backend      10.233.96.17:8080                                                  26d
datastore3           10.233.96.16:8080                                                  26d
web-server                                                                              74m
web-server-metrics                                                                      26d
</code></pre>
<p>As you can see, the selector/label are the same (<code>web-server</code>) in the <code>Service</code> as well as in the <code>Deployment</code> definition.</p>

<p><a href="https://stackoverflow.com/users/13524500/c-nan">C-Nan</a> has solved the problem, and has posted a solution as a comment:</p>
<blockquote>
<p>I found the issue. The Pod was started, but not in Ready state due to a failing readinessProbe. I wasn't aware that an endpoint wouldn't be created until the Pod is in Ready state. Removing the readinessProbe created the Endpoint.</p>
</blockquote>
