Hiểu được namespace là gì tại sao cần sử dụng
NameSpace dịch sát nghĩa đen là không gian chứa tên. Có thể minh họa NameSpace là những chiếc máy tính trong một công ty, dữ liệu chứa trong một máy tính thì chúng ta truy xuất dễ dàng, nếu khác máy tính thì phải nối mạng nội bộ, link vào thì mới đọc được. Tương tự như vậy, trong một dự án nhỏ chỉ nên dùng một NameSpace cho dễ truy xuất, nếu dự án lớn thì cần phân nhiều NameSpace để quản lý. Khi chúng ta tham chiếu các thư viện động DLL tức là chúng ta tham chiếu qua các miền không gian chứa tên khác. Show
Cấu trúc: namespace Plugin_2017 { // Phần thân chứa các Class và thủ tục. } 2. Class:Class là các lớp chứa thủ tục, tham số, phương thức,.. nói chung chứa mọi thứ. Nếu NamSpace la chiếc máy tình thì Class là chiếc ổ cứng. Một Máy tính có nhiều ổ cứng, mỗi ổ cứng có nhiều dữ liệu. Kubernetes hỗ trợ nhiều cluster ảo trên cùng một cluster vật lý. Các cluster ảo này được gọi là Khi nào nên sử dụng nhiều Namespaces?Namespaces được sử dụng trong môi trường có nhiều người dùng trải rộng trên nhiều nhóm hoặc dự án khác nhau. Đối với các cluster chỉ có từ vài đến hàng chục người dùng, ta không cần phải tạo hoặc suy nghĩ về không gian tên. Ta chỉ nên sử dụng Namespaces khi cần các tính năng mà chúng cung cấp. Namespaces cung cấp một phạm vi giới hạn cho tên của các Tài nguyên. Tên của các tài nguyên cần phải là duy nhất trong một namespace chứ không phải trên các namespace khác nhau (nghĩa là 2 tài nguyên trên 2 namespace khác nhau có thể có cùng tên). Namespace không thể được lồng vào nhau và mỗi tài nguyên Kubernetes chỉ có thể nằm trong một namespace. Namespace là một cách để phân chia tài nguyên cluster giữa nhiều người dùng (thông qua hạn ngạch tài nguyên - resource quota). Trong các phiên bản tương lai của Kubernetes, các object trong cùng một namespace sẽ có cùng chính sách kiểm soát truy cập theo mặc định. Ta không cần thiết phải sử dụng nhiều namespace chỉ để phân tách các tài nguyên hơi khác nhau, chẳng hạn như các phiên bản khác nhau của cùng một phần mềm, thay vào đó, ta nên sử dụng label để phân biệt tài nguyên trong cùng một namespace. Làm việc với NamespacesViệc tạo và xóa các Namespace được mô tả trong tài liệu Hướng dẫn quản trị namespace. Xem danh sách NamespaceTa có thể liệt kê các Namespace hiện có trong một cluster bằng cách sử dụng lệnh:
Kết quả:
Mặc định, khi mới cài đặt, Kubernetes luôn có 3 namespace sau:
Chỉ định namespace cho 1 yêu cầuĐể chỉ định namespace cho 1 yêu cầu, ta sử dụng cờ Ví dụ:
Thiết lập tùy chọn cho NamespaceTa có thể thiết lập Namespace cố định cho tất cả các lệnh kubectl tiếp theo trong ngữ cảnh đó bằng cách:
Namespace và DNSKhi ta tạo ra một Service, nó sẽ tạo một mục DNS tương ứng. Mục DNS này có dạng
0 (định dạng này được gọi là FQDN), có nghĩa là nếu một container chỉ sử dụng
1 để tham chiếu đến service (mà không cung cấp
2 cụ thể) thì nó sẽ được phân giải đến service thuộc về một Namespace nào đó (thường là namespace
4 như ví dụ ở trên). Điều này hữu ích cho việc sử dụng cùng một cấu hình trên nhiều Namespace như Development, Staging và Production. Nếu ta muốn tiếp cận đến các Namespace khác nhau, ta cần phải sử dụng tên miền đủ điều kiện (FQDN - Fully Qualified Domain Name). Không phải mọi Object đều thuộc về 1 namespaceHầu hết các tài nguyên của Kubernetes (ví dụ: pods, services, replication controllers …) đều nằm trong một namespace nào đó. Tuy nhiên, bản thân tài nguyên Namespace không nằm trong 1 namespace nào. Ngoài ra, các tài nguyên cấp thấp chẳng hạn như các
5 và
6 cũng không nằm trong bất kỳ namespace nào. Để kiểm tra tài nguyên Kubernetes nào đang nằm trong hoặc không nằm trong namespace, ta dùng lệnh sau: Tại sao phải sử dụng namespace?Một namespace trong C# được thiết kế để phân nhóm toàn bộ các kiểu dữ liệu theo một cấu trúc phân cấp. Nhờ có namespace kiểu dữ liệu được quản lí tốt hơn và tránh được hiện tượng xung đột tên. Các tên được khai báo trong một namespace không xung đột với cùng tên đó nhưng được khai báo ở một namespace khác. Tại sao không nên sử dụng using namespace std trong C++?Khi sử dụng using namespace std , compiler sẽ nhìn thấy tất cả các hàm khai báo trong namespace std , kể cả những thứ mà chúng ta không nghĩ tới sẽ dùng đến. Nói một cách khác, điều này dẫn đến việc xung đột tên (name conflicts). Cin trong C++ để làm gì?Lệnh cin (Nhập dữ liệu từ bàn phím) trong C++ Lệnh cin trong C++ được sử dụng để nhập dữ liệu từ bàn phím. Đây là một công cụ quan trọng để tương tác với người dùng và lấy dữ liệu mà họ nhập để sử dụng trong chương trình của bạn. STD trong C++ là gì?Đối tượng std::cin là một đối tượng được định nghĩa trong iostream library thuộc namespace std, dùng để đọc một thông tin nào đó từ thiết bị nhập chuẩn (mặc định là bàn phím), sau đó lưu thông tin đó vào một biến. |