Skip to content

A Kubernetes powered deployment service that lets you deploy web apps directly from your Git repository - inspired by render.com

Notifications You must be signed in to change notification settings

TarunCore/render-clone-k8s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sudo deploy - render clone

A deployment service similar to render.com, powered by Kubernetes and designed for simplicity and scalability.


  • The backend handles the deployment logic and interacts with Kubernetes to spin up pods for different user services.

image

Kubernetes Setup (Azure AKS)

Kubernetes is only used for deploying user services (not the main backend).

  • Use Azure CNI Node Subnet as Network Configuration
  • After cluster is created:
    • Settings -> Networking -> Virutal Network Integration -> Enable Ingress controller

1. Ingress Setup

Set up NGINX Ingress Controller using Helm:

# Add the ingress-nginx Helm repo
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update

# Install the ingress controller
helm install nginx-ingress ingress-nginx/ingress-nginx \
  --namespace ingress-nginx \
  --create-namespace \
  --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz \
  --set controller.service.externalTrafficPolicy=Local

2. Apply Initial Ingress Configuration

An empty ingress resource is applied initially. New subdomain mappings will be added dynamically for each deployed service.

cd server/k8s/
kubectl apply -f ingress.yml 

Notes

  • The main backend (server/) is not containerized or deployed via Kubernetes yet.
  • All deployment pods (user services) are managed dynamically using Kubernetes from the backend API.

Architecture

image

Local k8s Setup with Kind

Note: ingress doesn't work

kind create cluster --config clusters.yml --name local
kind delete cluster --name local

TLS - Self Signed

openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout wildcard.key \
  -out wildcard.crt \
  -subj "/CN=*.tarundev.com/O=tarundev" \
  -addext "subjectAltName = DNS:*.tarundev.com"
kubectl create secret tls wildcard-tls \
  --cert=wildcard.crt \
  --key=wildcard.key

Update Ingress

spec:
  tls:
    - hosts:
        - "*.tarundev.com"
      secretName: wildcard-tls

About

A Kubernetes powered deployment service that lets you deploy web apps directly from your Git repository - inspired by render.com

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published