Kubernetes Là Gì? Chức Năng Và Cơ Chế Hoạt Động Của Kubernetes (K8s)

Kubernetes Là Gì? Chức Năng Và Cơ Chế Hoạt Động Của Kubernetes (K8s)

Tác giả: Admin
10:14 21/11/2024

Kubernetes, hay còn được gọi là K8s, đây là một trong những nền tảng quản lý container phổ biến nhất hiện nay. Kubernetes K8s là một hệ thống mã nguồn mở (open source) được ứng dụng trong việc tự động triển khai, mở rộng quy mô và quản lý ứng dụng trong container. Cùng FPT Cloud, tìm hiểu chi tiết về khái niệm, chức năng, cơ chế hoạt động và dịch vụ Kubernetes Engine của chúng tôi!

1. Kubernetes là gì?

Kubernetes (K8s hay Kubernetes K8s) là một nền tảng mã nguồn mở, có khả năng di động và mở rộng, dùng để quản lý khối lượng công việc và dịch vụ được đóng gói trong container. K8s hỗ trợ cấu hình khai báo và tự động hóa. Ngoài ra, nền tảng này còn được gọi là công cụ điều phối container (container orchestration engine).

Kubernetes là gì?
Kubernetes là gì?

 

Thông tin về Kubernetes (K8s)

Thuộc tính Giá trị
Tác giả ban đầu Google
Nhà phát triển Cloud Native Computing Foundation (CNCF)
Phiên bản đầu tiên 0.2/Ngày 9 tháng 9 năm 2014
Phiên bản ổn định mới nhất 1.33.2/Ngày 18 tháng 6 năm 2025
Kho mã nguồn github.com/kubernetes/kubernetes
Ngôn ngữ lập trình Go
Loại phần mềm Phần mềm quản lý cụm (Cluster management software)
Giấy phép Apache License 2.0
Website kubernetes.io
Các hệ thống cung cấp Kubernetes cài đặt sẵn https://cloud.google.com/container-engine/
https://coreos.com/tectonic/
https://www.openshift.com/
Các sản phẩm dựa trên Kubernetes https://www.openshift.org/
https://deis.com/paas/
http://rancher.com/rancher/
Download Kubernetes cho các HĐH Windows, Linux, Darwin và macOS https://kubernetes.io/vi/releases/download/

Bảng 1: Bảng tổng hợp thông tin về Kubernetes (K8s)

2. Các chức năng của Kubernetes K8s

Kubernetes (K8s) bao gồm 10 chức năng chính:

Chức năng của Kubernetes (K8s)
Chức năng của Kubernetes (K8s)

 

2.1. Dịch vụ cân bằng tải (Service discovery and load balancing)

K8s có thể công khai một container thông qua tên DNS (Domain Name System) hoặc địa chỉ IP riêng. Nếu lưu lượng truy cập cao, Kubernetes K8s có thể cân bằng tải (load balancing) để đảm bảo tính ổn định của hệ thống.

2.2. Điều phối lưu trữ (Storage orchestration)

Kubernetes K8S cho phép tự động gắn kết các hệ thống lưu trữ, bao gồm ổ cứng cục bộ (local storage system), các dịch vụ lưu trữ từ nhà cung cấp đám mây công cộng, hoặc hệ thống lưu trữ được triển khai trên cloud server.

2.3. Tự động triển khai và hoàn nguyên (Automated rollouts and rollbacks)

Chỉ cần bạn mô tả trạng thái mong muốn của hệ thống. Kubernetes k8s sẽ tự động điều chỉnh trạng thái thực tế thành trạng thái mong muốn theo một tốc độ có thể kiểm soát được.

2.4. Tối ưu hóa phân bổ tài nguyên (Automatic bin packing)

Bạn có thể cung cấp cho kubernetes (K8s) một cụm các nodes, đồng thời chỉ định lượng CPU và RAM cho mỗi container. Kubernetes sẽ tự động phân bổ container vào các node để tối ưu tài nguyên cho hệ thống.

K8 Nodes - Master Node - Worker Node
K8 Nodes - Master Node - Worker Node

 

2.5. Tự động phục hồi (Self-healing)

Kubernetes tự động khởi động lại các container bị lỗi, thay thế container, loại bỏ những container không phản hồi và chỉ quảng bá container sẵn sàng đến client.

K8s giám sát các container và thực hiện self-healing
K8s giám sát các container và thực hiện self-healing


>>> Xem thêm:
Phục hồi sau thảm họa là gì? Tầm quan trọng và Kế hoạch Disaster Recovery (DR Plan)

2.6. Quản lý cấu hình và thông tin nhạy cảm (Secret and configuration management)

