Namespace trong k8s
1. Namespace trong Kubernetes là gì?
Namespace trong Kubernetes là một cơ chế giúp phân chia và quản lý các tài nguyên trong một cluster. Nó cho phép tạo ra các không gian độc lập, giúp tổ chức và quản lý ứng dụng một cách hiệu quả.
2. Tại sao cần Namespace?
Tách biệt môi trường: Dùng để chia nhỏ cluster cho từng nhóm, dự án hoặc môi trường (dev, staging, production).
Quản lý tài nguyên hiệu quả: Hạn chế tài nguyên sử dụng bằng cách thiết lập quotas.
Áp dụng chính sách bảo mật: Giúp kiểm soát truy cập với Role-Based Access Control (RBAC).
3. Các Namespace mặc định trong Kubernetes
Khi tạo một cluster Kubernetes, hệ thống cung cấp sẵn một số namespace mặc định:
default: Namespace mặc định nếu không có namespace nào được chỉ định.
kube-system: Chứa các thành phần quan trọng của Kubernetes như API Server, Controller Manager, Scheduler.
kube-public: Chứa các tài nguyên có thể được truy cập công khai.
kube-node-lease: Quản lý thông tin về trạng thái của các node trong cluster.
4. Cách làm việc với Namespace
4.1. Tạo một Namespace mới
Bạn có thể tạo một namespace mới bằng cách sử dụng lệnh kubectl
:
Hoặc sử dụng file YAML:
4.2. Liệt kê các Namespace
Để xem danh sách namespace trong cluster:
4.3. Tạo tài nguyên trong Namespace
Khi tạo một Pod, Deployment hoặc Service, bạn có thể chỉ định namespace:
Hoặc sử dụng lệnh:
4.4. Chuyển đổi giữa các Namespace
Bạn có thể đặt namespace mặc định cho các lệnh kubectl
:
Sau đó, tất cả các lệnh tiếp theo sẽ áp dụng trong my-namespace
.
4.5. Xóa một Namespace
Để xóa namespace và tất cả tài nguyên bên trong:
5. Kết luận
Namespace là một thành phần quan trọng giúp quản lý và tổ chức tài nguyên trong Kubernetes một cách hiệu quả. Việc hiểu và sử dụng namespace đúng cách sẽ giúp cải thiện hiệu suất và bảo mật của hệ thống Kubernetes.
Last updated