0

Kubernetes Node, Pod và Cluster: Sự khác biệt là gì?

Kubernetes tự động hóa hầu hết các thao tác quản lý container, cho phép các nhà phát triển vận hành các ứng dụng hiện đại, hiệu suất cao ở quy mô lớn. Điều này bao gồm các lệnh tích hợp sẵn xử lý hầu hết các công việc nặng nhọc liên quan đến quản trị ứng dụng, cho phép bạn tự động hóa các tác vụ hàng ngày. Hệ thống này bao gồm nhiều thành phần, và việc xác định thành phần nào quan trọng đối với bạn có thể khá khó khăn.

Kubernetes Node là gì?

Các node Kubernetes là đơn vị phần cứng máy tính nhỏ nhất chạy các tác vụ container hóa như một phần của cụm Kubernetes. Nó đại diện cho một máy tính duy nhất trong cụm của bạn. Trong hầu hết các hệ thống sản xuất, một node là một máy thật trong trung tâm dữ liệu hoặc một máy ảo được lưu trữ bởi nhà cung cấp dịch vụ đám mây như Google Cloud Platform. image.png

Kubernetes Node hoạt động như thế nào?

Các Node trong Kubernetes chịu trách nhiệm vận hành các Pod. Mỗi Pod có thể chứa một hoặc nhiều container. Tùy thuộc vào cụm Kubernetes, một Node có thể là Node vật lý hoặc Node ảo. Mỗi Node phải được kết nối với máy chủ API quản trị chúng. Điều này được thực hiện theo hai cách chính. Sau khi đối tượng Node được tạo, mặt phẳng điều khiển sẽ kiểm tra xem nó có hoạt động bình thường hay không. Ví dụ, đối tượng Node phải có tên miền phụ DNS hợp lệ. Sau đó, các nhà phát triển có thể giao tiếp với các Node thông qua máy chủ chính. Điều này giúp tính toán thời điểm tạo và xóa container, cũng như định tuyến lại lưu lượng truy cập để đáp ứng nhu cầu.

Ưu điểm của Kubernetes Node.

Kubernetes Node truy cập các node khác thông qua các giao thức truyền thông bảo mật như SSH . Tránh sử dụng các phương pháp không mã hóa như telnet. Nó giúp các nhóm DevOps hoạt động hiệu quả hơn và cho phép các chuyên gia DevOps tạo, kiểm thử và triển khai các chương trình microservices trên cùng một nền tảng.

Nhược điểm của Kubernetes Node

Kubernetes Node chỉ cho phép người dùng và dịch vụ được ủy quyền đăng nhập và truy cập tài nguyên của node. Kubernetes Node có hệ thống bảo mật phức tạp, và việc thiết lập và bảo mật nền tảng đúng cách là cần thiết để đảm bảo các ứng dụng được bảo vệ khỏi mọi rủi ro bảo mật.

Kubernetes Pod là gì?

Pod là đơn vị thực thi nhỏ nhất trong Kubernetes. Một pod chứa một hoặc nhiều ứng dụng. Pod có tính chất tạm thời; nếu một pod (hoặc node mà nó chạy trên đó) bị lỗi, Kubernetes có thể ngay lập tức tạo ra một bản sao mới của pod đó để tiếp tục hoạt động. Pod bao gồm một hoặc nhiều container (chẳng hạn như container Docker).

Kubernetes Pod hoạt động như thế nào?

Các ứng dụng thường hoạt động trong các vùng chứa cho phép chúng truy cập vào các công cụ, thư viện cần thiết và các thiết lập quan trọng khác. Trong Kubernetes, các container được lưu trữ trong các pod. Mỗi pod Kubernetes có thể chứa một hoặc nhiều container. Các container trong cùng một Pod chia sẻ tài nguyên mạng và lưu trữ. Điều này cũng có nghĩa là các container được lên lịch đồng thời vì chúng hoạt động trong cùng một ngữ cảnh hoặc môi trường. Mặc dù các Pod có thể chứa nhiều thùng chứa, nhưng hầu hết thời gian chỉ có một thùng được sử dụng.

Ưu điểm của Kubernetes Pod

Kubernetes cho phép mở rộng quy mô ứng dụng một cách đơn giản. Nó cho phép bạn mở rộng các ứng dụng microservices bằng cách thêm hoặc xóa các instance theo chiều ngang, được gọi là pod, dựa trên yêu cầu về khối lượng công việc. Kubernetes Pod có khả năng tự phục hồi, tự động xác định và giải quyết các sự cố trong môi trường ứng dụng.

Nhược điểm của Kubernetes Pod

Kubernetes Pod có thể không tương thích với các ứng dụng thông thường không được thiết kế để hoạt động trong môi trường container. Điều này có thể gây khó khăn trong việc chuyển đổi một số ứng dụng sang Kubernetes. Một pod Kubernetes được tạo thành từ nhiều thành phần, mỗi thành phần phải được cấu hình và cài đặt độc lập để thiết lập cụm.

Kubernetes Cluster là gì?

Một cụm Kubernetes bao gồm các nút thực thi các ứng dụng được đóng gói trong container. Việc đóng gói ứng dụng giúp bảo vệ phần mềm, các thành phần phụ thuộc của nó và một số dịch vụ thiết yếu. Trong Kubernetes, các nút kết hợp tài nguyên của chúng để tạo ra một máy tính mạnh mẽ hơn. Khi bạn triển khai ứng dụng lên cụm, nó sẽ tự động phân phối công việc cho các nút khác nhau. Nếu bất kỳ nút nào được thêm vào hoặc loại bỏ, cụm sẽ phân bổ lại công việc khi cần thiết.

