Environment Variable Management
Trong khi thông tin biến môi trường cho một ứng dụng có thể được mã hóa cứng trong một tệp YAML, nó thiếu tính tái sử dụng. Từ góc độ vận hành, việc tách mã chạy ứng dụng khỏi mã cấu hình được chèn vào ứng dụng có thể nâng cao đáng kể tính tái sử dụng. Những giá trị cấu hình nội bộ của ứng dụng có thể được quản lý bên ngoài và được chèn vào container bằng cách sử dụng tài nguyên Secret ConfigMap của Kubernetes.
Secret được sử dụng khi chèn thông tin nhạy cảm về bảo mật như mật khẩu, khóa API, khóa SSH, v.v., vào một container.
ConfigMap được sử dụng để chèn thông tin cấu hình không nhạy cảm vào một container.
Danh sách Biến Môi Trường
Đây là giao diện để quản lý thông tin Secret và ConfigMap được đăng ký dưới dạng biến môi trường cho một ứng dụng:
① Danh sách thông tin cấu hình Env/Properties.
- Name: Tên của biến môi trường.
- Secret/ConfigMap Name: Tên của Secret hoặc ConfigMap quản lý biến môi trường. Trong môi trường Kubernetes, các biến môi trường được ứng dụng sử dụng được quản lý dưới dạng Secret/ConfigMap.
- Type: Được hiển thị như sau trên màn hình:
- Nếu đó là một ConfigMap, chỉ ConfigMap được hiển thị.
- Nếu đó là một Secret, loại secret cụ thể được hiển thị (dockerconfigjson, opaque, tls, service-account-token, basic-auth, v.v…)
- Opaque (generic): Một secret đa mục đích có thể được sử dụng cho cùng mục đích như một ConfigMap. Nó cũng có thể được sử dụng để truyền dữ liệu nhạy cảm vào một container.
- Dockerconfigjson: Được sử dụng cho thông tin xác thực để truy cập các kho hình ảnh Docker. Kubernetes cần truy cập vào các kho hình ảnh vì nó quản lý các container, và đối với các hình ảnh riêng tư trong các kho như Docker Hub hoặc ECR, cần có xác thực bổ sung. dockerconfigjson là secret được sử dụng để truy cập các kho riêng tư này.
- tls: Giúp quản lý chứng chỉ TLS dưới dạng một secret. Khi thông tin chứng chỉ TLS được lưu trữ trong một Secret, các đối tượng như Pods hoặc Services có thể sử dụng nó cho giao tiếp mã hóa.
- service-account-token: Liên quan đến ServiceAccount, một tài nguyên API Kubernetes chính cho RBAC (Kiểm soát truy cập dựa trên vai trò). ServiceAccount được liên kết với một Pod và thiết lập quyền của nó. Khi một ServiceAccount được kết nối, một token với thông tin xác thực được tự động tạo ra dưới dạng một secret.
- basic-auth: Loại này được cung cấp để lưu trữ thông tin xác thực cho xác thực cơ bản.
Khi sử dụng loại secret này, trường dữ liệu của secret phải chứa một trong hai khóa sau:
username: Tên người dùng cho xác thực,
password: Mật khẩu hoặc token cho xác thực.
- Namespace: Không gian tên của cụm nơi Secret/Configmap được triển khai.
- Microservice: Tên của microservice/ứng dụng hiện đang sử dụng biến môi trường.
- Action: Các nút hành động bổ sung cho thông tin biến môi trường.
- Chỉnh sửa: Chuyển đến trang chỉnh sửa cho biến môi trường.
- Xóa: Xóa biến môi trường.
② Nhập ConfigMap: Bạn có thể chọn và đăng ký từ các Secrets/ConfigMaps được triển khai trong Kubernetes.
③ Tạo một tài nguyên Secret/ConfigMap mới.
④ Xóa thông tin Secret/ConfigMap.
⑤ Lọc chế độ xem theo giá trị tìm kiếm liên quan đến Tên hoặc Không gian tên.
Tạo Biến Môi Trường
Từ màn hình Danh sách Biến Môi Trường, nhấp vào nút “Thêm mới” để tạo một Secret/ConfigMap mới.
Tạo một ConfigMap (Loại Tệp)
Đây là mô tả chi tiết về từng mục trên trang tạo ConfigMap.
① Loại: Chọn giữa các loại ConfigMap và Secret để lưu trữ các biến môi trường.
② Tên: Tên của ConfigMap sẽ quản lý thông tin cấu hình cho ứng dụng.
③ Không gian tên: Chọn không gian tên để sử dụng ConfigMap từ danh sách các không gian tên đã đăng ký trong hồ sơ.
④ Loại ConfigMap: ConfigMap hỗ trợ cả định dạng Property và File. Chi tiết như sau:
- Property: Một loại mà thông tin cấu hình có thể được đăng ký theo định dạng Key/Value.
- File: Một loại cho phép đăng ký các tệp cấu hình hiện có. Ví dụ, nếu bạn muốn quản lý tệp application.yaml của một ứng dụng SpringBoot một cách riêng biệt, hãy sử dụng loại File.
⑤ Đường dẫn Gắn: Khi chọn loại File, nhập đường dẫn nơi tệp sẽ được chèn và gắn vào ứng dụng.
⑥ Thêm Tệp: Bạn có thể nhập nhiều tệp và nhấp vào nút thêm cho mỗi tệp bổ sung
⑦ Nút Xóa: Xóa thông tin tệp đã thêm.
⑧ Hủy: Hủy từ trang tạo ConfigMap
⑨ Lưu: Lưu thông tin đã nhập để tạo ConfigMap.
Tạo một ConfigMap (Loại Thuộc Tính)
① Loại: Chọn giữa các loại ConfigMap và Secret để lưu trữ các biến môi trường.
② Tên: Tên của ConfigMap sẽ quản lý thông tin cấu hình cho ứng dụng.
③ Không gian tên: Chọn không gian tên để sử dụng ConfigMap từ danh sách các không gian tên đã đăng ký trong hồ sơ.
④ Loại ConfigMap: Chọn thuộc tính phù hợp:
- Property: Một loại mà thông tin cấu hình có thể được đăng ký theo định dạng Key/Value.
- File: Một loại cho phép đăng ký các tệp cấu hình hiện có. Ví dụ, nếu bạn muốn quản lý tệp application.yaml của một ứng dụng SpringBoot một cách riêng biệt, hãy sử dụng loại File.
⑤ Dữ liệu (Đăng ký Dữ liệu): Nhập thông tin cấu hình của ứng dụng như sau:
- Khóa: Khóa của biến môi trường.
- Giá trị: Giá trị của biến môi trường.
- Biến Môi Trường: Tên env có thể được chèn và sử dụng trong ứng dụng thực tế.
- Thuộc Tính Spring (tùy chọn): Nhập tên biến ánh xạ đến các thuộc tính trong tệp application.yaml
⑥ Nút Thêm: Một thông tin cấu hình mới có thể được thêm bằng cách nhấp vào nút thêm. Trong trang này, nhiều thông tin cấu hình có thể được tạo ra.
⑦ Nút Xóa: Thông tin cấu hình đã thêm có thể bị xóa.
⑧ Lưu: Để lưu thông tin đã nhập để tạo ConfigMap.
Tạo một Secret (Loại Opaque)
Đây là mô tả chi tiết về từng mục trên trang tạo Secret.
① Loại: Chọn loại Secret. Secrets được sử dụng khi bạn cần chèn thông tin nhạy cảm như mật khẩu, khóa API, khóa SSH, v.v., vào các container.
② Tên: Nhập tên của Secret.
③ Không gian tên: Chọn không gian tên cho Secret từ danh sách các không gian tên đã đăng ký trong hồ sơ.
④ Loại Secret: Secrets support cả Opaque và kubernetes.io/dockerconfigjson định dạng.
- Opaque: Một phương pháp để đăng ký thông tin cấu hình theo định dạng Key/Value. (Giải thích chi tiết có thể được tìm thấy trong phần Danh sách Biến Môi Trường).
- kubernetes.io/dockerconfigjson: Một phương pháp để đăng ký thông tin xác thực để truy cập một kho hình ảnh. (Giải thích chi tiết có thể được tìm thấy trong phần Danh sách Biến Môi Trường).
⑤ Dữ liệu (Đăng ký Dữ liệu): Nhập dữ liệu tương tự như cách bạn nhập dữ liệu cấu hình.
- Khóa: Khóa của biến môi trường.
- Giá trị: Giá trị của biến môi trường.
- Biến Môi Trường: Tên env có thể được tiêm và sử dụng trong ứng dụng thực tế.
- Thuộc Tính Spring (tùy chọn): Nhập tên biến ánh xạ đến các thuộc tính trong tệp application.yaml.
⑥ Nút Thêm: Bạn có thể nhập nhiều cặp dữ liệu khóa-giá trị và nhấp vào nút thêm cho mỗi cặp mới.
⑦ Nút Xóa: Xóa dữ liệu khóa-giá trị cụ thể.
⑧ Lưu: Lưu thông tin đã nhập để tạo bí mật.
Tạo một Bí mật (kubernetes.io/dockerconfigjson Loại)
Phần này cung cấp mô tả chi tiết về từng mục trên trang tạo Bí mật cho loại dockerconfigjson.
① Loại: Chọn xem bạn đang tạo một ConfigMap hay một Bí mật.
② Tên: Nhập tên của Bí mật.
③ Không gian tên: Chọn không gian tên cho Bí mật từ danh sách các không gian tên đã đăng ký trong hồ sơ.
④ Loại Bí mật: Các Bí mật hỗ trợ cả định dạng Opaque và kubernetes.io/dockerconfigjson .
- Opaque: Một phương pháp để đăng ký thông tin cấu hình theo định dạng Khóa/Giá trị. (Giải thích chi tiết có thể được tìm thấy trong phần Danh sách Biến Môi Trường.)
- kubernetes.io/dockerconfigjson: Một phương pháp để đăng ký thông tin xác thực để truy cập một kho hình ảnh. (Giải thích chi tiết có thể được tìm thấy trong phần Danh sách Biến Môi Trường.)
⑤ Kho Hình Ảnh: Đây là danh sách các kho hình ảnh đã đăng ký trong cài đặt dự án. Chọn kho hình ảnh mà bạn muốn xác thực bằng bí mật đang được tạo.
⑥ Nút Lưu: Lưu thông tin đã nhập để tạo Bí mật.
Nhập Biến Môi Trường
Từ Danh sách Biến Môi Trường, nhấp vào nút Nhập tệp để nhập Bí mật/ConfigMap
Nhập một ConfigMap (Loại Thuộc Tính)
Phần này mô tả cách nhập một ConfigMap hiện có của loại Thuộc tính:
① Loại: Chọn xem bạn đang nhập một ConfigMap hay một Bí mật.
② Tên: Nhập tên của ConfigMap.
③ Không gian tên: Chọn không gian tên cho ConfigMap từ danh sách các không gian tên đã đăng ký trong hồ sơ.
④ Loại ConfigMap: Các ConfigMap hỗ trợ cả định dạng Thuộc tính và Tệp.
- Thuộc tính: Một định dạng mà thông tin cấu hình được đăng ký theo định dạng Khóa/Giá trị.
- Tệp: Một định dạng để đăng ký các tệp cấu hình hiện có. Ví dụ, nếu bạn muốn quản lý tệp application.yaml của một ứng dụng SpringBoot một cách riêng biệt, bạn sẽ sử dụng loại Tệp.
⑤ ConfigMaps: Điều này sẽ hiển thị danh sách các ConfigMaps đã triển khai trong không gian tên đã chọn ở ③. Chọn ConfigMap mà bạn muốn nhập.
⑥ Dữ liệu (Đăng ký Dữ liệu): Hiển thị dữ liệu khóa-giá trị của ConfigMap đã chọn. Bạn không thể sửa đổi thông tin khóa-giá trị này trong quá trình nhập.
⑦ Nút Lưu: Lưu thông tin đã nhập
Nhập một ConfigMap (Loại Tệp)
Phần này cung cấp mô tả chi tiết về từng mục trên trang nhập ConfigMap cho loại Tệp:
Thông tin Loại, Tên và Không gian tên giống như những gì đã được thiết lập trước đó.
① Loại ConfigMap: Các ConfigMap hỗ trợ định dạng Thuộc tính và Tệp. Thuộc tính: Một định dạng mà thông tin cấu hình được đăng ký theo định dạng Khóa/Giá trị. Tệp: Một định dạng để đăng ký các tệp cấu hình hiện có. Ví dụ, sử dụng điều này để tách biệt và quản lý tệp application.yaml của một ứng dụng SpringBoot.
② ConfigMaps: Hiển thị danh sách các ConfigMaps đã triển khai trong không gian tên đã chọn. Chọn ConfigMap mà bạn muốn nhập.
③ Đường dẫn Gắn: Nếu định dạng Tệp được chọn, nhập đường dẫn nơi tệp sẽ được gắn trong ứng dụng.
④ Đăng ký Tệp: Hiển thị dữ liệu cấu hình của ConfigMap đã chọn.
⑤ Nút Lưu: Lưu thông tin đã nhập
Nhập một Bí mật (Env)
Phần này mô tả cách nhập một Bí mật hiện có cho các biến môi trường
Thông tin Loại, Tên và Không gian tên giống như những gì đã được thiết lập trước đó. ① Bí mật: Để hiển thị danh sách các Bí mật đã triển khai trong không gian tên đã chọn. Chọn Bí mật mà bạn muốn nhập.
② Loại Bí mật: Để hiển thị loại cụ thể của Bí mật đã chọn. Mục này không thể được sửa đổi.
③ Dữ liệu (Đăng ký Dữ liệu): Để hiển thị dữ liệu chi tiết của Bí mật đã chọn.
④ Nút Lưu: Để lưu thông tin đã nhập.
Nhập một Bí mật (Tệp)
Phần này mô tả cách nhập một Bí mật hiện có cho cấu hình dựa trên tệp.
Thông tin Loại, Tên và Không gian tên giống như những gì đã được thiết lập trước đó. ① Bí mật: Để hiển thị danh sách các Bí mật đã triển khai trong không gian tên đã chọn. Chọn Bí mật mà bạn muốn nhập.
② Loại Bí mật: Để hiển thị loại cụ thể của Bí mật đã chọn. Mục này không thể được sửa đổi.
③ Đường dẫn Gắn: Đường dẫn nơi dữ liệu Bí mật sẽ được gắn trong ứng dụng.
④ chỉ Đọc: Để thiết lập xem Bí mật đã gắn có chỉ đọc hay không.
⑤ Nút Lưu: Để lưu thông tin đã nhập.
Chỉnh sửa Biến Môi Trường
Chỉnh sửa một ConfigMap (Tệp)
Phần này cung cấp mô tả chi tiết về từng mục trên trang chỉnh sửa ConfigMap cho loại Tệp.
① Đường dẫn Gắn: Nếu định dạng Tệp được chọn, nhập đường dẫn nơi tệp sẽ được gắn trong ứng dụng.
② Đăng ký Tệp: Thêm các tệp cấu hình mới hoặc sửa đổi các tệp hiện có.
③ Nút Lưu: Lưu thông tin đã nhập.
Chỉnh sửa một ConfigMap (Thuộc Tính)
Phần này cung cấp mô tả chi tiết về từng mục trên trang chỉnh sửa ConfigMap cho loại Thuộc tính.
① Dữ liệu (Đăng ký Dữ liệu): Hiển thị dữ liệu chi tiết của Bí mật đã chọn.
② Nút Lưu: Lưu thông tin đã nhập.
Chỉnh sửa một Bí mật (kubernetes.io/dockerconfigjson)
Các Bí mật của loại dockerconfigjson không thể được chỉnh sửa.
Chỉnh sửa một Bí mật (Opaque)
Phần này cung cấp mô tả chi tiết về từng mục trên trang chỉnh sửa Bí mật cho loại Opaque.
① Dữ liệu (Đăng ký Dữ liệu): Hiển thị dữ liệu chi tiết của Bí mật đã chọn.
② Nút Lưu: Lưu thông tin đã nhập.
Chỉnh sửa một Bí mật (Tệp)
Phần này cung cấp mô tả chi tiết.
① Đường dẫn Gắn: Nếu định dạng Tệp được chọn, nhập đường dẫn nơi tệp sẽ được gắn trong ứng dụng.
② Đăng ký Tệp: Thêm các tệp cấu hình mới hoặc sửa đổi các tệp hiện có.
Chỉnh sửa Bí mật (Các Loại Khác - Loại Token)
① Dữ liệu (Đăng ký Dữ liệu): Hiển thị dữ liệu chi tiết của Bí mật đã chọn.
② Nút Lưu: Lưu thông tin đã nhập.