Khái niệm | Cloud Native Viet

Phần này giúp ta hiểu về các thành phần của hệ thống Kubernetes và các khái niệm mà Kubernetes sử dụng để biểu diễn
cluster cũng như cách Kubernetes hoạt động.

Tổng quan

Để làm việc với Kubernetes, ta sử dụng các Kubernetes API objects để mô tả trạng thái mong muốn của cluster bao gồm:
Ứng dụng hoặc workloads (khối lượng công việc) ta muốn chạy, container image nào chúng sẽ sử dụng, số lượng replicas (bản sao),
tài nguyên mạng và ổ đĩa nào ta muốn cung cấp và nhiều thứ khác. Ta thiết lập trạng thái mong muốn của mình bằng cách tạo các objects (đối tượng) này thông qua Kubernetes API,
thường là sử dụng lệnh kubectl trong terminal. Ta cũng có thể sử dụng Kubernetes API trực tiếp để tương tác với cluster để thiết lập hoặc sửa đổi trạng thái mong muốn.

Một khi ta đã thiết lập được trạng thái mong muốn, Kubernetes Control Plane sẽ làm cho trạng thái hiện tại của cluster khớp với trạng thái mong muốn
thông qua Trình tạo sự kiện vòng đời của Pod (PLEG – Pod Lifecycle Event Generator).
Để làm như vậy, Kubernetes thực hiện một loạt các nhiệm vụ tự động, chẳng hạn như bắt đầu hoặc khởi động lại các containers,
nhân rộng số lượng replicas (bản sao) của một ứng dụng nhất định …

Kubernetes Control Plane bao gồm tập hợp các process (tiến trình) đang chạy trên cluster (trong master node hoặc worker node):

  • Kubernetes Master là một tập hợp gồm 3 process chạy trên một node trong cluster, được chỉ định là master node.
    Các process đó là: kube-apiserver,
    kube-controller-manager
    kube-scheduler.

  • Mỗi non-master node (là các node còn lại, thường gọi là worker node) trong cluster chạy hai process:

    • kubelet để giao tiếp với Kubernetes Master.
    • kube-proxy là một network proxy phản ánh các dịch vụ mạng của Kubernetes trên mỗi node.

Kubernetes objects

Kubernetes chứa một số khái niệm trừu tượng đại diện cho trạng thái của hệ thống như: các ứng dụng và workload được triển khai,
tài nguyên mạng và ổ đĩa liên quan của chúng và các thông tin khác về những gì cluster đang thực hiện.
Các khái niệm trừu tượng này được biểu diễn bởi các objects trong Kubernetes API.
Xem Hiểu về các Object của Kubernetes để biết thêm chi tiết.

Các object cơ bản của Kubernetes bao gồm:

Kubernetes cũng chứa các khái niệm trừu tượng ở cấp cao hơn dựa vào các controllers (bộ điều khiển) được xây dựng dựa trên các object cơ bản
và cung cấp thêm các chức năng tiện ích và tính năng tiện lợi, bao gồm:

Kubernetes Control Plane

Các bộ phận khác nhau của Kubernetes Control Plane, chẳng hạn như Kubernetes Master và các kubelet process sẽ chi phối cách Kubernetes giao tiếp với cluster.
Control Plane duy trì một bản ghi của tất cả các Kubernetes object trong hệ thống và chạy các vòng lặp điều khiển (control loop) liên tục để quản lý các object đó.
Tại bất kỳ thời điểm nào, các vòng lặp điều khiển của Control Plane sẽ phản ứng với các thay đổi trong cluster
và hoạt động để làm cho trạng thái thực tế của tất cả các object trong hệ thống khớp với trạng thái mong muốn mà ta đã thiết lập.

Ví dụ khi ta sử dụng Kubernetes API để tạo ra Deployment object, nghĩa là ta cung cấp 1 trạng thái mong muốn mới cho hệ thống.
Kubernetes Control Plane ghi nhận việc tạo object đó và thực hiện các chỉ dẫn của ta bằng cách khởi động các ứng dụng cần thiết
và lập lịch cho chúng chạy trong các worker node bên trong cluster do đó làm cho trạng thái thực tế của cluster khớp với trạng thái mong muốn.

Kubernetes Master

Kubernetes master chịu trách nhiệm duy trì trạng thái mong muốn cho cluster. Khi ta tương tác với Kubernetes,
chẳng hạn như bằng cách sử dụng lệnh kubectl trong terminal, nghĩa là ta đang giao tiếp với Kubernetes master của cluster.

Master” có ý nghĩa là tập hợp các process quản lý trạng thái cluster. Thông thường tất cả các process này chạy trên một node trong cluster
và node này được gọi là master node. Master cũng có thể được nhân bản lên (tạo bản sao) để tăng tính sẵn sàng và dự phòng.

Kubernetes Nodes

Các node (thường gọi là worker node) trong một cluster là các máy (Virtual Machine hoặc máy chủ vật lý …) chạy các ứng dụng và workload.
Kubernetes master kiểm soát từng node nên ta hiếm khi tương tác trực tiếp với các node.

Tiếp theo

  • Kubernetes là gì?

    Kubernetes là 1 nền tảng mã nguồn mở, linh động và có thể mở rộng để quản lý các workloads và services đã được đóng gói trong container. Điều này giúp ta sử dụng cấu hình khai báo tường minh và tự động hóa.

  • Các thành phần của Kubernetes

    Khi ta triển khai Kubernetes, ta sẽ có được 1 cluster.
    Một Kubernetes cluster bao gồm tập hợp các máy worker được gọi là nodes để chạy các ứng dụng trong container.

  • Kubernetes API

    Các quy ước API tổng quát được mô tả trong Tài liệu quy ước API.
    Các API endpoint, loại resource và ví dụ mẫu được mô tả trong Tham chiếu API.

Link gốc