Chuyển tới nội dung chính

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.

ghi chú

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 năng 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 để 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à bí mật được sử dụng để truy cập các kho riêng tư này.
  • tls: Giúp quản lý các chứng chỉ TLS như một bí mật. Khi thông tin chứng chỉ TLS được lưu trữ trong một Bí mật, các đối tượng như Pods hoặc Services có thể sử dụng nó cho việc truyền thông tin 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 mã thông báo với thông tin xác thực sẽ tự động được tạo ra như một bí mật.
  • 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 bí mật này, trường dữ liệu của bí mật 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 mã thông báo cho xác thực.

  • Namespace: Không gian tên của cụm nơi Bí mật/Configmap được triển khai.
  • Microservice: Tên của dịch vụ vi mô/ứ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 Bí mật/ConfigMaps đã được triển khai trong Kubernetes.

③ Tạo một tài nguyên Bí mật/ConfigMap mới.

④ Xóa thông tin Bí mật/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 Khóa/Giá trị.
  • 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 tiêm 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:

  • Thuộc tính: Một loại nơi thông tin cấu hình có thể được đăng ký theo định dạng Khóa/Giá trị.
  • Tệp: 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 Tệp.

⑤ 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 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: 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. Trên 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 Bí mật (Loại Opaque)

Đây là mô tả chi tiết về từng mục trên trang tạo Bí mật.

① Loại: Chọn loại Bí mật. Bí mật được sử dụng khi bạn cần tiêm 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 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: Secrets support cả định dạng Opaquekubernetes.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 vào 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 cặp 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 Opaquekubernetes.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 vào 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.) ⑤ Đăng ký Hình ảnh: Đây là danh sách các đăng ký hình ảnh đã được đăng ký trong cài đặt dự án. Chọn đăng ký hình ảnh mà bạn muốn xác thực bằng cách sử dụ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 Tài sản)

Phần này mô tả cách nhập một ConfigMap hiện có của loại Tài sản:

① 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: ConfigMaps hỗ trợ cả định dạng Tài sản và Tệp.

  • Tài sản: 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 hiển thị danh sách các ConfigMaps đã được 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: ConfigMaps hỗ trợ định dạng Property và File. Property: Một định dạng mà thông tin cấu hình được đăng ký theo định dạng Key/Value. File: 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 SpringBoot.

② ConfigMaps: Hiển thị danh sách các ConfigMaps đã được triển khai trong không gian tên đã chọn. Chọn ConfigMap mà bạn muốn nhập.

③ Đường dẫn Mount: Nếu định dạng File được chọn, nhập đường dẫn nơi tệp sẽ được gắn vào ứ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 đã được 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 đã được 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 Mount: Đường dẫn nơi dữ liệu Bí mật sẽ được gắn vào ứng dụng. ④ readOnly: Để thiết lập xem Secret đã gắn kết có phải là 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 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 Kết: Nếu định dạng Tệp được chọn, hãy nhập đường dẫn nơi tệp sẽ được gắn kết 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 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 Secret đã chọn.

② Nút Lưu: Lưu thông tin đã nhập.

Chỉnh Sửa Secret (kubernetes.io/dockerconfigjson)

Các Secret loại dockerconfigjson không thể được chỉnh sửa.

Chỉnh Sửa Secret (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 Secret cho loại Opaque.

① Dữ Liệu (Đăng Ký Dữ Liệu): Hiển thị dữ liệu chi tiết của Secret đã chọn.

② Nút Lưu: Lưu thông tin đã nhập.

Chỉnh Sửa Secret (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, hãy 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.