07/09/2018, 13:41

Phân Biệt Node, Pod và Container trong Kubernetes

Kubernetes là công cụ dùng để quản lý việc triển khai (deploy), bảo trì (maintain) và mở rộng (scale) các ứng dụng được chạy bằng Docker container. Kubernetes là phần mềm mã nguồn mở và với các tính năng mạnh mẽ cung cấp Kubernetes đã nhanh chóng trở thành một công cụ không thể thiếu trong DevOps. ...

Kubernetes là công cụ dùng để quản lý việc triển khai (deploy), bảo trì (maintain) và mở rộng (scale) các ứng dụng được chạy bằng Docker container. Kubernetes là phần mềm mã nguồn mở và với các tính năng mạnh mẽ cung cấp Kubernetes đã nhanh chóng trở thành một công cụ không thể thiếu trong DevOps.

Trong bài viết này chúng ta sẽ tìm hiểu về cũng như phân biệt sự khác nhau giữa ba khái niệm phổ biến trong Kubernetes đó là Node, Pod và Container.

Kubernetes Node

Một node là một worker machine (có thể là một máy chủ vật lý hoặc máy chủ ảo) dùng để chạy các pod. Mỗi node có thể bao gồm một hoặc nhiều pod.

Kubernetes Node

Một máy chủ vật lý chạy kubernetes có thể có một node hoặc nhiều node trên đó.

Kubernetes Pod

Một pod bao gồm một hoặc nhiều container, các container trong cùng một Pod sẽ chia sẻ các resource của Pod (CPU, RAM, và network). Mỗi Pod có địa chỉ IP xác định.

Kubernetes Pod

Mỗi pod được chạy trong một node tuy nhiên một node có thể có nhiều pod khác nhau. Các container trong cùng một pod có thể giao tiếp với nhau một cách dễ dàng.

Để liệt kê các container trong pod bạn dùng câu lệnh sau (lưu ý máy tính của bạn cần được cài đặt kubectl):

$ kubectl describe pod <POD_NAME>

Để ssh vào pod bạn dùng câu lệnh sau:

$ kubectl exec -it <POD_NAME> -- /bin/bash

Kubernetes Container

Container trong Kubernetes tương tự như một container của chạy trên máy tính bạn.

Do một pod có thể có nhiều container khác nhau nên khi muốn login vào container bạn cần sử dụng tên của container:

$ kubectl exec -it <POD NAME> -c <CONTAINER NAME> bash

Nếu bạn không nhớ tên của container trong Pod thì hãy dùng câu lệnh kubectrl describe pod để lấy ra thông tin bao gồm cả tên các container đang chạy trong pod.

0