
Cập nhật lần cuối: 26/01/2025 17:00
| ℹ️ 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. |
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:
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
Để 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 group, bạn cần:
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 là 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
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:
Effect:
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.
Để 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
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 là 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