BYTEBOOK
Bytebook Docs • Kubernetes / K8s / Orchestration
← Înapoi la Bytebook
PATH: DOCS / KUBERNETES_GUIDE.HTML _
[00:00:00] DOCS_READY
DEMOS Main Archive JAVA LABS Enterprise PY LABS Neural Assets NODE LABS Async Runtime INFRA Control Center
ORCHESTRATION GUIDES • KUBERNETES & KUBECTL

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

  1. Conectează-te la VPS prin SSH:
    ssh root@63.250.40.142
  2. Verifică dacă kubectl este funcțional și poate comunica cu clusterul:
    kubectl cluster-info
  3. Verifică starea nodului VPS:
    kubectl get nodes -o wide

    (Trebuie să vezi nodul tău în starea Ready).

  4. Dacă comanda nu este găsită direct:
    • Pentru k3s: k3s kubectl get nodes
    • Pentru MicroK8s: microk8s kubectl get nodes

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

  1. Verifică dacă Pod-urile au fost create și rulează:
    kubectl get pods -o wide

    (Așteaptă până când starea lor devine Running).

  2. Verifică serviciul creat:
    kubectl get svc k8s-demo-service
  3. 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:

  1. Configurare Namecheap: Adaugă un A Record pentru subdomeniul k8s-demo către IP-ul VPS-ului (63.250.40.142).
  2. Deschide fișierul de configurare Caddy:
    nano /etc/caddy/Caddyfile
  3. Adaugă blocul de configurare pentru redirecționare spre NodePort:
    k8s-demo.bytebook.xyz {
        reverse_proxy localhost:30080
    }
  4. Reîncarcă serviciul Caddy:
    systemctl reload caddy
  5. Accesează în browser adresa: https://k8s-demo.bytebook.xyz

5. Comenzi Utile pentru Debugging și Monitorizare

Toate resursele din namespace: kubectl get all
Detalii complete Pod: kubectl describe pod <nume>
Jurnale (logs) container: kubectl logs -f <nume_pod>
Scalare rapidă replici: kubectl scale deployment ... --replicas=4
Acces shell direct într-un Pod:
kubectl exec -it <nume_pod> -- /bin/sh

6. Curățarea Resurselor

Când ai terminat testarea și vrei să elimini resursele din cluster:

  1. Șterge Deployment-ul și Service-ul folosind fișierul manifest:
    kubectl delete -f k8s-test-app.yaml
  2. Elimină blocul corespondent din /etc/caddy/Caddyfile și reîncarcă Caddy (systemctl reload caddy).