Learn Kubernetes basics.
What is Kubernetes?
Kubernetes is an open-source platform designed to automate deploying, scaling, and managing containerized applications. It is the combination of Google’s 15 years of running production workloads.
What are the good alternatives of Kubernetes?
There are alternatives out there but Kubernetes is by far the best ecosystem to support almost any workload. The alternatives are:
- Amazon Elastic Container Service (ECS)
- Docker Swarm
- Nomad
What are the differences between docker vs VM?
Here is a good reference about it.
Kubernetes architecture
Core Components of Kubernetes:
Nodes: These are the machines (physical or virtual) where containers are deployed. Nodes can be a part of a cluster and run applications managed by Kubernetes.
Pods: The basic unit in Kubernetes. A pod is a group of one or more containers that share resources, such as storage and network, and can be scheduled onto a node. Containers within a pod are scheduled together and share an IP address and port space. Documentation of Kubernetes pods.
Deployments: A higher-level resource that manages Pods and provides features like scaling, rolling updates, and rollbacks. It ensures that a specified number of pod replicas are running at any given time.
Services: An abstraction that defines a logical set of Pods and a policy by which to access them. Services enable a group of pods to work together, providing network access to a set of pods.
Labels and Selectors: Labels are key-value pairs attached to Kubernetes objects like Pods. Selectors are used to identify and operate on a group of objects labeled with specific labels.
ReplicaSets: Ensures that a specified number of Pod replicas are running at any given time. It works with Deployments to maintain the desired number of pods running.
Namespaces: A way to divide cluster resources between multiple users or projects. It provides a scope for Kubernetes objects and allows multiple virtual clusters backed by the same physical cluster.
ConfigMaps and Secrets: ConfigMaps hold configuration data in key-value pairs, while Secrets hold sensitive information like passwords, OAuth tokens, and SSH keys.
Kubectl: The command-line tool used to interact with Kubernetes clusters. It allows you to deploy applications, inspect and manage cluster resources, and view logs.
Ingress: Manages external access to services within a cluster, typically handling HTTP and HTTPS traffic.