bỏ qua Nội dung chính
Chào mừng bạn đến với Gimasys!
Hotline: +84 974 417 099 (HCM) | +84 987 682 505 (HN) gcp@gimasys.com

Cách làm việc cùng Kubernetes Namespaces

Trong bài viết ngắn này, chúng ta sẽ cùng tìm hiểu về Kubernetes Namespaces, giải thích chúng là gì và cách tạo chúng trên dòng lệnh và trong tệp cấu hình, với một số ví dụ lệnh tham khảo nhanh bằng kubectl

Kubernetes Namespaces là gì?

Namespace trong Kubernetes cho phép các đối tượng được nhóm lại. Namespace có thể được sử dụng để phân nhóm logic, chẳng hạn như để biểu thị nhiều môi trường như dev, qa hoặc prod hoặc để nhóm các đối tượng tạo nên một ứng dụng. 

Thông thường, một sự kết hợp của cả hai ví dụ trên được sử dụng. Ví dụ: nếu một ứng dụng được gọi là blog, thì nó có thể được phân đoạn bằng các không gian tên blog-dev, blog-qa và blog-prod. Namespace có thể được tạo bằng công cụ dòng lệnh kubectl hoặc sử dụng tệp cấu hình YAML. 

Tài liệu Kubernetes mô tả các namespace:

Trong Kubernetes, các namespace cung cấp một cơ chế để cô lập các nhóm tài nguyên trong một cluster duy nhất. Tên của tài nguyên cần phải là duy nhất trong một namespace, nhưng không phải giữa các namespace. Phạm vi dựa trên namespace chỉ áp dụng cho các đối tượng được đặt tên (ví dụ: Triển khai, Dịch vụ, v.v.) và không áp dụng cho các đối tượng trên toàn cụm (ví dụ: StorageClass, Nodes, PersistentVolume, v.v.). Nếu một tài nguyên được đặt trong namespace, điều đó có nghĩa là nó không thể được tạo mà không có namespace.

> Tham khảo: Hệ thống Google Kubernetes Engine (GKE)

Làm việc với Kubernetes Namespace bằng kubectl

Lưu ý rằng trên dòng lệnh, nếu một không gian tên không được chỉ định cho một lệnh kubectl nhất định, thì các đối tượng từ không gian tên mặc định sẽ được hiển thị. 

  1. Xem các namespace hiện có. 

Để xem các đối tượng trong một không gian tên cụ thể, tên của không gian tên phải được chỉ định. Việc tạo các đối tượng trong không gian tên mặc định được coi là một phương pháp không tốt vì việc triển khai NetworkPolicies, sử dụng RBAC và tách biệt các đối tượng trở nên khó khăn hơn. 

Cách làm việc cùng Kubernetes Namespaces 1Ở đây ta có một namespace được liệt kê có tên là ingress-nginx.

Cách làm việc cùng Kubernetes Namespaces 2Lưu ý rằng ta cũng thấy bốn Kubernetes namespace xuất hiện: 

  • default — namespace mặc định do hệ thống đặt. 
  • kube-system — namespace này được gán cho các tài nguyên được tạo bởi hệ thống Kubernetes. 
  • kube-public — namespace này được tạo bởi hệ thống và hiển thị cho tất cả người dùng, ngay cả những người dùng chưa được xác thực. ‍
  • kube-node-lease — namespace này chứa các đối tượng cho thuê được liên kết với mỗi node. Các hợp đồng thuê này cho phép kubelet gửi nhịp để bạn có thể xác định tính khả dụng của node.
  1. Liệt kê các pods chứa trong một namespace. 

Để xem các pod trong namespace:

Cách làm việc cùng Kubernetes Namespaces 3

Cách làm việc cùng Kubernetes Namespaces 4

  1. Liệt kê các pod trong namespace mặc định. 

Để xem các pod trong namespace mặc định (không chỉ định namespace):

Cách làm việc cùng Kubernetes Namespaces 5

Cách làm việc cùng Kubernetes Namespaces 6

Lưu ý rằng ba pod trong namespace ingress-nginx không được hiển thị ở đây. 

  1. Tạo một namespace mới. 

Để tạo một namespace mới:

Cách làm việc cùng Kubernetes Namespaces 7

Cách làm việc cùng Kubernetes Namespaces 8Tên của namespace có thể được tạo với độ dài tối đa là 63 ký tự chỉ sử dụng các ký tự chữ và số và dấu gạch nối. Tên không thể bắt đầu bằng dấu gạch nối và các ký tự chỉ có thể là chữ thường. 

  1. Xóa một namespace. 

Và để xóa một namespace:

Cách làm việc cùng Kubernetes Namespaces 9

Cách làm việc cùng Kubernetes Namespaces 10

  1. Xem thông tin chi tiết về một namespace. 

Để xem chi tiết về một namespace:

Cách làm việc cùng Kubernetes Namespaces 11

Cách làm việc cùng Kubernetes Namespaces 12

  1. Hiển thị việc sử dụng tài nguyên của các pod trong một namespace. 

Để xem mức sử dụng tài nguyên (CPU/Bộ nhớ) của các pod trong một namespace:

Cách làm việc cùng Kubernetes Namespaces 13

Cách làm việc cùng Kubernetes Namespaces 14

Tạo namespace bằng tệp cấu hình YAML 

Tạo một namespace trong cấu hình YAML được định nghĩa như ví dụ bên dưới:

Cách làm việc cùng Kubernetes Namespaces 15

Cách làm việc cùng Kubernetes Namespaces 16

Cách làm việc cùng Kubernetes Namespaces 17

Tổng kết 

Namespace rất dễ làm việc với Kubernetes và có thể được thao tác bằng công cụ dòng lệnh kubectl hoặc được khai báo trong tệp cấu hình YAML. Chúng cho phép phân tách và tổ chức hợp lý các nhóm tài nguyên. Việc sử dụng hiệu quả các namespace có thể giúp việc quản lý cluster được sắp xếp hợp lý hơn. 

Ngoài ra, mọi thứ có thể chạy qua kubectl đều có thể chạy trong Spacelift. Spacelift giúp bạn quản lý các thách thức phức tạp và tuân thủ khi sử dụng Kubernetes. Nó mang theo luồng GitOps. Vì vậy, Triển khai Kubernetes của bạn được đồng bộ hóa với Kubernetes Stack của bạn và các yêu cầu kéo sẽ hiển thị cho bạn bản xem trước về những gì chúng dự định thay đổi. Nó cũng có nhiều lựa chọn chính sách, cho phép bạn tự động kiểm tra tuân thủ và xây dựng quy trình làm việc phức tạp.

Qua bài viết này, ta có thể thấy Cloud đã và đang là xu hướng tất yếu trong hệ thống phát triển , tối ưu công nghệ của các doanh nghiệp. Gimasys – Premier Partner của Google tại Việt Nam là đơn vị cung cấp, tư vấn các cấu trúc, thiết kế giải pháp Cloud tối ưu cho bạn. Để biết được hỗ trợ về mặt chuyên môn kỹ thuật, bạn có thể liên hệ Gimasys – Premier Partner của Google tại Việt Nam theo thông tin:

  • Hotline: 0974 417 099 (HCM) | 0987 682 505 (HN)
  • Email: gcp@gimasys.com

Nguồn: Gimasys

Trở lại đầu trang
0974 417 099