Chúc mừng năm mới 2024! Chúc bạn và gia đình sức khỏe và thành công vượt trội.
Giới thiệu
Xin chào các bạn đọc! Hôm nay, mình muốn chia sẻ một phương pháp đơn giản và nhanh chóng để cài đặt một cụm Kubernetes trên EC2 của AWS chỉ trong một câu lệnh bằng Terraform và ArgoCD.
Bài viết này có kèm video hướng dẫn giúp các bạn dễ hình dung hơn. Bạn có thể tham khảo tại đây: [Cài đặt Kubernetes bằng Terraform].
Cụm Kubernetes này sẽ được cài đặt sẵn một số công cụ hữu ích, bao gồm:
- Tính năng auto-complete và alias cho
kubectl
trênmaster-node
. - Cài đặt các thành phần cơ bản trên Kubernetes như:
- ArgoCD: Công cụ quản lý triển khai chuẩn GitOps, tự động hóa quá trình cài đặt các ứng dụng.
- Ingress-Controller: Để expose ứng dụng ra ngoài theo domain.
- Storage-class: Sử dụng EBS Volume của AWS cho Persistent Volume.
- Metric-server: Giám sát hiệu suất hệ thống.
- Cert-Manager: Quản lý chứng chỉ cho ứng dụng trên Kubernetes.
- Kubernetes-Dashboard: Công cụ trực quan giúp quản lý các resource trên Kubernetes.
- Bổ sung các công cụ khác trong tương lai như: Giám sát với Prometheus, Grafana, Alert Manager và Logging với ELK.
Cụm Kubernetes Có Gì?
- Cụm single-master Kubernetes với 1 master-node và nhiều worker-node (số lượng tùy chọn).
- Auto cài đặt Ingress Controller và cấu hình tự động HAProxy.
- Truy cập ArgoCD qua domain
argocd.viettq.com
và Kubernetes Dashboard quadashboard.viettq.com
. - Cấu hình tự động cho
kubectl
ở master-node.
Lưu ý:
-
Để đăng nhập vào ArgoCD:
bashkubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d;echo
-
Để lấy token đăng nhập vào Kubernetes Dashboard:
bashkubectl get secret admin-user -n kubernetes-dashboard -o jsonpath={".data.token"} | base64 -d;echo
Môi Trường Cài Đặt
Mình sử dụng hạ tầng AWS cho việc cài đặt để bạn dễ dàng tiếp cận hơn, đặc biệt là với những ai không có máy tính cấu hình cao.
Tại sao chọn AWS?
- Tính di động và dễ quản lý.
- Có nhiều voucher tiết kiệm chi phí.
- Giao diện và dịch vụ đồng nhất.
Mô Hình Hệ Thống
Các máy chủ EC2 sẽ được cài đặt Kubernetes sử dụng kubeadm, giao tiếp qua Private IP trong VPC. Kết nối tới máy chủ diễn ra qua Public IP.
Chi phí Cloud (AWS)
Chi phí liên quan đến EC2, Public IP và EBS Volume sẽ được tính toán chi tiết. Cần lưu ý rằng bạn nên kiểm soát tài nguyên để tiết kiệm chi phí.
Hướng Dẫn Cài Đặt
Yêu Cầu
Bạn phải có tài khoản AWS và sẵn có VPC mặc định.
Tổng Quan Các Bước
- Tạo AWS access-key.
- Tạo key pair để SSH vào EC2.
- Cài đặt Terraform và AWS CLI.
- Clone repo chứa code Terraform.
- Chạy Terraform để tạo hạ tầng và cài đặt cluster.
- Tận hưởng thành quả.
Hướng Dẫn Chi Tiết
Tạo AWS Access-Key
Truy cập vào Security Credentials trong AWS Console và tạo Access Key mới.
Tạo VPC Mặc Định
Nếu chưa có VPC, bạn có thể tạo một VPC mặc định qua AWS Console.
Cài Đặt Terraform và AWS CLI
Làm theo hướng dẫn trên trang chủ HashiCorp và AWS.
Cấu Hình AWS CLI
Chạy lệnh aws configure
và nhập thông tin cần thiết.
Tải Repo Terraform
Clone repo và điều chỉnh file terraform.tfvars
theo nhu cầu của bạn.
Cài Đặt Kubernetes
Khởi tạo và chạy Terraform để cài đặt các thành phần.
Cuối cùng, bạn có thể xóa các resource để tiết kiệm chi phí bằng lệnh:
bash
terraform destroy --auto-approve
Kết Luận
Bài viết là hướng dẫn chi tiết nhưng rất đơn giản. Cảm ơn bạn đã đọc và nếu thấy hữu ích, hãy để lại 1 upvote để mình có thêm động lực chia sẻ nhiều hơn nhé!
source: viblo