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.
Kubernetes is only used for deploying user services (not the main backend).
- Use
Azure CNI Node Subnetas Network Configuration - After cluster is created:
- Settings -> Networking -> Virutal Network Integration -> Enable Ingress controller
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=LocalAn 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 - 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.
Note: ingress doesn't work
kind create cluster --config clusters.yml --name localkind delete cluster --name localopenssl 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.keyUpdate Ingress
spec:
tls:
- hosts:
- "*.tarundev.com"
secretName: wildcard-tls
