kubectl is the main command line tool for k8s. See reference

Raw commands

Sometimes it's handy to just run a container without all the yaml mess.

Running a container

kubectl run --image=IMAGE name

apply is not always the answer

Even if you see kubectl apply everywhere sometimes it's handy to use dedicated commands

For example, kubectl create is used to create a ressource and will throw an error if a ressource already exists.

Imperative commands quick reference

Do not forget that --dry-run=client can be usefull

Create a simple pod
kubectl run nginx --image=nginx
Create a deployement
kubectl create deployment --image=nginx nginx

Gotcha, deployement do not have a --replicas option, you need to use kubctl scale after deployement creation

Generating a manifests, blazzing fast way

kubectl run app --image=app --dry-run=client -o yaml
kubectl create deployment --image=redis redis --dry-run=client -o yaml

Of course, if you need to write it into a file

kubectl create deployment --image=redis redis --dry-run=client -o yaml > deploy-manifest.yml

Switching namespaces contexts

kubectl config set-config $(kubectl config current-context) --namespace=target