Những điều cơ bản cần biết về Cụm Kubernetes

875
17-08-2020
Những điều cơ bản cần biết về Cụm Kubernetes

Cụm Kubernetes là một tập hợp các node - nút máy để chạy các containerized applications (ứng dụng được đóng gói dạng container). Nếu bạn đang điều khiển kubernetes, đồng thời bạn cũng đang điều khiển một cụm (Cluster).

Ở mức đơn giản nhất, một cụm bao gồm một tầng điều khiển (control plane) và một hoặc nhiều máy chủ hoặc các nút (node). Tầng điều khiển chịu trách nhiệm duy trì trạng thái mong muốn của cụm, chẳng hạn như ứng dụng nào đang chạy và container images đang được sử dụng. Các nút điều khiển các ứng dụng và khối lượng công việc (workloads). Cùng Bizfly Cloud tìm hiểu những điều cơ bản cần biết về cụm Kubernetes qua bài viết dưới đây. 

Tìm hiểu thêm: Kubernetes là gì? Vai trò và các thuật ngữ phổ biến

Cụm (Cluster) là sức mạnh chính của Kubernetes: có khả năng lên lịch và chạy các containers trên một nhóm máy, tại hệ thống vật lý hoặc đám mây. Các containers Kubernetes không bị ràng buộc bởi từng máy riêng lẻ. Thay vào đó, chúng được quản lý theo toàn bộ cụm.

Làm thế nào để vận hành các cụm Kubernetes?

Một cụm Kubernetes đạt trạng thái mong muốn (desired state) là khi xác định được các ứng dụng hoặc workload sẽ chạy, cùng với image nào được sử dụng, tài nguyên nào cần được cung cấp và các chi tiết cấu hình khác.

Trạng thái mong muốn xác định bởi các tệp cấu hình được tạo thành từ các bản kê khai là JSON hoặc YAML khai báo loại ứng dụng sẽ chạy và số lượng bản sao được yêu cầu để đảm bảo hệ thống vận hành mạnh mẽ.

Trạng thái mong muốn của cụm xác định dựa vào API Kubernetes. Chúng thực hiện từ các dòng lệnh (sử dụng kubectl) hoặc sử dụng API để tương tác cụm nhằm thiết lập hoặc chỉnh sửa trạng thái mong muốn.

Kubernetes tự động quản lý các cụm để phù hợp với trạng thái mong muốn. Ví dụ khi bạn triển khai một ứng dụng với trạng thái mong muốn là "3", tức là có 3 bản sao của ứng dụng sẽ được chạy. Nếu một trong những container gặp sự cố, Kubernetes sẽ đánh giá được chỉ còn 2 bản sao đang vận hành và nó sẽ tạo thêm 1 bản sao nữa để duy trì trạng thái mong muốn ổn định.

Có thể bạn quan tâm: Cung cấp các cụm Kubernetes trên Linode với Terraform

Làm thế nào để một cụm (cluster) liên kết với một nút, một nhóm và các phần khác?

Như chúng ta hiểu, một cụm là tập hợp nhiều nút (node). Để hiểu một cụm hoạt động như thế nào hãy xem xét thêm các thuật ngữ khác về kubernetes:

Tầng điều khiển (control plane): Tập hợp quy trình điều khiển các nút Kubernetes. Đây là nơi khởi nguồn của tất cả các nhiệm vụ được yêu cầu.

Nút (node): Các máy thực hiện các nhiệm vụ do tầng điều khiển yêu cầu

Pod: Tập hợp một hoặc nhiều containers được triển khai trên một nút (node). Một pod là một Kubernetes nhỏ nhất và đơn giản nhất.

Service: Một cách để thể hiện các ứng dụng đang chạy trong một tập hợp các Pods dưới dạng dịch vụ mạng.

Volume: Là một thư mục chứa dữ liệu, có thể truy cập bởi các container trong pod. Một kubernetes volume có thời gian tồn tại bằng pod chứa nó. Và dữ liệu được giữ nguyên vẹn khi container được khởi động lại.

Namespace: Là một nhóm các tài nguyên: Pod, Volume, Service...độc lập nhau về mặt logic. Ta có thể phân chia các môi trường dựa trên namespace hoặc các dự án theo namespace.

Những điều cơ bản cần biết về Cụm Kubernetes

Quản lý cụm Kubernetes là gì?

Trong nền tảng điện toán đám mây hiện nay, môi trường Kubernetes trở nên có tính phân tán cao. Chúng có thể được thiết lập từ nhiều trung tâm dữ liệu khác nhau như hạ tầng vật lý, trong public cloud hoặc ở biên (edge).

Các doanh nghiệp muốn sử dụng Kubernetes ở quy mô lớn hoặc để sản xuất thì cần có nhiều clusters (chẳng hạn như để phát triển, thử nghiệm và sản xuất) được phân phối trong các môi trường và quản lý chúng một cách hiệu quả.

Việc quản lý quá nhiều các cụm cluster trên thực tế cũng là một vấn đề thách thức. Sẽ cần đến một nhóm và rất nhiều thời gian chỉ để dành cho công việc này. Tuy nhiên, có thể đơn giản hóa quá trình, giảm tải công sức và tiết kiệm chi phí cho vận hành, hạ tầng tới tối đa thông qua công cụ tự động. Bizfly Kubernetes Engine - Triển khai, vận hành Kubernetes 100% tự động, chỉ vài CLICK - là giải pháp do Bizfly Cloud nghiên cứu, phát triển phục vụ tối ưu cho thị trường Việt Nam. Giờ đây, việc quản lý vận hành Kubernetes chưa bao giờ dễ dàng đến thế, triển khai và phát triển ứng dụng cũng trở nên đơn giản hơn rất nhiều. 

Tham khảo Redhat.com

>> Có thể bạn quan tâm: Bizfly Cloud chính thức ra mắt Kubernetes Engine đầu tiên tại Việt Nam

SHARE