Thứ Sáu, 11 tháng 11, 2022

Kubernetes – Phần 4 – Namespace là gì?

Qua các phần trước, chúng ta đã tìm hiểu về nguồn gốc ra đời, kiến trúc các thành phần và cách thức cài đặt một cụm hạ tầng Kubernetes bằng kubeadm. Bây giờ chúng ta sẽ cùng tìm hiểu một số khái niệm cơ bản trong Kubernetes để giúp các bạn có thể quản trị và vận hành được một hạ tầng Kubernetes.

Giả sử bạn được bàn giao một hạ tầng Kubernetes để vận hành, quản trị thì bạn sẽ cần tiếp cận cái gì đầu tiên?

Tùy vào kiến thức nền và vị trí công việc của mỗi bạn mà có các câu trả lời khác nhau. Nếu bạn được bàn giao tài khoản quản trị Kubernetes cluster, bạn sẽ cần biết hạ tầng Kubernetes được cài đặt bằng cách thức nào, có HA hay không, mức độ khai thác tài nguyên ra sao, đang dùng storage gì, tích hợp với các hệ thống nào, có bao nhiêu ứng dụng đang triển khai trên đó, triển khai trên các namespace nào,… Còn nếu bạn là người triển khai ứng dụng thì bạn quan tâm tới việc đang bị limit resource ra sao, tài khoản được cấp quyền gì, có storageclass không, có những policy nào phải tuân thủ, namespace được cấp tên là gì,….

OK. Bài này chúng ta sẽ cùng nhau tìm hiểu một khái niệm đầu tiên khi làm việc với Kubernetes, đó là namespace. Vậy namespace là gì? Các bạn sẽ thấy khái niệm namespace xuất hiện ở khá nhiều nơi, nhưng có cùng chung một mục đích: Một vùng không gian riêng.

Các bạn hẳn rất quen thuộc với thuật ngữ folder (thư mục) trong hệ điều hành Windows, Linux, vậy trong Kubernetes có thể hiểu về mặt logic thì namespace như một folder. Nhưng folder này trong Kubernetes nó trải dài trên tất cả các node. Bạn không thể tạo được hai tập tin (file) có trùng tên trong cùng một thư mục (folder), thì tính chất này cũng tương tự trong namespace, nhưng thay vì là tập tin thì trong namespace sẽ được đặt các resource.

Resource: Được hiểu là một loại tài nguyên được kubernetes quản lý như pods, volume, service, serviceaccount, configMap, secret,… Các resource này sẽ được mình làm rõ ở các bài tiếp theo. Bản thân namespace cũng được coi là một resource.

Một hình minh họa cho các bạn dễ hiểu về namespace (nguồn từ quyển sách Kubernetes security):

Hình 1: Phạm vi của Namespace trong Kubernetes

Theo như hình trên, nhìn tổng quát từ bên ngoài Kubernetes vào thì sẽ thấy:

  • Một Kubernetes Cluster sẽ bao gồm rất nhiều node (master, worker).
  • Một namespace trong Kubernetes Cluster sẽ nằm trên tất cả các node.
  • Mọi ứng dụng khi triển khai trong Kubernetes phải thuộc vào một namespace nào đó

Namespace là một thành phần logic mà tất cả mọi người đều phải hiểu và tương tác nếu làm việc với Kubernetes.

Mặc định khi cài đặt xong một cụm Kubernetes ta sẽ có 03 namespace: kube-system, default, public.

Nếu bạn đang nắm quyền quản trị (admin) thì bạn có thể tạo một namespace tên là test bằng cách chạy lệnh sau:

kubectl create namespace test

Namespace trong Kubernetes còn có một cách viết ngắn gọn là ns. Bạn kiểm tra các namespace đang có trong hạ tầng Kubernetes bằng lệnh:

kubectl get ns

Khi muốn tương tác với các resource trong namespace thì các bạn thêm tham số -n [NAMESPACE] vào câu lệnh:

kubeclt -n kube-system get all

Để xem những resource nào thuộc Kubernetes nằm trong phạm vi của namespace thì ta dùng lệnh:

kubectl api-resources --namespaced=true

Ngoài ra, còn một số kiến thức khác về liên quan tới namespace nữa như: thiết lập label cho namespace, phân giải service name giữa các namespace khi kết nối sẽ được mình đề cập tới trong các bài viết sau.

Tóm lại:

  1. Namespace là một thành phần logic được Kubernetes sử dụng để xác định phạm vi quản lý các resource.
  2. Một resource trong cùng một namespace không thể đặt tên giống nhau.
=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
Kubernetes – Phần 4 – Namespace là gì?, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master