Ảo tưởng CI/CD với k8s, nhưng đang kubectl apply bằng tay từ laptop dev

Bọn em chưa có GitOps nên deploy tạm tay – mà merge vào dev rồi là được mà anh…

Team tự hào “ chúng tôi dùng EKS, CI/CD xịn lắm! ”, nhưng audit thì thấy dev mở terminal, chạy kubectl apply -f từ laptop. Pipeline? Không có. GitOps? Mơ đi. Deploy như chơi roulette, may thì chạy, xui thì production sập.

Deploy EKS bằng kubectl apply từ laptop của dev.


Thực trạng: Deploy thủ công

Thực trạng:  
  • Dev viết manifest YAML, push lên Git, rồi kubectl apply từ máy local.  
  • Không dùng GitOps tool như ArgoCD, Flux, hay Jenkins X.  
  • Không có version tracking, không biết manifest nào đang chạy trên cluster.

Hệ quả:  
  • Deploy không đồng bộ: Dev A apply file cũ, ghi đè file mới của Dev B.  
  • Không trace được: Production chạy manifest nào? Không ai biết.  
  • Rủi ro lỗi: Apply sai file, sai namespace, làm sập môi trường.

Giải pháp: GitOps và pipeline

Để deploy “xịn”:  
  • Dùng GitOps: Cấu hình ArgoCD/Flux để tự động sync manifest từ Git repo.  
  • Pipeline CI/CD: Dùng GitHub Actions/GitLab CI để build image, push, và trigger ArgoCD.  
  • Version tracking: Lưu manifest theo version trong Git, dùng tag hoặc branch.

Ví dụ: Pipeline GitHub Actions:

name: Deploy to EKS
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Build and Push Image
        run: |
          docker build -t my-image .
          docker push my-image
      - name: Trigger ArgoCD
        run: argocd app sync my-app

🎯 Tóm lại: Deploy thủ công là “vé mời” thảm họa. Dùng GitOps và pipeline CI/CD để EKS deploy tự động, trace dễ, và an toàn.

Post a Comment

Mới hơn Cũ hơn