I've searched online and most links seem to mention manifests without actually explaining what they are. I would be grateful if someone could explain the basics to me.
It's basically a Kubernetes "API object description". A config file can include one or more of these. (i.e. Deployment, ConfigMap, Secret, DaemonSet, etc)
As per this:
Specification of a Kubernetes API object in JSON or YAML format.
A manifest specifies the desired state of an object that Kubernetes will maintain when you apply the manifest. Each configuration file can contain multiple manifests.
And a previous version of the documentation:
Configuration files - Written in YAML or JSON, these files describe the desired state of your application in terms of Kubernetes API objects. A file can include one or more API object descriptions (manifests).
When you are going to deploy to kubernetes , or create a kubernetes resources like a pod , replica-set , configmap , secret , deployment , etc , you need to write a file called manifest that describe that object and its attributes either in yaml or json.
Just like you do in:
puppet manifest
ansible playbook
chef recipe
etc
Ofcourse you can create those objects by using just command line , but the recommended way is to write a file so that you can version control it and use it in a repeatable way.