Trong thời đại “Big Data” thì các kho dữ liệu (Data Warehouse) truyền thống gặp…
[Update] Kubernetes pod overview
Kubernetes objects là các thực thể cơ bản mô tả trạng thái của Kubernetes cluster. Pod là các đối tượng cơ bản và là thực thể giúp xây dựng kiến trúc Kubernetes. Bài viết này sẽ cung cấp tổng quan toàn diện cho người mới bắt đầu về các Kubernetes pod. Hiểu cách thức hoạt động của các pod sẽ giúp bạn nắm bắt được cơ chế đằng sau nền tảng điều phối container này.
Khái niệm Kubernetes pod
Kubernetes pod là tập hợp của một hoặc nhiều bộ Linux® container và là đơn vị nhỏ nhất của ứng dụng Kubernetes. Bất kỳ pod cụ thể nào cũng có thể bao gồm nhiều container được liên kết chặt chẽ (trường hợp sử dụng phức tạp và nâng cao) hoặc chỉ một container (trường hợp sử dụng phổ biến và đơn giản hơn). Các container được nhóm thành các Kubernetes pod để tăng tính thông minh của việc chia sẻ tài nguyên.
Trong hệ thống Kubernetes, các container trong cùng một pod sẽ chia sẻ cùng một tài nguyên điện toán đám mây. Các tài nguyên điện toán đám mây này được gộp lại với nhau trong Kubernetes để tạo thành các cluster, có thể cung cấp một hệ thống phân tán thông minh và mạnh mẽ hơn để thực thi các ứng dụng. Các bộ phận của Kubernetes, từ container đến pod hay node và cluster, ban đầu có thể khó hiểu, nhưng những điều phù hợp nhất để hiểu lợi ích của nhóm Kubernetes được chia nhỏ như sau:
- Hardware Unit
-
- Node: đơn vị nhỏ nhất của phần cứng máy tính trong Kubernetes, dễ dàng được coi là một máy riêng lẻ.
- Cluster: một tập hợp các node được nhóm lại với nhau để cung cấp khả năng chia sẻ và cân bằng tài nguyên thông minh.
- Software Unit
- Linux container: một tập hợp gồm một hoặc nhiều quy trình, bao gồm tất cả các tệp cần thiết để chạy, làm cho chúng luôn sẵn sàng trên các máy.
- Kubernetes pod: tập hợp một hoặc nhiều Linux container, được đóng gói cùng nhau để tối đa hóa lợi ích của việc chia sẻ tài nguyên thông qua quản lý cluster
Về bản chất, phần cứng riêng lẻ được thể hiện trong Kubernetes dưới dạng node. Nhiều node trong số đó được tập hợp thành các cluster, cho phép phân bổ sức mạnh tính toán khi cần. Chạy trên các cluster đó là các pod, điều này đảm bảo rằng mọi container được liên kết chặt chẽ bên trong chúng sẽ được chạy cùng nhau trên cùng một cluster
> Reference: Hệ thống Google Kubernetes Engine
Tại sao Kubernetes sử dụng pod?
Mối quan hệ của pod với cluster là lý do tại sao Kubernetes không chạy các container 1 cách trực tiếp, thay vào đó nó sẽ chạy các pod để đảm bảo rằng mỗi container trong chúng chia sẻ cùng một tài nguyên và mạng cục bộ. Nhóm các container theo cách này cho phép chúng giao tiếp với nhau như thể chúng chia sẻ cùng một phần cứng vật lý, trong khi vẫn giữ sự tách biệt ở một mức độ nào đó.
Việc tổ chức các container thành các pod là một trong những tính năng nổi tiếng của Kubernetes: tính năng sao chép. Khi các container được tổ chức thành các pod, Kubernetes có thể sử dụng các bộ điều khiển sao chép để mở rộng quy mô theo chiều ngang của ứng dụng khi cần. Trên thực tế, điều này có nghĩa là nếu một pod đơn lẻ trở nên quá tải, Kubernetes có thể tự động sao chép nó và cho nó vào 1 cluster. Ngoài việc hỗ trợ hoạt động diễn ra 1 cách trơn tru trong thời gian tải nặng, các Kubernetes pod cũng thường được sao chép liên tục để cung cấp khả năng chống lỗi cho hệ thống
Tính năng của pod trong Kubernetes?
Các pod đại diện cho các quy trình đang chạy trên một cluster. Bằng cách giới hạn các pod trong một quy trình duy nhất, Kubernetes có thể báo cáo về tình trạng của từng quy trình đang chạy trong cluster đó. Pod có:
- Một địa chỉ IP duy nhất (cho phép giao tiếp với nhau)
- Khối lượng lưu trữ liên tục (theo yêu cầu)
- Thông tin cấu hình xác định cách một container sẽ chạy.
Mặc dù hầu hết các pod bao gồm một container duy nhất, nhưng đôi lúc pod sẽ bao gồm một vài container được phối hợp chặt chẽ với nhau để thực hiện một chức năng mong muốn.
Ứng dụng của pod trong Kubernetes?
Ngoài ra, các pod được tạo bởi các tài nguyên khối lượng công việc được gọi là controller, quản lý việc triển khai, sao chép và tình trạng của các pod trong cluster. Ví dụ: nếu một node trong cluster bị lỗi, bộ điều khiển sẽ phát hiện ra rằng các pod trên node đó không phản hồi và sẽ tạo pod thay thế trên các node khác.
Ba loại controller phổ biến nhất là:
- Jobs cho các công việc hàng loạt và sẽ cần chạy một nhiệm vụ để hoàn thành
- Deployments cho các ứng dụng không trạng thái và liên tục, chẳng hạn như máy chủ web (máy chủ HPPT)
- StatefulSets cho các ứng dụng vừa có trạng thái vừa liên tục, chẳng hạn như cơ sở dữ liệu
Nếu một pod bao gồm nhiều container, tất cả chúng sẽ được lên lịch cùng nhau trên cùng một máy chủ trong cluster, cho dù là máy chủ ảo hay máy chủ vật lý. Tất cả các container trong pod chia sẻ tài nguyên và phần phụ thuộc của chúng, đồng thời có thể điều phối việc thực thi và chấm dứt chúng. Ví dụ: các pod có thể chứa các container ‘init’ có thể khởi chạy trước khi container của ứng dụng chạy, thiết lập môi trường cho các ứng dụng tiếp theo.
Pod hầu như luôn được tạo bởi các controller, controller sau đó có thể tự động quản lý vòng đời của pod, bao gồm việc thay thế các pod bị lỗi, sao chép các pod khi cần thiết và loại bỏ pod khỏi các cluster khi chúng hoàn tất hoặc không còn cần thiết.
Controller sử dụng thông tin trong template pod để tạo pod và sẽ đảm bảo rằng các pod đang chạy khớp với hoạt động triển khai được xác định trong template pod, chẳng hạn như bằng cách tạo bản sao để khớp với số được xác định trong quá trình triển khai.
In conclusion
Qua bài viết này, ta có thể hiểu rõ hơn về Kubernetes pod. Khi pod chứa nhiều container, việc liên lạc và chia sẻ dữ liệu giữa chúng được đơn giản hóa. Vì tất cả các container trong một pod chia sẻ cùng một không gian tên mạng nên chúng có thể định vị lẫn nhau và giao tiếp qua máy chủ cục bộ. Các pod có thể giao tiếp với nhau bằng cách sử dụng địa chỉ IP của pod hoặc bằng cách tham chiếu tài nguyên nằm trong pod khác.
Các pod có thể bao gồm các container sẽ khởi chạy khi chúng bắt đầu công việc, chẳng hạn như để thực hiện quá trình khởi tạo cần thiết trước khi các ứng dụng container chạy. Ngoài ra, các pod đơn giản hóa khả năng mở rộng, cho phép tạo mới, sao chép và tắt dựa trên những thay đổi về nhu cầu.
Cloud has been and is an inevitable trend in the technology development and optimization system of enterprises. Gimasys - Premier Partner of Google in Vietnam is the unit providing, consulting the structure, designing the optimal Cloud solution for you. For technical support, you can contact Gimasys - Premier Partner of Google in Vietnam at the following information:
- Hotline: 0974 417 099 (HCM) | 0987 682 505 (HN)
- Email: gcp@gimasys.com
Source: Gimasys