Kubernetes quick notes deployment (WIP)
The content here is under the Attribution 4.0 International (CC BY 4.0) license
As opposed to docker which operates on the container level directly, Kubernetes
has a different approach as such there are a set of steps required to get
the application running into the cluster. For example, in docker a simple
docker run
creates the container and starts it. In kubernetes, first we need
to create a deployment and
then expose it.
Creating a pod
A pod is the smallest unit on the kubernetes cluster. Pods are a group of containers that are related to each other.
Manually
It’s not possible to run an empty pod, it is required to have an image.
kubectl run my-pod-name --image=my-image
Side note: for deleting the created pod, k8s expects the prefix pods/
(issuing
the delete command without the prefix spawn the error message:
error: the server doesn't have a resource type "my-pod-name"
), in this
case the full name to delete the pod would be: pods/my-pod-name
.
Fetching the information about the created pods, can be achieved in two ways, with less details:
kubectl get pods
Another options to list more details would be:
kubectl describe pods my-pod-name
Side node: the name of the pod is options, in this case my-pod-name
could be
removed.
Another helpful command to check the container running is to access it via
browser or any other client, for that the port-forward
is used:
kubectl port-forward my-pod-name container-port:local-port
Deployments
Creating a deployment
kubectl create deployment my-deployment-name --image=my-image
Exposing the deployment
kubectl expose deployment my-deployment-name
Managing containers
Therefore, it is possible to use kubernetes with the same docker behavior,
for example the kubectl run
command is available for that. The attention point
is the need to have a pod. In other words, in docker you can run a container
with docker run
, but in kubernetes you need a pod before that. The analogy
that [1]
uses for describing how kubernetes handles the different layers of abstraction
is as follows:
- A Deployment manages a ReplicaSet
- A ReplicaSet manages a Pod
- A Pod is an abstraction of a Container
Related subjects
References
- [1]Nana, “Kubernetes Tutorial for Beginners [FULL COURSE in 4 Hours],” 2021 [Online]. Available at: https://www.youtube.com/watch?v=X48VuDVv0do. [Accessed: 06-Nov-2020]
Table of contents
Got a question?
If you have question or feedback, don't think twice and click here to leave a comment. Just want to support me? Buy me a coffee!