Загрузка...

EP13 - Deploy a REAL Application on Kubernetes (React + Node.js + PostgreSQL)

🚀 In this episode we deploy a complete full-stack application on Kubernetes using React, Node.js, PostgreSQL, ConfigMaps, Secrets, Persistent Volumes, Services and Ingress.

Clone Repository
git clone https://github.com/dalita/devops-basics-students-portal.git
cd devops-basics-students-portal

Project Structure
mkdir -p k8s/postgres
mkdir -p k8s/backend
mkdir -p k8s/frontend
mkdir -p k8s/configmap
mkdir -p k8s/secret
mkdir -p k8s/ingress



Deploy PostgreSQL
kubectl apply -f k8s/secret/postgres-secret.yaml
kubectl apply -f k8s/postgres/pvc.yaml
kubectl apply -f k8s/postgres/postgres-deployment.yaml
kubectl apply -f k8s/postgres/postgres-service.yaml



Verify PostgreSQL
kubectl get pods
kubectl get pvc
kubectl get svc



Deploy Backend Configuration
kubectl apply -f k8s/configmap/backend-configmap.yaml
kubectl apply -f k8s/secret/backend-secret.yaml



Build Backend Image
cd backend
docker build -t YOUR_DOCKERHUB_USERNAME/devops-basics-backend:latest .
docker push YOUR_DOCKERHUB_USERNAME/devops-basics-backend:latest
cd ..



Deploy Backend
kubectl apply -f k8s/backend/backend-deployment.yaml
kubectl apply -f k8s/backend/backend-service.yaml



Verify Backend
kubectl get pods
kubectl get svc
kubectl get endpoints backend-service



Build Frontend Image
cd frontend
docker build -t YOUR_DOCKERHUB_USERNAME/devops-basics-frontend:latest .
docker push YOUR_DOCKERHUB_USERNAME/devops-basics-frontend:latest



Deploy Frontend
kubectl apply -f k8s/frontend/frontend-deployment.yaml
kubectl apply -f k8s/frontend/frontend-service.yaml



Verify Frontend
kubectl get pods
kubectl get svc
kubectl get endpoints frontend-service



Deploy Ingress
kubectl apply -f k8s/ingress/ingress.yaml



Verify Ingress
kubectl get ingress



MacOS Minikube Fix
kubectl patch svc ingress-nginx-controller \
-n ingress-nginx \
-p '{"spec":{"type":"LoadBalancer"}}'



Start Tunnel
minikube tunnel



Update Hosts File
sudo vi /etc/hosts
Add:
127.0.0.1 students-portal.local



Test Ingress
curl http://students-portal.local



Troubleshooting

Check Backend Logs
kubectl logs deployment/backend

Check Frontend Logs
kubectl logs deployment/frontend

Check PostgreSQL Logs
kubectl logs deployment/postgres

Check Services
kubectl get svc

kubectl get endpoints



Connect to PostgreSQL
kubectl exec -it deployment/postgres -- psql -U postgres



Verify Tables
\dt



Create Users Table
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255)
);



Verify Table
\dt



Verify Data
SELECT * FROM users;



Add Users Through The Application
Harry Potter
harry@hogwarts.com

Hermione Granger
hermione@hogwarts.com

Ron Weasley
ron@hogwarts.com



Verify Records
SELECT * FROM users;



Connect Using DBeaver
kubectl port-forward svc/postgres-service 5432:5432
Connection:
Host: localhost
Port: 5432
Database: postgres
Username: postgres
Password: postgres



Persistent Volume Test
Delete PostgreSQL Pod
kubectl get pods

kubectl delete pod postgres-pod-name
Watch Kubernetes Recreate It
kubectl get pods -w
Reconnect
kubectl port-forward svc/postgres-service 5432:5432
Verify Data Still Exists
SELECT * FROM users;



Helm Bonus

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install wordpress bitnami/wordpress

Port Forward WordPress
kubectl port-forward svc/wordpress 8080:80

Get WordPress URL
minikube service wordpress --url

Open WordPress
http://URL_FROM_MINIKUBE

WordPress Admin URL
http://URL_FROM_MINIKUBE/wp-admin

Get WordPress Credentials
echo Username: user
echo Password: $(kubectl get secret --namespace default wordpress -o jsonpath="{.data.wordpress-password}" | base64 -d)
━━━━━━━━━━━━━━━━━━━━━━
📦 Source Code
https://github.com/dalita/devops-basics-students-portal

🎥 Playlist
Kubernetes for Beginners

☕ Subscribe for more DevOps content
━━━━━━━━━━━━━━━━━━━━━━
🎯 Next Episode
EP14 — Kubernetes Best Practices
We'll learn:

• Resource Limits
• Health Checks
• Security
• Labels
• Liveness Probes
• Readiness Probes
• Startup Probes

And we'll transform our Kubernetes application into a production-ready deployment.
#kubernetes #k8s #devops #docker #helm #react #nodejs #postgresql #aws #cloud

Видео EP13 - Deploy a REAL Application on Kubernetes (React + Node.js + PostgreSQL) канала Devops Basics with Dali
Яндекс.Метрика
Все заметки Новая заметка Страницу в заметки
Страницу в закладки Мои закладки
На информационно-развлекательном портале SALDA.WS применяются cookie-файлы. Нажимая кнопку Принять, вы подтверждаете свое согласие на их использование.
О CookiesНапомнить позжеПринять