Runbook Khởi tạo cụm & Bootstrap ArgoCD
1. Kiểm tra điều kiện tiên quyết trước khi chạy
Phần tiêu đề “1. Kiểm tra điều kiện tiên quyết trước khi chạy”Trước khi chạy playbook khởi tạo, hãy đảm bảo các điều kiện sau đã sẵn sàng:
- Kết nối SSH tới VPS Hetzner CX33 thành công:
Terminal window ssh hetzner-cx33-nbg "uname -a" - File khoá bí mật AGE tồn tại trên máy local tại
~/.config/sops/age/keys.txt:Terminal window test -f ~/.config/sops/age/keys.txt && echo "Đã có private key" - Mã hoá lại các file biến nếu có thay đổi:
Terminal window make sops-encrypt
2. Thực thi quy trình Bootstrap
Phần tiêu đề “2. Thực thi quy trình Bootstrap”Thực hiện kiểm tra cú pháp và triển khai toàn bộ hạ tầng bằng Ansible (lệnh có tính chất idempotent, chạy lại an toàn):
# 1. Kiểm tra cú pháp manifest Kustomize và cú pháp playbookmake validate
# 2. Chạy playbook bootstrap hoàn chỉnhmake bootstrap
# 3. Kiểm tra trạng thái node từ máy localmake nodesKết quả mong đợi khi kiểm tra node:
NAME STATUS ROLES AGE VERSIONdocker-ce-ubuntu-8gb-nbg1-1 Ready control-plane,master 2m v1.37.0+k3s13. Quản lý file Kubeconfig
Phần tiêu đề “3. Quản lý file Kubeconfig”Playbook Ansible sẽ tải file kubeconfig về một đường dẫn riêng biệt: ~/.kube/hetzner-cx33-nbg.yaml để tránh ghi đè làm mất cấu hình các cụm k8s khác trên máy của bạn.
Để tương tác với cụm:
# Cách 1: Xuất biến môi trường cho phiên làm việc hiện tạiexport KUBECONFIG=~/.kube/hetzner-cx33-nbg.yaml
# Cách 2: Sao lưu file cũ và đặt cụm này làm kubeconfig mặc địnhmake kubeconfig4. Xác minh hệ thống ArgoCD
Phần tiêu đề “4. Xác minh hệ thống ArgoCD”Sau khi make bootstrap hoàn tất, kiểm tra toàn bộ các pod của ArgoCD đã ở trạng thái Running:
kubectl get pods -n argocdKết quả mẫu:
NAME READY STATUS RESTARTS AGEargocd-application-controller-0 1/1 Running 0 3margocd-applicationset-controller-... 1/1 Running 0 3margocd-dex-server-... 1/1 Running 0 3margocd-redis-... 1/1 Running 0 3margocd-repo-server-... 1/1 Running 0 3margocd-server-... 1/1 Running 0 3mKiểm tra Ingress & Chứng chỉ TLS
Phần tiêu đề “Kiểm tra Ingress & Chứng chỉ TLS”Kiểm tra endpoint công khai của ArgoCD qua giao thức HTTPS:
curl -sI https://argocd.timi.io.vnHeaders trả về mẫu:
HTTP/2 200server: Cowboy / Traefikstrict-transport-security: max-age=63072000; includeSubDomains; preloadĐăng nhập trang quản trị ban đầu
Phần tiêu đề “Đăng nhập trang quản trị ban đầu”- Địa chỉ UI:
https://argocd.timi.io.vn - Tài khoản:
admin - Mật khẩu: Lấy từ giá trị đã mã hoá trong file
ansible/inventory/group_vars/all.sops.yml(argocd_admin_password).