Skip to main content

Kubernetes deployment within an ec2 instance

Kubernetes within an EC2 instance,


We have to follow these steps:-

  1. Set up the EC2 instance with Kubernetes.
  2. Create a Kubernetes Deployment YAML file.
  3. Apply the deployment using kubectl.

Below is a guide and code to accomplish this.

Step 1: Set Up EC2 Instance with Kubernetes

  1. Launch an EC2 Instance:

    • Choose an Amazon Linux 2 AMI or Ubuntu AMI.
    • Select an instance type (t2.micro is fine for small projects).
    • Configure security groups to allow SSH, HTTP, HTTPS, and any required Kubernetes ports.
  2. Install Docker: SSH into your instance and install Docker.

    sudo yum update -y
    sudo amazon-linux-extras install docker -y sudo service docker start sudo usermod -aG docker ec2-user

    For Ubuntu:

    sudo apt-get update
    sudo apt-get install -y docker.io sudo systemctl start docker sudo usermod -aG docker ubuntu
  3. Install Kubernetes (kubectl, kubeadm, kubelet):s

    sudo apt-get update && sudo apt-get install -y apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubect
  4. Initialize Kubernetes (Master Node):

    • This is usually done on the master node, but for simplicity, we'll assume a single-node setup.
    sudo kubeadm init --pod-network-cidr=192.168.0.0/16
  5. Set up kubectl for your user:

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
  6. Install a Pod Network (Weave, Flannel, etc.):

    • For example, with Flannel:
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master

Step 2: Create a Kubernetes Deployment YAML File

Below is a sample YAML file for deploying a simple Nginx application.

apiVersion: apps/v1
kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: nginx-service spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer

Step 3: Deploy the Application

  1. Apply the Deployment: Save the above YAML content to a file named nginx-deployment.yaml.

    kubectl apply -f nginx-deployment.yaml
  2. Verify the Deployment:

    kubectl get deployments
    kubectl get pods kubectl get services
  3. Access the Application:

    • If you have set the Service type to LoadBalancer, Kubernetes will provision a public IP through your cloud provider. Use kubectl get services to find the external IP and access your application via a browser or curl.

Additional Considerations:

  • Scaling: You can scale the number of replicas easily with:

    kubectl scale deployment nginx-deployment --replicas=5
  • Monitoring: Consider setting up monitoring for your Kubernetes cluster using tools like Prometheus and Grafana.

This process will give you a basic setup to deploy an application on Kubernetes running on an EC2 instance. For production, you should explore multi-node clusters, proper security configurations, and advanced networking setups.

Comments

Popular posts from this blog

Website hosting on EC2 instances AWS Terminal

Website hosting on EC2 instances  In the world of web development and server management, Apache HTTP Server, commonly known as Apache, stands as one of the most popular and powerful web servers. Often, developers and administrators require custom images with Apache server configurations for various purposes, such as deploying standardized environments or distributing applications. In this guide, we'll walk through the process of creating a custom image with Apache server (httpd) installed on an AWS terminal.   Setting Up AWS Environment: Firstly, ensure you have an AWS account and access to the AWS Management Console. Once logged in: 1. Launch an EC2 Instance: Navigate to EC2 service and launch a new instance. Choose an appropriate Amazon Machine Image (AMI) based on your requirements. It's recommended to select a base Linux distribution such as Amazon Linux. 2. Connect to the Instance: After launching the instance, connect to it using SSH or AWS Systems Manager Session Manage...

Hugging Face: Revolutionizing Natural Language Processing

  Hugging Face: Revolutionizing Natural Language Processing Hugging Face has emerged as a pivotal player in the field of Natural Language Processing (NLP), driving innovation and accessibility through its open-source model library and powerful tools. Founded in 2016 as a chatbot company, Hugging Face has since pivoted to become a leader in providing state-of-the-art machine learning models for NLP tasks, making these sophisticated models accessible to researchers, developers, and businesses around the world. What is Hugging Face? Hugging Face is best known for its Transformers library, a highly popular open-source library that provides pre-trained models for various NLP tasks. These tasks include text classification, sentiment analysis, translation, summarization, question answering, and more. The library is built on top of deep learning frameworks such as PyTorch and TensorFlow, offering seamless integration and ease of use. Key Components of Hugging Face Transformers Library : T...

Phone camera as webcam for computer

 Phone's camera as a webcam for computer  To use your phone's camera as a webcam for your computer, you can use the IP Webcam app on your phone along with OpenCV in Python. The IP Webcam app streams the video from your phone's camera over Wi-Fi, which can be accessed on your computer through its IP address. Step 1: Set Up IP Webcam on Your Phone Install the IP Webcam app : Download and install the IP Webcam app from the Google Play Store. Start the server : Open the app, configure any settings you like (resolution, quality, etc.), and then start the server. It will show an IP address, something like http://192.168.1.100:8080 . Test the stream : Open the IP address shown in your web browser on your computer to verify the stream is working. Step 2: Access the Phone's Camera Stream Using Python and OpenCV Now, let's write a Python script that captures the video feed from your phone's camera. import cv2 # Replace this with your phone's IP address and port ...