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

41 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 and interacts with Kubernetes to spin up pods for different user services.

image

Kubernetes Setup (Azure AKS)

  • Network Configuration: Azure CNI Node Subnet
  • Virtual Network integration in AKS

1. Ingress Setup

Set up NGINX Ingress Controller using Helm (Specific to your provider): AKS ingress controller

# 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

  • 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