ℹ️ Góp ý cải thiện tài liệu 
Để đóng góp chỉnh sửa, nhấp vào liên kết Gửi ticket ở khung bên phải.

1. Label

Label là một tính năng quan trọng trong Kubernetes, được sử dụng để tổ chức và quản lý các đối tượng một cách hiệu quả. Bạn có thể gán các cặp key-value cho các đối tượng Kubernetes như Pod, Node, Service, Deployment, v.v. Cụ thể:

Mỗi Label là một cặp key-value: Key (khoá) là một chuỗi ký tự dùng để xác định tên của Label. Value (giá trị) là một chuỗi ký tự tùy chọn, cung cấp thông tin chi tiết về Label.

Key và value phải tuân theo các quy tắc đặt tên: Key và value không được chứa dấu khoảng trắng, ký tự đặc biệt ngoài (-, _,.).

Label có thể được sử dụng cho nhiều mục đích khác nhau, bao gồm:

  • Phân loại các đối tượng dựa trên các tiêu chí như environment, version, status, v.v.
  • Theo dõi và quản lý các đối tượng trong cụm Kubernetes.

Ví dụ:

app: nginx - Label này cho biết đối tượng có liên quan đến ứng dụng Nginx.

environment: production - Labelnày cho biết đối tượng thuộc về môi trường production.

version: 1.7.2 - Label này cho biết đối tượng có liên quan đến phiên bản 1.7.2

2. Tạo Label

Để tạo Label cho một Worker Group, bạn hãy thực hiện theo hướng dẫn sau:

Bước 1: Truy cập vào https://console.cloud.vnpt.vn/app-kubernetes/create

Bước 2: Tại Cluster đã khởi tạo trước đó, hãy chọn Thêm worker group

Bước 3: Tại màn hình khởi tạo worker group, chúng tôi đã thiết lập thông tin cho worker group của bạn. Bạn có thể giữ các giá trị mặc định này hoặc điều chỉnh các thông số mong muốn cho worker group của bạn. Tại mục worker groupbạn cần:

  • Nhập key cho Label của bạn. Key phải bắt đầu và kết thúc bằng chữ hoặc số và bao gồm các ký tự a-z, A-Z, 0-9, -, _, . tối đa 253 ký tự. Ngoài ra bạn có thể nhập key là một DNS subdomain ví dụ: myvnpt1.com/my-app
  • Nhập value cho key tương ứng này.

Bước 5: Chọn Create worker Group. Hãy chờ vài phút để chúng tôi khởi tạo Worker Group của bạn, trạng thái của Worker Group lúc này là Creating.

Bước 6: Khi trạng thái worker Group Active, bạn có thể xem thông tin worker Group bằng cách chọn vào worker Group name tại màn hình chính.

Hoặc bạn có thể tạo Label thông qua kubectl theo câu lệnh:

kubectl label nodes vnpt-node01 disktype=ssd

Bạn có thể kiểm tra lại Label vừa tạo qua lệnh:

kubectl get nodes --show-labels

3. Taint

Taint là một tính năng quan trọng trong Kubernetes, đóng vai trò như một cơ chế để đánh dấu các Node và kiểm soát việc lên lịch Pod trên những Node đó. Khác với Label thông thường, Taint được sử dụng để chỉ định các thuộc tính đặc biệt của Node và thực thi các hành động cụ thể khi Pod không đáp ứng các điều kiện được xác định bởi Taint. Cụ thể:

Cụ thể:

Mỗi Taint bao gồm:

  • Key (khoá) là một chuỗi ký tự dùng để xác định tên của taint.
  • Value (giá trị) là một chuỗi ký tự tùy chọn, cung cấp thông tin chi tiết về taint.

Effect:

  • NoSchedule: Ngăn Pod không có Toleration tương ứng được lên lịch trên Node.
  • NoExecute: Cho phép Pod được lên lịch trên Node nhưng Pod sẽ không được thực thi.
  • PreferNoSchedule: Kubernetes sẽ cố gắng ưu tiên không lên lịch Pod lên Node có Taint này.

Key và value phải tuân theo các quy tắc đặt tên: Key và value không được chứa dấu khoảng trắng, ký tự đặc biệt ngoài (-, _,.).

Toleration: Để Pod có thể được lên lịch và chạy trên Node có Taint, Pod cần có Toleration tương ứng. Toleration được khai báo trong PodSpec bằng cách sử dụng tolerations field. Ví dụ:

Copy

tolerations: - key: node.role.kubernetes.io/master effect: NoSchedule

Mối quan hệ giữa Taint và Toleration: Khi Kubernetes lên lịch Pod, Kubernetes sẽ so khớp các Taint của Node với các Toleration của Pod. Pod chỉ được lên lịch trên Node nếu có Toleration cho tất cả các Taint của Node đó.

Ví dụ:

node.role.kubernetes.io/master:NoSchedule - ngăn các Pod thông thường được chạy trên Node này.

4. Tạo Taint

Để tạo Taint cho một worker Group, bạn hãy thực hiện theo hướng dẫn sau:

Bước 1: Truy cập vào  https://console.cloud.vnpt.vn/app-kubernetes/create

Bước 2: Tại Cluster đã khởi tạo trước đó, hãy chọn Thêm worker group

Bước 3: Tại màn hình khởi tạo Worker Group, chúng tôi đã thiết lập thông tin cho Node Group của bạn. Bạn có thể giữ các giá trị mặc định này hoặc điều chỉnh các thông số mong muốn cho Worker Group của bạn. Tại mục Chỉnh sửa worker group, bạn cần:

Nhập key cho taint của bạn. Key phải bắt đầu và kết thúc bằng chữ hoặc số và bao gồm các ký tự a-z, A-Z, 0-9, -, _, . tối đa 253 ký tự. Ngoài ra bạn có thể nhập key là một DNS subdomain ví dụ: example.com/my-app

  • Nhập value cho key tương ứng này.
  • Chọn 1 trong 3 loại effect: NoSchedule, NoExecute, PreferNoSchedule.

Bước 5: Chọn Create worker group. Hãy chờ vài phút để chúng tôi khởi tạo Worker Group của bạn, trạng thái của Worker Group lúc này là Creating.

Bước 6: Khi trạng thái worker group Active, bạn có thể xem thông tin Worker Group bằng cách chọn vào worker group Name tại màn hình chính.

Hoặc bạn có thể tạo Taint thông qua kubectl theo câu lệnh:

tolerations: - key: node.role.kubernetes.io/vnpt-master effect: NoSchedule

Ví dụ sử dụng Taint:

Giả sử bạn có một Node master được sử dụng cho mục đích quản lý và bạn muốn ngăn các Pod thông thường được chạy trên Node này. Bạn có thể sử dụng Taint như sau:

kubectl taint node my-master node.role.kubernetes.io/vnpt-master:NoSchedule

Để Pod có thể chạy trên Node master, Pod cần có Toleration tương ứng:

apiVersion: v1

kind: Pod

metadata:

 name: my-pod

spec:

 tolerations:

 - key: node.role.kubernetes.io/vnpt-master

   effect: NoSchedule