Pod: one or more containers running together on one node. Basic unit of deployment. Containers are always in pods.
Controller: for creating / updating pods and other objects. Controllers manage pods, you almost never manage pods yourself. There are many types of Controllers, including Deployment, ReplicaSet, StatefulSet, DaemonSet, Job, CronJob, etc.
Service: network endpoint to connect to a pod.
Namespace: Filtered group of objects in cluster.
Secrets, ConfigMaps, etc.
Kubernetes Run, Create and Apply
Kubernetes is evolving, and so is the CLI
We get 3 ways to create pods from the kubectl CLI
kubectl run (changing to be only for pod creation)
kubectl create (create some resources via CLI or YAML)
kubectl apply (create / update anything via YAML)
kubectl version - shows a version of Client and Server
kubectl run my-nginx --image nginx - this will create a pod, replica set and a deployment
kubectl get pods - get current pods
kubectl get all - get all components
kubectl delete deployment my-nginx - delete named deployment
Start new deployment for one replica/pod
kubectl run my-apache --image httpd
kubectl scale deploy/my-apache --replicas 2
kubectl scale deployment my-apache --replicas 2 (these are same commands)