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

Kubernetes – Phần 5 – Resource là gì?

Tiếp tục chuỗi bài tìm hiểu về Kubernetes, hôm nay chúng ta sẽ cùng nhìn tổng quan về các loại resource trong Kubernetes.

Các bạn hẳn nghe khá nhiều thuật ngữ khi tìm hiểu về Kubernetes, đôi khi bị ngợp vì quá nhiều. Tôi cũng vậy, cứ thi thoảng lại thấy vài thuật ngữ mới, lại phải đi google xem nó là cái gì. Các thuật ngữ dùng nhiều nhất trong Kubernetes đa phần thuộc về resource.

Resource: Được hiểu là một loại tài nguyên được kubernetes quản lý như namespace, pods, volume, service, serviceaccount, configMap, secret,…

Resource có loại có sẵn (còn gọi là native), tức là cài đặt Kubernetes là nó có luôn rồi. Có loại resource tạo mới bằng kỹ thuật CRD (CustomResourceDefinition), thường được sử dụng trong các ứng dụng Operator. Ứng dụng Operator là gì, CRD là gì thì chúng ta sẽ tìm hiểu ở các phần sau.

Nếu phân chia các resource thành nhóm chức năng thì chúng ta có thể chia thành các nhóm sau (nguồn internet):

Hình 1: Phân nhóm các resource theo chức năng

 Thực ra mình thấy việc chia nhóm chức năng như trên cũng không được trực quan, dễ hiểu cho lắm. Lý do ư? Vì các bạn đôi khi chả biết cái resource kia sẽ được sử dụng như thế nào, trong trường hợp nào. Mình thấy có một cách phân nhóm khác giúp các bạn dễ hình dung hơn, đó là chia resource theo phạm vi namespace (nguồn từ cuốn CKAD study guide):

Hình 2: Phân nhóm các resource theo namespace

Hình trên chỉ là trích dẫn những resource tiêu biểu trong phạm vi namespace , còn muốn biết chính xác các resource đang có trong Kubernetes thì bạn có thể sử dụng lệnh:

kubectl api-resources --namespaced=true

Các bạn có thấy điều gì đặc biệt từ hình trên không? Pod là trung tâm kết nối của mọi resources khác. Pod là gì? Tại sao mọi resource khác đều xoay quanh Pod.

Để nói về Pod thì không dưới 5 bài viết, nhưng trong phạm vi của resource thì các bạn có thể hiểu: Pod là ứng dụng được chạy trong một vùng không gian riêng. Nếu các bạn đã học về container thì thấy Pod và Container rất giống nhau. Thực tế Kubernetes không làm việc trực tiếp với container, mà thay vào đó Kubernetes bọc (wrap) một hoặc vài container vào trong một cấu trúc gọi là Pod.

Điều này có nghĩa gì? Nghĩa là một cụm Kubernetes chỉ tồn tại khi đảm bảo các Pod tồn tại. Nhưng ở giai đoạn chuyển tiếp, các ứng dụng mới được containerize (đóng gói vào container) thì khả năng thích nghi trên môi trường Kubernetes là rất thấp (cụ thể là chạy application trong container). Đủ các thứ bất lợi như: process ghi log ra file thay vì ghi ra stdout/stderr, hardcode các tham số/biến thay vì sử dụng biến môi trường, chạy nhiều process và listen trên nhiều port trong một container,…. Vì vậy, thay vì cố gắng tích hợp thật nhiều thứ vào Kubernetes thì hãy làm sao để Pod có thể chạy mượt mà trên Kubernetes trước.

Đứng ở góc độ của đội phát triển phần mềm, bạn cần phải biết, hiểu và vận dụng linh hoạt toàn bộ các resource trong phạm vi của namespace.

Kết luận:

  1. Để sử dụng thành thạo Kubernetes thì bạn cần nắm được các resource có sẵn.
  2. Cần nắm chắc các resource trong phạm vi của namespace để triển khai được ứng dụng lên Kubernetes.
  3. Mọi resource trong Kubernetes đều hướng tới việc phục vụ Pod, nên hãy cố gắng tìm hiểu và thành thạo Pod trước khi tìm hiểu các resource khác.

Bài sau chúng ta sẽ cùng tìm hiểu chi tiết về Pod.

=============================
* 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 5 – Resource 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