Tạo Kubernetes & Docker Compose
Tạo manifest Kubernetes bằng biểu mẫu, dựng tệp compose.yaml, chuyển Docker Compose sang Kubernetes và kiểm tra YAML bạn đang có — cả bốn trong một trang, kết quả cập nhật tức thì để sao chép hoặc tải xuống.
Các bước sử dụng
- Mở Manifest Kubernetes và điền mục Ứng dụng: Tên ứng dụng, Namespace và Nhãn bổ sung. Mọi tài nguyên đều dùng lại các giá trị này, nên selector của Deployment, selector của Service, đích của HPA và NetworkPolicy luôn trỏ đúng cùng một nhóm pod.
- Chọn Tài nguyên — Deployment, Service, Ingress, ConfigMap, Secret, CronJob, HorizontalPodAutoscaler, PersistentVolumeClaim, Namespace hoặc NetworkPolicy — rồi chỉnh biểu mẫu. YAML bên phải cập nhật ngay khi bạn gõ.
- Với Deployment, đặt Image, Số bản sao và Cổng container, sau đó mở Tài nguyên, Probe kiểm tra sức khoẻ, Gắn volume và Security context. Trong Môi trường, hai công tắc sẽ nạp toàn bộ ConfigMap và Secret bằng
envFrom. - Với ConfigMap hoặc Secret, dùng Dán tệp .env và Nhập .env để biến tệp
.envcó sẵn thành các dòng khoá/giá trị. - Với CronJob, nhập Lịch chạy (cron) — lời giải thích dễ hiểu hiện ngay dưới ô nhập để bạn xác nhận
0 3 * * *đúng là 03:00. - Chọn Gộp tất cả (all-in-one) để nối các tài nguyên đã tích thành một tệp, ngăn cách bằng
---, sẵn sàng chokubectl apply -f. - Mở Docker Compose, nạp một Mẫu dựng sẵn (Node.js + PostgreSQL, WordPress + MySQL, Redis hoặc Nginx reverse proxy) hoặc tự thêm service, rồi bấm Sang Kubernetes để chuyển tệp sang Compose → Kubernetes.
- Dán các manifest bạn đang có vào Kiểm tra manifest để xem lỗi và cảnh báo kèm số dòng.
- Sao chép YAML hoặc Tải xuống thành tệp.
Mẹo
- Khung Kiểm tra kết quả chạy cùng bộ kiểm tra trên chính kết quả bạn tạo. Nếu nó báo tag
latest, thiếu probe hoặc thiếu resources, hãy sửa trong biểu mẫu thay vì sửa YAML. - Ghim tag image như
nginx:1.27hoặc digest. Taglatestvà image không có tag bị cảnh báo vì chúng có thể đổi giữa các lần rollout. - Root filesystem chỉ đọc thường cần một
emptyDirgắn vào/tmp; Deployment mặc định đã có sẵn. - NetworkPolicy chặn mặc định cũng chặn luôn DNS. Hãy thêm quy tắc egress tới kube-dns trước khi áp dụng.
- Trong Compose → Kubernetes, hãy đọc kỹ từng dòng Ghi chú chuyển đổi: bind mount thành
emptyDir,depends_onbị bỏ và image build cục bộ được gán tên tạm mà bạn phải thay.
Câu hỏi thường gặp
Kết quả có dùng ngay cho production được không?
Đây là điểm khởi đầu vững chắc, đã qua bộ kiểm tra, nhưng chưa phải bản triển khai hoàn chỉnh. Hãy đặt requests CPU và bộ nhớ theo mức dùng thực tế, trỏ probe tới endpoint ứng dụng thật sự phục vụ, rồi kiểm tra với cluster bằng kubectl apply --dry-run=server hoặc công cụ kiểm tra schema như kubeconform trước khi rollout.
Manifest hay giá trị bí mật của tôi có bị tải lên đâu không?
Không. Việc tạo YAML, mã hoá base64, chuyển đổi và kiểm tra đều chạy trong trình duyệt. Không nội dung nào bạn gõ hoặc dán được gửi lên máy chủ.
Kiểm tra manifest có thay được kubeconform hay dry run phía máy chủ không?
Không. Công cụ kiểm tra cú pháp YAML, kind và apiVersion phổ biến, cùng các lỗi hay gặp — thiếu resources hoặc probe, tag latest, container privileged, hostPath, selector của Service không khớp gì và tên trùng lặp. Nó không đối chiếu từng trường với schema Kubernetes.
Chuyển Compose sang Kubernetes đầy đủ đến mức nào?
Ở mức tốt nhất có thể, tương tự kompose. Mỗi service thành một Deployment kèm Service nếu có publish cổng, biến môi trường vào ConfigMap và volume có tên thành PersistentVolumeClaim. Những gì không có tương đương trực tiếp đều được liệt kê trong phần ghi chú thay vì âm thầm bỏ qua.