Kubernetes cho phép bạn lưu trữ và quản lý các thông tin nhạy cảm, chẳng hạn như mật khẩu, token OAuth và khóa SSH. Bạn có thể triển khai và cập nhật thông tin nhạy cảm và cấu hình ứng dụng mà không cần xây dựng lại image của container, và không làm lộ thông tin trong cấu hình stack của bạn.

2.7. Xử lý theo lô (Batch execution)

Ngoài các chức năng trên, Kubernetes có thể quản lý các tác vụ xử lý theo lô và CI (Tích hợp liên tục) của bạn, thay thế các container bị lỗi nếu thật sự cần thiết.

2.8. Tự động mở rộng ngang (Horizontal scaling)

K8s cho phép việc tăng hoặc giảm số lượng container thông qua dòng lệnh, giao diện người dùng (UI) hoặc tự động dựa trên mức sử dụng CPU.

2.9. Hỗ trợ dual-stack IPv4/IPv6 (IPv4/IPv6 dual-stack)

Cấp phát địa chỉ IPv4 IPv6 cho Pod và Service.

2.10. Thiết kế mở rộng (Designed for extensibility)

Thêm các tính năng vào Kubernetes Cluster của bạn mà không cần thay đổi mã nguồn gốc (upstream).

3. Cơ chế hoạt động của Kubernetes K8s

Cách thức hoạt động của Kubernetes dựa trên một cụm máy chủ (cluster) để tự động hóa hoàn toàn việc quản lý các ứng dụng container. K8s sẽ lên lịch chạy container trên các máy trạm (worker nodes) nhằm tối ưu tài nguyên, liên tục theo dõi và tự động phục hồi khi có xảy ra sự cố. Đồng thời, Kubernetes K8s có thể tự mở rộng quy mô theo nhu cầu và quản lý kết nối mạng ổn định, giúp loại bỏ các tác vụ thủ công phức tạp.

>> Xem thêm: Máy chủ ảo là gì? Tại sao doanh nghiệp nên thuê VPS?

4. Ưu điểm và Nhược điểm của Kubernetes

4.1. Lợi ích của Kubernetes

  • Khả năng mở rộng linh hoạt: Kubernetes cho phép bạn dễ dàng tăng hoặc giảm số lượng container theo nhu cầu. Nó tự động cân bằng tải để phân phối lưu lượng, đảm bảo hệ thống luôn ổn định.
  • Tự động và linh hoạt: Ứng dụng được đóng gói trong containers có thể chạy nhất quán trên mọi môi trường, từ máy chủ vật lý đến các nền tảng đám mây. Nhờ ưu điểm này của K8s, việc di chuyển ứng dụng trở nên cực kỳ đơn giản. Ngoài ra, Kubernetes còn tự động khởi động, theo dõi và khắc phục sự cố của các container.

>> Xem thêm: Dịch vụ cho thuê server vật lý (máy chủ riêng) của FPT Cloud

  • Sử dụng tài nguyên hiệu quả: K8s phân bổ tài nguyên máy chủ như: CPU, RAM một cách thông minh và linh hoạt, đảm bảo mỗi ứng dụng chỉ dùng đúng phần tài nguyên cần thiết. Nhờ đó, bạn có thể tận dụng tối đa hạ tầng và tiết kiệm chi phí.
  • Triển khai nhanh chóng: K8s chuẩn hóa quy trình đóng gói ứng dụng, tăng tính di động và nhất quán, giúp triển khai nhanh hơn và tiết kiệm công sức.
Kubernetes cho phép dễ dàng tăng giảm số lượng container mà không gián đoạn hệ thống
Kubernetes cho phép dễ dàng tăng giảm số lượng container mà không gián đoạn hệ thống


>> Xem thêm: Dịch vụ cho
thuê server cloud (máy chủ đám mây) của FPT Cloud

4.2. Nhược điểm cua K8s

  • Kiến trúc phức tạp: Kubernetes bao gồm rất nhiều thành phần và khái niệm trừu tượng, phức tạp (như Pods, Services, Ingress, Deployments). Điều này đòi hỏi cá nhân, doanh nghiệp phải đầu tư thời gian đáng kể để học hỏi và nắm vững cách chúng tương tác với nhau.
