Skip to main content

Kubernetes

Published 3 min readMarkdown

Definition of Kubernetes:

Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It provides a framework for managing and coordinating multiple containers across a cluster of servers. Kubernetes simplifies the process of deploying and scaling applications, making it easier to manage and maintain containerized environments.

Integrating Kubernetes into your CI/CD - DevOps deployments - France

Why do we use Kubernetes:

Mainly Kubernetes is used for various purposes:

  1. Scalability and flexibility

  2. container orchestration

  3. high availability an resilience

  4. service discovery and load balancing

  5. self-healing and fault tolerance

  6. portability and vendor Neutrality

  7. Ecosystem and community support

In Kubernetes, there are several key resource types that are commonly used:

  1. Pod: The smallest and simplest unit in Kubernetes. A pod represents a single instance of a running process in the cluster. It can contain one or more containers that are tightly coupled and share the same resources, such as networking and storage.

  2. Deployment: A higher-level resource that manages and scales replicas of pods. Deployments enable declarative updates and rollbacks of application deployments, making it easier to manage the lifecycle of applications.

  3. Service: An abstract way to expose an application running in a set of pods. Services provide a stable network endpoint (IP address and port) that allows other pods or external users to access the application. They enable load balancing and discovery of pods.

  4. ReplicaSet: A lower-level resource used by deployments to ensure a specified number of pod replicas are running at all times. ReplicaSets are responsible for maintaining the desired number of pod instances and can perform scaling operations.

  5. StatefulSet: Similar to ReplicaSets, StatefulSets manage the deployment and scaling of pods. However, StatefulSets provide guarantees for the identity and ordering of pods. They are typically used for applications that require stable network identities and persistent storage.

  6. Namespace: A logical partitioning mechanism that provides a way to organize and isolate resources within a cluster. Namespaces allow multiple teams or projects to share the same Kubernetes cluster while maintaining separation and access control.

  7. ConfigMap: A way to store configuration data as key-value pairs that can be accessed by pods. ConfigMaps decouple configuration from the application, allowing for easy changes and updates without modifying the container image.

  8. Secret: Similar to ConfigMaps, secrets store sensitive information, such as API keys or database credentials. Secrets are base64-encoded and provide a secure way to store and distribute sensitive data to pods.

  9. PersistentVolume (PV) and PersistentVolumeClaim (PVC): PVs are storage resources in the cluster, while PVCs are requests for storage made by pods. PVCs bind to PVs and provide a way for pods to access and use persistent storage in a portable manner.

No comments yet. Be the first to comment.

More from this blog