Từ Code đến System

Kubernetes, Linux

[Kubernetes] Phần 3: Khái niệm Pod

1. Tổng quan

  • Trong K8s, Pod là đơn vị nhỏ nhất trong K8s
  • 1 Pod có thể chứa 1 hoặc nhiều Container dịch vụ
  • Pod có thể được tạo ra từ command hoặc YAML/JSON file
  • Thao tác quản lý pods thông thường sẽ sử dụng Kubectl

2. Tại sao K8s chọn khái niệm Pods làm đơn vị nhỏ nhất?

Khái niệm Container đại điện cho thực thể, khái niệm này có thể đúng với Docker nhưng sẽ khác với các công nghệ runtime container khác (rkt container hoặc virtlet), Ngoài ra, để quản lý tốt các container k8s cần bổ sung thêm các thông tin, chính sách như tài nguyên sử dụng, khi bật tắt, hoặc phát hiện các container còn sống hay không …

Vì vậy cần đối tượng có thể trừ tượng hóa các thực thể trong các công nghệ Runtime container khác nhau, K8s quyết định bổ sung khái niệm là Pod. Về mặt vật lý, 1 Pod có thể chứa 1 hoặc nhiều container khi mà chúng cần quản lý như 1 thực thể

3. Cách Pods được deploy

4. Về Pod Networking

5. Luồng tạo Pod

Luồng Pod được tạo ra như sau:

  1. kubectl gửi yêu cầu tạo mới deployment tới API Server
  2. API Server chỉ thị Controller Manager tạo deployment
  3. Scheluter thực hiện việc lập lịch và phân bổ Pods tới các worker theo số Replicate
  4. Kubelet trên các Worker nhận chỉ thị từ Master tạo ra các Pod.
    1. Dựa trên thông tin (image, volume, network ..) của Pod, Kubelet sẽ sử dụng công nghệ runtime container để tạo ra các container mới.
    2. Khi tạo container thành công kubelet sẽ cập nhật lại trạng thái Pod và gửi lại Master

Nguồn

https://collabnix.github.io/kubelabs/pods101/deploy-your-first-nginx-pod.html

https://www.cnblogs.com/CloudMan6/p/8323420.html

Leave a Reply