Posts

Showing posts with the label kubectl

AWS EKS User Guide

Image
Introduction Amazon Elastic Kubernetes Service (AWS EKS) is a managed Kubernetes service on the AWS cloud platform. Instead of having to install, operate, and maintain a Kubernetes cluster from scratch yourself, AWS takes over the management of the system's "brain" (Control Plane), helping you focus entirely on deploying and running applications. Advantages Reduced administrative burden: AWS automatically performs difficult tasks such as version updates, security patching, and ensuring high availability for the Control Plane across multiple Availability Zones. Optimal security: EKS integrates tightly with AWS security services such as IAM (for granular permissions for Pods), VPC (for network isolation), and AWS KMS (for data encryption). Flexible scalability: You can easily increase or decrease the number of resources (nodes) based on the actual traffic of the application, helping to optimize costs. Rich ecosystem: Easily connect with other AWS services such as CloudWatch...

Deploying a Python Flask Server to Google Kubernetes Engine

Image
Introduction In this article, I will guide you through deploying a Python Flask Server to Google Kubernetes Engine (GKE) . Previously, I wrote an article about deploying a NodeJS Application to GKE , which you can refer to for some basic information before continuing. Steps to Follow The process is quite similar to deploying a NodeJS Application and includes the following steps: Create a Python Flask Server Build a Docker image Push the Docker image Deploy the Docker image to GKE You will notice that when working with Kubernetes , the main difference is in the step where you build the Docker image . Depending on the application you need to deploy, there are different ways to build the Docker image . However, the common point is that once you build the Docker image , you have completed almost half of the process. This is because the subsequent steps involving Kubernetes are entirely the same. Detailed Process 1. Create a Python Flask Server In this step, you can either use an exist...

Kubernetes Deployment for Zero Downtime

Image
Introduction In Kubernetes (K8s) , a Pod is the smallest resource unit used to run one or more containers during deployment. There are several ways to create a Pod : you can create it directly, use a ReplicationController , or a ReplicaSet . However, the most commonly used resource for managing Pods is the Deployment . When you use a Deployment , it actually creates a ReplicaSet to manage the Pods but comes with many additional benefits that support the deployment process. Some Advantages of Deployment : Ensures Pod Availability : It guarantees that the specified number of Pods are always running according to the configuration, automatically deploying additional Pods if any failures occur. Supports Restart and Undo Deployment : Allows you to easily restart or roll back to previous versions of your Deployment . Zero Downtime Deployment : When updating configurations or scaling Deployments , zero downtime is crucial. This means that new Pods are created while the old Pods are stil...