Kubernetes Cluster là gì? Cách tạo Kubernetes Cluster
Trong các tài liệu về Kubernetes, bạn sẽ thấy xuất hiện rất nhiều cụm từ “Cluster”. Vậy Kubernetes Cluster là gì? Hãy cùng Bizfly Cloud tìm hiểu về thuật ngữ trên trong bài viết dưới đây!
Kubernetes Cluster là gì?
Kubernetes Cluster là một môi trường tập hợp các node để quản lý và triển khai ứng dụng trên container. Trong một Kubernetes Cluster sẽ có một bảng điều khiển chịu trách nhiệm quản trị cluster và một hoặc nhiều nodes, chẳng hạn như ứng dụng nào đang chạy và Container nào đang sử dụng hình ảnh.
Kubernetes Cluster có thể lên lịch và chạy nhiều Container trên nhóm máy chủ vật lý hoặc máy chủ ảo. Kubernetes Container được tách ra trên các Cluster nên chúng không bị ràng buộc với từng máy riêng lẻ.
Thành phần của Kubernetes Cluster
Một Kubernetes Cluster (K8s) bao gồm những thành phần sau:
API Server: Là thành phần cung cấp API để quản lý cluster. API Server tiếp nhận các yêu cầu từ người dùng, công cụ hoặc các thành phần khác của hệ thống và truyền đến các thành phần khác trong cluster để thực hiện.
Scheduler: Đánh giá các yêu cầu và tài nguyên để xác định node phù hợp để chạy container.
Controller: Là thành phần quản lý các bộ điều khiển node, bộ điều khiển điểm cuối (endpoint,..... Controller Manager kiểm soát trạng thái của các tài nguyên trong Cluster và thực hiện các hành động để duy trì trạng thái ổn định.
Node: Đóng vai trò như một worker, thực hiện các nhiệm vụ cho Controller đưa ra. Bên trong mỗi Node sẽ lại có Pod, trong mỗi Pod sẽ có thêm các thành phần như volume, containerized. Mỗi Pod sẽ được gán cho một 1 IP (cluster IP) để xác định địa chỉ.
Kubelet: Agent chạy trên mỗi Worker Node để quản lý các Container, Pod, giao tiếp với master node. Kubelet còn sử dụng Container Runtime để giao tiếp với container Runtime trên cùng một Node.
Kube-proxy: Hoạt động trên tất cả các Node, có nhiệm vụ quản lý kết nối mạng và duy trì quy tắc mạng giữa các node với nhau.
etcd: Là cơ sở dữ liệu phân tán được sử dụng để lưu trữ trạng thái của cluster. etcd đảm bảo tính nhất quán và độ tin cậy của dữ liệu trong cluster.
>> Có thể bạn quan tâm: Những điều cơ bản cần biết về Cụm Kubernetes
Cách làm việc với Kubernetes Cluster
Mỗi Kubernetes Cluster sẽ có một trạng thái riêng, quyết định ứng dụng và khối lượng công việc cần thực hiện, sử dụng hình ảnh, tài nguyên và cấu hình như thế nào.
Trạng thái mong muốn được xác định bằng các tệp cấu hình từ các tệp kê khai như JSON, YAML để kê khai ứng dụng sẽ chạy và muốn hệ thống hoạt động tốt thì cần bao nhiêu bản sao.
API Kubernetes sẽ xác định trạng thái mong muốn của Kubernetes Cluster bằng cách sử dụng lệnh tự động (sử dụng kubectl) hoặc nếu muốn thay đổi, đặt lại trạng thái mong muốn thì có thể dùng API. Để phù hợp với trạng thái mong muốn, Kubernetes sẽ tự động điều chỉnh Cluster.
Lấy một ví dụ đơn giản như sau: Để chạy một ứng dụng thì bạn cần 4 bản sao như vậy trạng thái mong muốn là “4”, khi một trong 4 container gặp sự cố, lúc này chỉ còn 3 bản sao đang chạy, Kubernetes sẽ bổ sung thêm 1 bản sao để đạt được trạng thái mong muốn.
Cách tạo Kubernetes Cluster
Tạo Cluster Kubernetes từ Docker Desktop
Các phiên bản mới của Docker Desktop được tích hợp sẵn Cluster Kubernetes nên chỉ cần một vài thao tác đơn giản là bạn đã tạo được Cluster Kubernetes. Tuy nhiên Kubernetes Cluster của Docker Desktop chỉ có một Node, phù hợp để các tính năng mà không muốn thiết lập các cấu hình phức tạp.
Cách tạo Cluster Kubernetes từ Docker Desktop như sau: Mở Docker Desktop => Chọn “Enable Kubernetes” tại mục Kubernetes => Ấn “Apply”
Để kiểm tra xem đã kích hoạt thành công Kubernetes Cluster chưa, bạn có thể thực hiện các lệnh sau:
Tạo Cluster Kubernetes hoàn chỉnh
Dưới đây là hướng dẫn tạo một Kubernetes Cluster hoàn chỉnh từ 3 máy chạy CentOS (1 máy master và 2 máy worker), phù hợp với môi trường product.
Tên máy/Hostname | Thông tin hệ thống | Vai trò |
master.xtl | HĐH CentOS7, Docker CE, Kubernetes. Địa chỉ IP 172.16.10.100 | Khởi tạo là master |
worker1.xtl | HĐH CentOS7, Docker CE, Kubernetes. Địa chỉ IP 172.16.10.101 | Khởi tạo là worker |
worker2.xtl | HĐH CentOS7, Docker CE, Kubernetes. Địa chỉ IP 172.16.10.102 | Khởi tạo là worker |
Ngoài sử dụng máy chủ VPS, bạn có thể sử dụng các máy chủ ảo Virtualbox. Để cài đặt Virtualbox chỉ cần tải về hệ điều hành CentOS rồi tiến hành thiết lập cấu hình phù hợp.
Với Kubernetes Cluster, việc triển khai và quản lý các ứng dụng của doanh nghiệp sẽ trở nên hiệu quả. Ngoài ra, sử dụng Kubernetes còn giúp quy trình triển khai đơn giản hơn, tăng độ uy tín của ứng dụng.