Kiến trúc của Kubernetes K8s
Kiến trúc của Kubernetes K8s
  • Khó khăn trong cấu hình và quản lý: Việc thiết lập một cụm kubernetes (kubernetes cluster) từ đầu, cấu hình mạng, lưu trữ và bảo mật là một công việc phức tạp, đòi hỏi chuyên môn cao và có thể gây nhiều khó khăn cho các đội ngũ chưa có kinh nghiệm.
  • Cấu hình mặc định chưa an toàn: Bảo mật không phải là thứ có sẵn trong Kubernetes. Các cấu hình sai (misconfiguration) về quyền truy cập (RBAC), chính sách mạng (Network Policies), hay quản lý bí mật (Secrets) có thể tạo ra những lỗ hổng nghiêm trọng.
  • Rủi ro từ tầng container: An ninh của toàn bộ hệ thống phụ thuộc vào việc bảo mật từng image của container. Nếu các image chứa lỗ hổng hoặc không được cập nhật thường xuyên, chúng có thể trở thành cửa ngõ cho các cuộc tấn công.
  • Tiêu tốn tài nguyên hệ thống: Bản thân Kubernetes cần một lượng tài nguyên CPU, RAM nhất định để chạy các thành phần điều khiển (control plane). Chi phí ẩn này có thể làm tăng tổng chi phí hạ tầng, đặc biệt với các hệ thống nhỏ.
  • Yêu cầu quản lý chuyên sâu: Để tối ưu hóa chi phí và hiệu suất, cụm Kubernetes cần được theo dõi và quản lý liên tục. Nếu không được quản lý hợp lý, chi phí vận hành có thể tăng cao hơn so với các giải pháp đơn giản hơn.

>>> Xem thêm: Cloud Computing là gì? Phân loại, cách thức hoạt động

5. Các thuật ngữ phổ biến trong Kubernetes K8S

Thuật ngữ Khái niệm
Master Node  Là các server điều khiển hoạt động của Kubernetes Worker. Nút điều khiển bao gồm các thành phần: API Server (giao tiếp giữa các thành phần), Scheduler (thiết lập lịch làm việc), Controller Manager (quản lý Worker) và Etcd (cơ sở dữ liệu chính).
Worker Node Là các server thực hiện tất cả các tác vụ được giao bởi Master Node. Các nodes này chịu sự điều khiển từ Master Node.
Pod  Là tập hợp một hoặc nhiều container triển khai trên một nút. Tất cả container trong Pod chia sẻ địa chỉ IP, IPC, hostnamecác tài nguyên khác. Pod tách network và storage ra khỏi container bên dưới, giúp dễ dàng di chuyển container trong cụm.
Deployment Giúp triển khai, cập nhậtquản lý các Pod dễ dàng hơn trong Kubernetes Engine.
Replication Controller Quản lý số lượng bản sao của một Pod trên cluster, đảm bảo có đủ số bản sao hoạt động theo yêu cầu.
Service Tách work definitions khỏi các Pod. Service proxies trong K8s tự động định tuyến các yêu cầu đến pod phù hợp, bất kể pod được di chuyển hay thay thế.
Kubelet Chạy trên các Nodes, đọc tệp kê khai container và đảm bảo các container xác định được khởi động và chạy. Kubelet liên kết với API Server để duy trì hoạt động trơn tru của hệ thống.
Kubectl Là công cụ cấu hình dòng lệnh cho Kubernetes, được cài đặt trên máy trạm để triển khai và quản lý các thành phần bên trong Kubernetes.
Image Là phần mềm được đóng gói để chạy dưới dạng container. Pod trong Kubernetes sẽ lấy các Images để chạy, các Image thường được quản lý từ kho lưu trữ tập trung như Docker Hub.
Label Được sử dụng để phân loại và quản lý các Pod, giúp gắn nhãn theo frontend, backend trên nền dev, qc, uat, production.

Bảng 2: Các thuật ngữ quan trọng về Kubernetes K8s

6. Dịch vụ FPT Kubernetes Engine của FPT Cloud

Dịch vụ Kubernetes Engine của FPT Cloud giúp tối ưu hóa và triển khai các ứng dụng trên Cloud Native, FKE (FPT Kubernetes Engine) được tích hợp đầy đủ các thành phần: Container Orchestration, Storage, Networking, Security, PaaS nhằm mang đến cho khách hàng một môi trường tốt nhất để phát triển và triển khai các ứng dụng của mình trên môi trường máy chủ đám mây (cloud server).

FPT Kubernetes Engine (FKE) hỗ trợ tự động mở rộng giúp cluster có thể autoscale thêm worker nodes
FPT Kubernetes Engine (FKE) hỗ trợ tự động mở rộng giúp cluster có thể autoscale thêm worker nodes


FKE K8s là lựa chọn tối ưu cho các doanh nghiệp với những lợi thế nổi bật:
Tối ưu chất lượng (Sản phẩm được xây dựng dựa trên công nghệ điện toán đám mây tiên tiến, tương tích với các nền tảng public cloud), Khả năng mở rộng nhanh chóng - linh hoạt, Tối ưu hiệu năng (Tích hợp với FPT Cloud IaaS) và Hệ thống luôn đảm bảo được phục hồi khi gặp sự cố.

FKE K8s thường được các doanh nghiệp ứng dụng trong các nghiệp vụ: Chuyển đổi ứng dụng lên nền tảng container với FKE và Hỗ trợ tự động mở rộng cho ứng dụng.