Kubernetes Cluster hoạt động như thế nào?

Sử dụng lệnh kubeadm init trên node chính để thiết lập Cluster. Bạn phải thêm tệp cấu hình Kubernetes và triển khai mạng pod, thường thông qua tệp YAML, trước khi cụm có thể được sử dụng. Lệnh kubeadm init tạo ra một lệnh tham gia có thể được sao chép và dán vào dòng lệnh của các nút máy ảo còn lại. Điều này cho phép tất cả các nút máy ảo tham gia vào cụm. Bảng điều khiển giao diện người dùng Kubernetes cho phép người triển khai thiết kế và triển khai ứng dụng trên cụm.

Ưu điểm của Kubernetes Cluster

Cụm Kubernetes có hệ thống tự phục hồi mặc định, giám sát trạng thái hoạt động và khả năng đáp ứng yêu cầu của máy khách của các container. Có thể mất đến năm phút để phát hiện ra sự cố. Nó cho phép bạn lựa chọn giữa các loại hình đám mây và kiểu triển khai: tại chỗ, trên một đám mây duy nhất, trên nhiều dịch vụ đám mây hoặc trên đám mây lai, kết hợp giữa đám mây công cộng và đám mây riêng.

Nhược điểm của Kubernetes Cluster

Chi phí triển khai Kubernetes Cluster cho doanh nghiệp có thể lên tới một triệu đô la hoặc hơn mỗi tháng, trong khi các tập đoàn tầm trung và lớn có thể chỉ tốn vài nghìn đến vài trăm đô la mỗi tháng. Kubernetes không có chế độ khả năng sẵn sàng cao (HA) theo mặc định; để xây dựng một cụm có khả năng chịu lỗi , bạn phải thiết lập HA một cách rõ ràng cho cụm etcd của mình.

Sự khác biệt giữa Node, Pod và Cluster trong Kubernetes

Node

  • Node là một máy tính thực hiện công việc trong Kubernetes, có thể là máy ảo hoặc máy thật, tùy thuộc vào cụm. Mặt phẳng điều khiển quản lý mỗi node.
  • Node.js sử dụng máy thật hoặc máy ảo.
  • Cung cấp tài nguyên tính toán (CPU, bộ nhớ, v.v.) để chạy các chương trình được đóng gói trong container.
  • Kubelet là các Pod chứa container ứng dụng bên trong.
  • Mỗi Node phải được kết nối với máy chủ API quản trị chúng.
  • Node.js không thể lưu trữ nhiều container, nhưng hãy tự giới hạn mình.
  • Một node là một máy riêng lẻ, có thể là máy thật hoặc máy ảo, đóng vai trò là đơn vị xử lý trong một cụm Kubernetes.
  • Trong môi trường không phải điện toán đám mây, các ứng dụng Node.js chạy trên máy tính ảo vì các ứng dụng đám mây không thể chạy trên đó.

Pod

  • Về mặt logic, container hoạt động trong một pod, nhưng nó cũng cần một môi trường chạy container (container runtime).
  • Đây là đơn vị triển khai nhỏ nhất bên trong một cụm Kubernetes.
  • Cung cấp thông tin và phương pháp để vận hành container một cách tối ưu.
  • Các vùng chứa ứng dụng, các ổ đĩa hỗ trợ và địa chỉ IP giống nhau cho các vùng chứa có cấu trúc logic tương đương.
  • Các container trong cùng một Pod chia sẻ tài nguyên mạng và lưu trữ.
  • Các Pod có thể chứa nhiều container, nhưng hãy giới hạn số lượng.
  • Pod đóng vai trò như một lớp bao bọc cho một hoặc nhiều container, đảm bảo chúng được lên lịch chạy cùng nhau trên cùng một node.
  • Trong môi trường không phải điện toán đám mây, các ứng dụng pod chạy trên cùng một máy tính vật lý hoặc ảo giống như các ứng dụng đám mây chạy trên cùng một máy chủ logic.

Cluster

  • Cluster được tạo thành từ các pod, có thể được kết nối với nhau hoặc không. Một pod là một đơn vị sao chép trong cụm.
  • Cụm (cluster) là tập hợp nhiều nút (node) trong hệ thống Kubernetes.
  • Mặt điều khiển có thể phối hợp các ứng dụng được đóng gói trong container bằng cách sử dụng các node và pod.
  • Các node chứa các pod, nơi lưu trữ các container ứng dụng, mặt phẳng điều khiển, kube-proxy, v.v.
  • Bạn phải thêm tệp cấu hình Kubernetes và triển khai mạng pod, thường thông qua tệp YAML, trước khi cụm có thể được sử dụng.
  • Node cũng có thể lưu trữ nhiều container, nhưng hãy tự giới hạn số lượng container của mình.
  • Các cụm (cluster) là các đơn vị cơ bản tổ chức chương trình và các thành phần phụ thuộc của nó.
  • Trong môi trường không phải điện toán đám mây, các ứng dụng Cluster chạy trên cùng một máy chủ vật lý, trong khi các ứng dụng đám mây chạy trên cùng một máy chủ logic.

Kết luận Đây là khái niệm về Node, Pod và Cluster trong Kubernetes. Node là một máy tính thực hiện công việc trong Kubernetes, có thể là ảo hoặc thực, tùy thuộc vào cluster. Control Plane quản lý từng node và container hoạt động về mặt logic trong một pod, nhưng nó cũng yêu cầu một môi trường chạy container (container runtime). Cluster là một tập hợp gồm nhiều node trong hệ thống Kubernetes.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí