<p>I wrote a simple node.js app that listens on a port and returns HTML.  I can <strong>docker run</strong> the node.js app and, with port forwarding in place, hit it happily.</p>
<pre><code>+ docker run -p 7081:7081 split-server
</code></pre>
<p>Now I want to run the app in kubernetes.  I am on a mac and set up minikube and virtual box.  <em>I also set up a local docker registry for my local app</em>, using <a href="https://learnk8s.io/deploying-nodejs-kubernetes" rel="nofollow noreferrer">instructions found here</a>.</p>
<p>It doesn't work no matter what combination of things I try.  Pending.  The describe is below.  I think I'm close, but I just can't get useful debugging output from kubectl:</p>
<pre><code>+ kubectl describe pod split-server
Name:           split-server-68fc6cdcd-gpk5m
Namespace:      default
Priority:       0
Node:           &lt;none&gt;
Labels:         app=split-server
                pod-template-hash=68fc6cdcd
Annotations:    &lt;none&gt;
Status:         Pending
IP:             
IPs:            &lt;none&gt;
Controlled By:  ReplicaSet/split-server-68fc6cdcd
Containers:
  app:
    Image:      split-server:latest
    Port:       7081/TCP
    Host Port:  0/TCP
    Environment:
      SPLIT_API_KEY:  &lt;API KEY&gt;
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-f8lzd (ro)
Conditions:
  Type           Status
  PodScheduled   False 
Volumes:
  kube-api-access-f8lzd:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       &lt;nil&gt;
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              &lt;none&gt;
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason            Age                  From               Message
  ----     ------            ----                 ----               -------
  Warning  FailedScheduling  3m27s (x3 over 13m)  default-scheduler  0/1 nodes are available: 1 node(s) had untolerated taint {node.kubernetes.io/unschedulable: }, 1 node(s) were unschedulable. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling.
</code></pre>
<p>My YAML is...</p>
<pre><code>apiVersion: v1
kind: Service
metadata:
  name: split-server
spec:
  selector:
    app: split-server
  ports:
    - port: 7081
      targetPort: 7081
  type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: split-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: split-server
  template:
    metadata:
      labels:
        app: split-server
    spec:
      containers:
        - name: app 
          image: 192.168.4.26:5000/split-server:latest
          #image: split-server:latest
          ports:
            - containerPort: 7081
          env:
            - name: SPLIT_API_KEY
              value: &lt;API KEY&gt; 
          imagePullPolicy: Always
</code></pre>
<p>And here is what docker has for its list of images:</p>
<pre><code>docker images
REPOSITORY                             TAG             IMAGE ID       CREATED             SIZE
split-server                           latest          d2caa2d0c693   45 minutes ago      1.01GB
192.168.4.26:5000/local/split-server   latest          d2caa2d0c693   45 minutes ago      1.01GB
</code></pre>
<p>Where should I be hunting?  What tools am I missing?  <strong>kubectl logs</strong> comes back empty every time... should have a single line of logging if the app had come up properly.</p>

David Martin
<p>The minikube node is marked as <code>unschedulable</code> for some reason (manually or there is a problem), you can try to remove the taint:</p>
<pre class="lang-bash prettyprint-override"><code>kubectl taint nodes --all node.kubernetes.io/unschedulable-
</code></pre>
<p>or add a toleration on your pod:</p>
<pre class="lang-yaml prettyprint-override"><code>apiVersion: v1
kind: Pod
metadata:
  name: ...
  ...
spec:
  containers:
  - name: ...
    ...
  tolerations:
  - key: &quot;node.kubernetes.io/unschedulable&quot;
    operator: &quot;Exists&quot;
    effect: &quot;NoSchedule&quot;
</code></pre>
