Kubernetes là gì ? Những khái niệm cốt lõi trong Kubernetes
Kubernetes (còn được gọi là k8s) là một nền tảng mã nguồn mở cho phép bạn triển khai và quản lý các ứng dụng được đóng gói trên quy mô lớn.
Tiền thân của Kubernetes là Borg, công nghệ đằng sau điện toán đám mây của Google, dùng để quản lý và triển khai hàng nghìn ứng dụng của mình trên toàn thế giới. Được biết Google đã và đang tạo ra hơn 2 tỷ container deployments mỗi tuần.
Kubernetes được Google đưa thành dự án cộng đồng vào năm 2014, dựa trên một thập kỷ rưỡi kinh nghiệm vận hành khối lượng lớn workload trong thực tế của mình, kết hợp các ý tưởng và thực tiễn tốt nhất từ cộng đồng.

Tại sao cần Kubernetes ?
Các ứng dụng của bạn chạy trong môi trường production thực tế mở rộng nhiều containers. Các containers đó phải được triển khai trên nhiều server hosts và đảm bảo không có downtime . Kubernetes cung cấp khả năng phối hợp và quản lý cần thiết để triển khai các containers theo quy mô cho các workloads đó.
Kubernetes cho phép bạn xây dựng các dịch vụ ứng dụng mở rộng nhiều containers. Nó lên lịch các containers đó trên một cụm, mở rộng các containers và quản lý tình trạng của các containers theo thời gian.
Các thành phần Kubernets:
Kubernetes bao gồm 2 thành phần chính: master node và worker node. Master node đảm nhận vai trò điều khiển, quản lý, phân phối ứng dụng còn các worker node đảm nhận việc chạy ứng dụng đó.
Master node sẽ chứa file mô tả ứng dụng, Master sẽ điều khiển các Worker để chạy ứng dụng đó.

Master node
Là máy chủ điều khiển các máy Worker chạy ứng dụng. Master node bao gồm 4 thành phần chính:
+ API Server: là thành phần giúp các thành phần khác liên lạc nói chuyện với nhau, khi triển khai ứng dụng sẽ gọi API Kubernetes API Server này.
+Etcd: là nơi lưu trữ toàn bộ dữ liệu của Kubernetes, tất cả các thông tin của Kubernetes được lưu trữ cố định vào đây.
+ Scheduler: thành phần này lập lịch triển khai cho các ứng dụng được đặt vào Worker nào để chạy
+ Controller Manager: thành phần đảm nhiệm phần quản lý các Worker, kiểm tra các Worker sống hay chết, đảm nhận việc nhân bản ứng dụng…
Worker node
Là máy chủ chạy ứng dụng trên đó. Bao gồm 3 thành phần chính:
+ Kubelet: là thành phần giao tiếp với Kubernetes API Server, và cũng quản lý các container.
+ Kube-proxy: Thành phần này đảm nhận việc phân tải giữa các ứng dụng.
+ Container runtime: là thành phần giúp chạy các ứng dụng dưới dạng Container. Thông thường người ta sử dụng Docker.
Tài liệu tham khảo



Tags