Ghid Testare și Utilizare Kubernetes pe VPS
Acest ghid descrie pas cu pas modul în care verifici, testezi și utilizezi clusterul Kubernetes instalat pe VPS-ul Ubuntu (63.250.40.142), optimizat atât pentru distribuții ușoare (k3s, microk8s) cât și pentru setul standard bazat pe kubectl.
1. Verificarea Stării Clusterului și a Utilitarului kubectl
- Conectează-te la VPS prin SSH:
ssh root@63.250.40.142 - Verifică dacă
kubectleste funcțional și poate comunica cu clusterul:kubectl cluster-info - Verifică starea nodului VPS:
kubectl get nodes -o wide(Trebuie să vezi nodul tău în starea
Ready). - Dacă comanda nu este găsită direct:
- Pentru k3s:
k3s kubectl get nodes - Pentru MicroK8s:
microk8s kubectl get nodes
- Pentru k3s:
2. Crearea unui Deployment și a unui Service de Test
Vom crea o aplicație web demonstrativă (Nginx) folosind un fișier de manifest YAML complet.
A. Creează directorul și fișierul de manifest
mkdir -p /root/projects/k8s-demo
cd /root/projects/k8s-demo
nano k8s-test-app.yaml
B. Conținutul fișierului k8s-test-app.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: k8s-demo-deployment
labels:
app: k8s-demo
spec:
replicas: 2
selector:
matchLabels:
app: k8s-demo
template:
metadata:
labels:
app: k8s-demo
spec:
containers:
- name: nginx-demo
image: nginx:alpine
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: k8s-demo-service
spec:
type: NodePort
selector:
app: k8s-demo
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30080
(Salvează cu Ctrl + O, Enter, Ctrl + X).
C. Aplică manifestul în cluster
kubectl apply -f k8s-test-app.yaml
3. Verificarea Resurselor Create
- Verifică dacă Pod-urile au fost create și rulează:
kubectl get pods -o wide(Așteaptă până când starea lor devine
Running). - Verifică serviciul creat:
kubectl get svc k8s-demo-service - Testează răspunsul aplicației la nivel local pe VPS (folosind NodePort
30080):curl http://localhost:30080
4. Conectarea Aplicației din Kubernetes la Caddy Reverse Proxy
Pentru a face aplicația accesibilă prin HTTPS pe subdomeniul k8s-demo.bytebook.xyz:
- Configurare Namecheap: Adaugă un A Record pentru subdomeniul
k8s-democătre IP-ul VPS-ului (63.250.40.142). - Deschide fișierul de configurare Caddy:
nano /etc/caddy/Caddyfile - Adaugă blocul de configurare pentru redirecționare spre NodePort:
k8s-demo.bytebook.xyz { reverse_proxy localhost:30080 } - Reîncarcă serviciul Caddy:
systemctl reload caddy - Accesează în browser adresa: https://k8s-demo.bytebook.xyz
5. Comenzi Utile pentru Debugging și Monitorizare
kubectl get all
kubectl describe pod <nume>
kubectl logs -f <nume_pod>
kubectl scale deployment ... --replicas=4
kubectl exec -it <nume_pod> -- /bin/sh
6. Curățarea Resurselor
Când ai terminat testarea și vrei să elimini resursele din cluster:
- Șterge Deployment-ul și Service-ul folosind fișierul manifest:
kubectl delete -f k8s-test-app.yaml - Elimină blocul corespondent din
/etc/caddy/Caddyfileși reîncarcă Caddy (systemctl reload caddy).