<p>I've just started learning kubernetes, in every tutorial the writer generally uses "kubectl .... deploymenst" to control the newly created deploys. Now, with those commands (ex <code>kubectl get deploymets</code>) i always get the response <code>No resources found in default namespace.</code>, and i have to use <strong>"pods"</strong> instead of <strong>"deployments"</strong> to make things work (which works fine). </p>

<p>Now my question is, what is causing this to happen, and what is the difference between using a deployment or a pod? ? i've set the docker driver in the first minikube, it has something to do with this?</p>

<p>First let's brush up some terminologies.</p>

<p><a href="https://kubernetes.io/docs/concepts/workloads/pods/pod/" rel="noreferrer">Pod</a> - It's the basic building block for Kubernetes. It groups one or more containers (such as Docker containers), with shared storage/network, and a specification for how to run the containers.</p>

<p><a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/" rel="noreferrer">Deployment</a> - It is a controller which wraps Pod/s and manages its life cycle, which is to say actual state to desired state. <strong>There is one more layer in between Deployment and Pod which is <a href="https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/" rel="noreferrer">ReplicaSet</a></strong> : A ReplicaSet’s purpose is to maintain a stable set of replica Pods running at any given time. As such, it is often used to guarantee the availability of a specified number of identical Pods. 
Below is the visualization:
<a href="https://i.stack.imgur.com/7HyG4.png" rel="noreferrer"><img src="https://i.stack.imgur.com/7HyG4.png" alt="enter image description here"></a> 
<em>Source: I drew it!</em><hr>
In you case what might have happened :</p>

<ol>
<li><strong>Either</strong> you have created a Pod not a Deployment. Therefore, when you do <code>kubectl get deployment</code> you don't see any resources. Note when you create Deployments it in turn creates a ReplicaSet for you and also creates the defined pods.</li>
<li><strong>Or</strong> may be you created your deployment in a different namespace, if that's the case, then type this command to find your deployments in that namespace <code>kubectl get deploy NAME_OF_DEPLOYMENT -n NAME_OF_NAMESPACE</code> </li>
</ol>

<p><hr>
More information to clarify your concepts:</p>

<p><a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment" rel="noreferrer">Source</a>
Below the section inside spec.template is the section which is supposedly your POD manifest if you were to create it manually and not take the deployment route. Now like I said earlier in simple terms <strong>Deployments</strong> are a wrapper to your PODs, therefore anything which you see outside the path spec.template is the configuration which you will need to defined on how you want to manage (scaling,affinity, e.t.c) your POD</p>

<pre><code>
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
</code></pre>
