Một số lựa chọn để cài đặt Kubernetes
Việc chạy các ứng dụng trên kubernetes (k8s) ngày càng phổ biến, nhưng để một người mới bắt đầu có thể lựa chọn được một công cụ phù hợp để cài đặt và làm quen với kubernetes thì không phải dễ dàng.
Bài viết sau đây sẽ phần nào giúp bạn lựa chọn được công cụ phù hợp để bắt đầu làm quen với kubernetes.
Nội dung trong bài
- Minikube
- Docker Desktop
- Kubeadmin
- Kubespray
- RKE
- Cloud (EKS, AKS, GKE)
1. Minikube
Minikube là một bộ cài đặt Kubernetes bằng cách tạo ra một máy ảo trên máy tính của bạn và triển khai một cluster đơn giản bên trong máy ảo đó chỉ bao gồm một Node. Minikube có cho Linux, macOS, và Windows.
Đây là một công cụ cài đặt kubernetes đơn giản, được thiết kế để tiện lợi cho việc học tập và thử nghiệm (thường không được sử dụng cho môi trường production).
Ưu điểm
- Dễ dàng cài đặt.
- Yêu cấu hình thấp (2CPU – 2GB RAM – 20GB Disk).
Nhược điểm
- Chỉ tạo cụm Kubernetes Cluster với 1 node.
- Không sử dụng được cho môi trường production.
2. Docker Desktop
Đây là cách đơn giản, nhanh chóng để có thể khởi tạo Kubernetes, vì Docker Destop các phiên bản mới đã tích hợp sẵn, việc của bạn chỉ đơn giản là bật lên, chỉ có một hạn chế đó là Kubernetes Cluster này chỉ có một Node, cách cài đặt này cũng giống như minikube, phù hợp cho việc học tập, thử nghiệm và thường không được sử dụng cho môi trường production.
Ưu điểm
- Dễ dàng cài đặt (đã tích hợp sẵn trong Docker desktop).
- Phù hợp cho việc học tập, thử nghiệm.
Nhược điểm
- Chỉ khởi tạo cụm Kubernetes Cluster với 1 node.
- Không sử dụng được cho môi trường production.
3. Kubeadm
Kubeadm là một công cụ giúp tự động hóa quá trình cài đặt và triển khai kubernetes trên môi trường Linux, do chính kubernetes hỗ trợ.
Đây là công cụ cài đăt chính thức của Kubernetes.
Ưu điểm
- Là công cụ cài đặt chính thức của Kubernetes nên sẽ luôn được update version mới nhất.
- Triển khai được đầy đủ các thành phần Kubernetes Cluster (sử dụng cho môi trường production).
Nhược điểm
- Các dịch vụ của k8s (kube-apiserver, kubelet, kube-proxy, etcd, …) đều chạy dưới dạng systemd.
- Không được tích hợp sẵn các tools hay sử dụng trên k8s (ingress, metrics-server, …) như RKE.
4. Kubespray
Kubespray là một công cụ cài đặt cụm Kubernetes chuẩn. Được cộng đồng Kubernetes khuyến khích sử dụng. Đây không phải là tool hay phần mềm gì đặc biệt, nó không giống như RKE (RKE là một tool và dùng các file config để deploy lên), kubespray đơn giản là sử dụng Ansible và Vagrant để tự động hóa, còn thực chất thì vẫn sử dụng kubeadm.
Ưu điểm
- Có thể sử dụng cho cả môi trường On-premises và Cloud (AWS, GCE, Azure).
- Sử dụng kubeadm nên version K8S sẽ luôn được update version mới nhất.
- Hỗ trợ các plugins hay sử dụng cho K8S.
Nhược điểm
- Một lựa chọn tốt cho những người đã biết Ansible, khó khăn cho những người chưa biết sử dụng Ansible.
- Quá trình cài đặt mất nhiều thời gian vì Ansible hoạt động tuần tự.
5. RKE (Rancher Kubernetes Engine)
RKE (Rancher Kubernetes Engine) là một công cụ dùng để triển khai Kubernetes được CNCF chứng nhận.
Ưu điểm
- RKE là công cụ triển khai Kubernetes được CNCF chứng nhận.
- Các dịch vụ của Kubernetes (kube-apiserver, kubelet, kube-proxy, kube-scheduler, etcd, …) được RKE triển khai hoàn toàn bằng Docker do đó giảm được sự phụ thuộc vào OS.
- Cài đặt và vận hành Kubernetes được đơn giản hóa và dễ dàng tự động hóa.
- Version Kubernetes của RKE được lấy trực tiếp từ trang chủ của Kubernetes và được scan qua tiêu chuẩn security của Mỹ.
- Được tích hợp sẵn các tools hay sử dụng cho K8S (ingress, metrics-server, …).
- Tài liệu đầy đủ.
Nhược điểm
- Version chậm hơn so với kubeadm.
6. Cloud
Ngoài sử dụng các công cụ phía trên để tự triển khai và vận hành kubernetes thì hiện tại các nhà cung cấp dịch vụ Cloud như Amazon, Google, Azure, … đều có sẵn dịch vụ kubernetes cho bạn sử dụng.
Ưu điểm
- Scale dễ dàng.
- Độ ổn định cao.
- Triển khai nhanh.
Nhược điểm
- Phải cân nhắc về chi phí.
- Khó tùy biến khi có yêu cầu đặc biệt.
- Internet phải đủ độ tin cậy để duy trì hiệu quả.
Trân trọng,
All rights reserved