Cấu hình ConfigMap trong Kubernetes

80

Cấu hình ConfigMap trong KubernetesCuongquach.com | Khi bạn quản lý các ứng dụng Deployment/Pod trong Kubernetes, chắc chắn sẽ có nhu cầu cấu hình các biến môi trường cho Pod hoặc khởi tạo file config cho dịch vụ Container theo cách nào đấy linh động nếu ứng dụng của bạn có mặt ở nhiều môi trường khác nhau như UAT/QA/DEV/TESTING. Thì resource ConfigMap trong Kubernetes vô cùng tiện lợi để hỗ trợ bạn những công việc như vậy.

configmap-kubernetes

ConfigMap là gì trong Kubernetes ?

ConfigMap là một resource trong Kubernetes giúp bạn quản lý được file cấu hình ứng dụng, nội dung file cấu hình ứng dụng, các giá trị truyền cho lệnh command-line, port ứng dụng,… và rất nhiều thứ khác có thể hỗ trợ khi bạn khai báo các thành phần của 1 Pod.

ConfigMap giúp ứng dụng của bạn tách biệt phần code ứng dụng với nội dung cấu hình về hệ thống. Ví dụ như bạn dễ dàng thay đổi cấu hình về môi trường Dev/QA/UAT/Production như database connection string, domain, hostname, url,… mà không cần phải can thiệp vào code. Một trong những điều quan trọng của 12Factor (https://12factor.net/vi/config).

ConfigMap rất hữu ích để lưu trữ và chia sẻ thông tin cấu hình không nhạy cảm, không được mã hóa. Để sử dụng thông tin nhạy cảm trong cụm của bạn, bạn phải sử dụng Bí mật.

Khởi tạo ConfigMap trong Kubernetes

Bạn có vài cách khởi tạo ConfigMap như : khai báo cấu hình định dạng YAML rồi apply config hay tạo ConfigMap từ command line.

+ Command line

Trong đó:

  • name: là tên của ConfigMap.
  • data: dữ liệu của ConfigMap với 2 hình thức cung cấp dữ liệu như sau
    + –from-file: load dữ liệu key-value cho ConfigMap từ file
    + –from-literal: tạo key-value cho ConfigMap từ command arguments trực tiếp.

Ví dụ ta tạo trực tiếp ConfigMap từ command line, rồi coi thông tin ConfigMap mà ta đã tạo thử.

Rồi tạo một ConfigMap khác từ command line với input từ file nào.

+ ConfigMap với YAML Manifest

Ok bạn cũng có thể tạo một file YAML Manifest để định nghĩa về tài nguyên ConfigMap trên hệ thống Kubernetes đấy.

Sử dụng ConfigMap với Pod Kubernetes

Mình không đề cập chi tiết cách sử dụng ConfigMap với Pod Kubernetes ở phần này, nhưng có 3 kiểu sử dụng ConfigMap với Pod :

  • Load toàn bộ key-value data của một ConfigMap thành biến môi trường trong 1 Pod app.

  • Load một giá trị biến môi trường được khai báo trong Pod từ ConfigMap key cụ thể.

  • Hoặc bạn cũng có thể mount volume file config trong app container từ ConfigMap đấy.

Nguồn: https://cuongquach.com/

LEAVE A REPLY

Please enter your comment!
Please enter your name here