<p>I could create the container:</p>

<pre><code>$ kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=
deployment "hello-minikube" created
</code></pre>

<p>And I'm now trying to expose a service:</p>

<pre><code>$ kubectl expose deployment hello-minikube --type=NodePort
error: couldn't find port via --port flag or introspection
</code></pre>

<p>Even if I delete it, it still comes back of its own:</p>

<pre><code>$ kubectl delete pod hello-minikube-2138963058-2szl7
pod "hello-minikube-2138963058-2szl7" deleted
[stephane@stephane-ThinkPad-X201 ~]
$ kubectl get pods
NAME                              READY     STATUS    RESTARTS   AGE
hello-minikube-2138963058-nhh1q   1/1       Running   0          3m
</code></pre>

<p>The is the pod:</p>

<pre><code>$ kubectl get pods
NAME                              READY     STATUS    RESTARTS   AGE
hello-minikube-2138963058-2szl7   1/1       Running   0          16m
</code></pre>

<p>And its description:</p>

<pre><code>$ kubectl describe pod hello-minikube-2138963058-2szl7
Name:       hello-minikube-2138963058-2szl7
Namespace:  default
Node:       minikube/192.168.42.196
Start Time: Thu, 14 Sep 2017 23:20:03 +0200
Labels:     pod-template-hash=2138963058
        run=hello-minikube
Annotations:    kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"default","name":"hello-minikube-2138963058","uid":"2b37ca13-9968-11e7-a720-525400...
Status:     Running
IP:     172.17.0.3
Created By: ReplicaSet/hello-minikube-2138963058
Controlled By:  ReplicaSet/hello-minikube-2138963058
Containers:
  hello-minikube:
    Container ID:   docker://5e4ba407d8869e6e843ec3d7876e953147cc01104e980c7febfea218808ab379
    Image:      gcr.io/google_containers/echoserver:1.4
    Image ID:       docker-pullable://gcr.io/google_containers/echoserver@sha256:5d99aa1120524c801bc8c1a7077e8f5ec122ba16b6dda1a5d3826057f67b9bcb
    Port:       &lt;none&gt;
    State:      Running
      Started:      Thu, 14 Sep 2017 23:20:05 +0200
    Ready:      True
    Restart Count:  0
    Environment:    &lt;none&gt;
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-t8qx7 (ro)
Conditions:
  Type      Status
  Initialized   True 
  Ready     True 
  PodScheduled  True 
Volumes:
  default-token-t8qx7:
    Type:   Secret (a volume populated by a Secret)
    SecretName: default-token-t8qx7
    Optional:   false
QoS Class:  BestEffort
Node-Selectors: &lt;none&gt;
Tolerations:    &lt;none&gt;
Events:
  FirstSeen LastSeen    Count   From            SubObjectPath           Type        Reason          Message
  --------- --------    -----   ----            -------------           --------    ------          -------
  17m       17m     1   default-scheduler                   Normal      Scheduled       Successfully assigned hello-minikube-2138963058-2szl7 to minikube
  17m       17m     1   kubelet, minikube                   Normal      SuccessfulMountVolume   MountVolume.SetUp succeeded for volume "default-token-t8qx7" 
  17m       17m     1   kubelet, minikube   spec.containers{hello-minikube} Normal      Pulled          Container image "gcr.io/google_containers/echoserver:1.4" already present on machine
  17m       17m     1   kubelet, minikube   spec.containers{hello-minikube} Normal      Created         Created container
  17m       17m     1   kubelet, minikube   spec.containers{hello-minikube} Normal      Started         Started container
</code></pre>

<p>All of this on a host minikube on Linux.</p>

<p>You get this error because you didn't set the container port from the command <code>kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=</code> as such the expose command doesn't know which container port to map to a node port and then error </p>

<p>You have to set exact container port as follow <code>kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=80</code> assuming <code>80</code> is the port number and then run the expose again.</p>

<p>See bellow step by step of how I was able to replicate your error and then fix</p>

<pre><code>C:\Users\innocent.anigbo\.minikube&gt;kubectl run hello-kube --image=gcr.io/google_
containers/echoserver:1.4 --port=
deployment "hello-kube" created

C:\Users\innocent.anigbo\.minikube&gt;kubectl get pods
NAME                             READY     STATUS    RESTARTS   AGE
hello-kube-1448409582-c9sm5      1/1       Running   0          1m
hello-minikube-938614450-417hj   1/1       Running   1          8d
hello-nginx-3322088713-c4rp4     1/1       Running   0          6m

C:\Users\innocent.anigbo\.minikube&gt;kubectl get deployment
NAME             DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
hello-kube       1         1         1            1           2m
hello-minikube   1         1         1            1           8d
hello-nginx      1         1         1            1           7m

C:\Users\innocent.anigbo\.minikube&gt;kubectl get service
NAME          CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
hello-nginx   10.0.0.136   &lt;nodes&gt;       80:32155/TCP   4m
kubernetes    10.0.0.1     &lt;none&gt;        443/TCP        20d

C:\Users\innocent.anigbo\.minikube&gt;kubectl expose deployment hello-kube --type=N
odePort
error: couldn't find port via --port flag or introspection
See 'kubectl expose -h' for help and examples.

C:\Users\innocent.anigbo\.minikube&gt;kubectl delete deployment hello-kube
deployment "hello-kube" deleted

C:\Users\innocent.anigbo\.minikube&gt;kubectl get pods
NAME                             READY     STATUS    RESTARTS   AGE
hello-minikube-938614450-417hj   1/1       Running   1          8d
hello-nginx-3322088713-c4rp4     1/1       Running   0          11m

C:\Users\innocent.anigbo\.minikube&gt;kubectl run hello-kube --image=gcr.io/google_
containers/echoserver:1.4 --port=80
deployment "hello-kube" created

C:\Users\innocent.anigbo\.minikube&gt;kubectl get pods
NAME                             READY     STATUS    RESTARTS   AGE
hello-kube-2715294448-0rxf2      1/1       Running   0          3s
hello-minikube-938614450-417hj   1/1       Running   1          8d
hello-nginx-3322088713-c4rp4     1/1       Running   0          11m

C:\Users\innocent.anigbo\.minikube&gt;kubectl expose deployment hello-kube --type=N
odePort
service "hello-kube" exposed

C:\Users\innocent.anigbo\.minikube&gt;kubectl get service
NAME          CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
hello-kube    10.0.0.137   &lt;nodes&gt;       80:30004/TCP   3s
hello-nginx   10.0.0.136   &lt;nodes&gt;       80:32155/TCP   9m
kubernetes    10.0.0.1     &lt;none&gt;        443/TCP        20d
</code></pre>
