본문으로 건너뛰기

Environment Variable Management

애플리케이션의 환경 변수 정보는 YAML 파일에 하드코딩될 수 있지만, 재사용성이 부족합니다. 운영 관점에서 애플리케이션을 실행하는 코드와 애플리케이션에 주입되는 구성 코드를 분리하면 재사용성을 크게 향상시킬 수 있습니다. 애플리케이션의 이러한 내부 구성 값은 외부에서 관리되고 Kubernetes의 Secret ConfigMap 리소스를 사용하여 컨테이너에 주입될 수 있습니다.

노트

Secret는 비밀번호, API 키, SSH 키 등과 같은 보안 민감 정보를 컨테이너에 주입할 때 사용됩니다.

ConfigMap은 비민감 구성 정보를 컨테이너에 주입할 때 사용됩니다.

환경 변수 목록

이것은 애플리케이션의 환경 변수로 등록된 Secret 및 ConfigMap 정보를 관리하기 위한 인터페이스입니다:

① Env/Properties 구성 정보 목록.

  • Name: 환경 변수의 이름입니다.
  • Secret/ConfigMap Name: 환경 변수를 관리하는 Secret 또는 ConfigMap의 이름입니다. Kubernetes 환경에서 애플리케이션에서 사용되는 환경 변수는 Secret/ConfigMap으로 관리됩니다.
  • Type: 화면에 다음과 같이 표시됩니다:
    • ConfigMap인 경우, ConfigMap만 표시됩니다.
    • Secret인 경우, 특정 유형의 비밀이 표시됩니다 (dockerconfigjson, opaque, tls, service-account-token, basic-auth 등…)
      • Opaque (generic): ConfigMap과 동일한 용도로 사용할 수 있는 범용 비밀입니다. 민감한 데이터를 컨테이너에 전달하는 데에도 사용할 수 있습니다.
  • Dockerconfigjson: Docker 이미지 저장소에 접근하기 위한 인증 정보에 사용됩니다. Kubernetes는 컨테이너를 관리하기 때문에 이미지 저장소에 접근해야 하며, Docker Hub나 ECR과 같은 저장소의 개인 이미지에 대해서는 추가 인증이 필요합니다. dockerconfigjson은 이러한 개인 레지스트리에 접근하는 데 사용되는 비밀입니다.
  • tls: TLS 인증서를 비밀로 관리하는 데 도움을 줍니다. TLS 인증서 정보가 Secret에 저장되면, Pods나 Services와 같은 객체가 이를 암호화된 통신에 사용할 수 있습니다.
  • service-account-token: RBAC(역할 기반 접근 제어)를 위한 주요 Kubernetes API 리소스인 ServiceAccount와 관련이 있습니다. ServiceAccount는 Pod에 연결되어 권한을 설정합니다. ServiceAccount가 연결되면 인증 정보가 포함된 토큰이 자동으로 비밀로 생성됩니다.
  • basic-auth: 기본 인증을 위한 자격 증명을 저장하기 위해 제공되는 유형입니다.

이 비밀 유형을 사용할 때, 비밀의 데이터 필드에는 다음 두 키 중 하나가 포함되어야 합니다:

username: 인증을 위한 사용자 이름,

password: 인증을 위한 비밀번호 또는 토큰입니다.

  • Namespace: Secret/Configmap이 배포된 클러스터 네임스페이스입니다.
  • Microservice: 현재 환경 변수를 사용하고 있는 마이크로서비스/애플리케이션의 이름입니다.
  • Action: 환경 변수 정보에 대한 추가 작업 버튼입니다.
    • Edit : 환경 변수의 편집 페이지로 이동합니다.
    • Delete : 환경 변수를 삭제합니다.

② ConfigMap 가져오기: Kubernetes에 배포된 Secrets/ConfigMaps에서 선택하고 등록할 수 있습니다.

③ 새로운 Secret/ConfigMap 리소스를 생성합니다.

④ Secret/ConfigMap 정보를 삭제합니다.

⑤ 이름 또는 네임스페이스에 대한 검색 값으로 뷰를 필터링합니다.

환경 변수 생성

환경 변수 목록 화면에서 "새로 추가" 버튼을 클릭하여 새 Secret/ConfigMap을 생성합니다.

ConfigMap 생성 (파일 유형)

이것은 ConfigMap 생성 페이지의 각 항목에 대한 자세한 설명입니다.

① 유형: 환경 변수를 저장하기 위해 ConfigMap과 Secret 유형 중에서 선택합니다.

② 이름: 애플리케이션의 구성 정보를 관리할 ConfigMap의 이름입니다.

③ 네임스페이스: 프로필에 등록된 네임스페이스 목록에서 ConfigMap을 사용할 네임스페이스를 선택합니다.

④ ConfigMap 유형: ConfigMap은 Property 및 File 형식을 모두 지원합니다. 세부 사항은 다음과 같습니다:

  • Property: 구성 정보를 Key/Value 형식으로 등록할 수 있는 유형입니다.
  • File: 기존 구성 파일을 등록할 수 있는 유형입니다. 예를 들어, SpringBoot 애플리케이션의 application.yaml 파일을 별도로 관리하려면 File 유형을 사용합니다.

⑤ 마운트 경로: File 유형을 선택할 때, 파일이 애플리케이션에 주입되고 마운트될 경로를 입력합니다.

⑥ 파일 추가: 여러 파일을 입력할 수 있으며, 추가 파일마다 추가 버튼을 클릭합니다.

⑦ 삭제 버튼: 추가된 파일 정보를 삭제합니다.

⑧ 취소: ConfigMap 생성 페이지에서 취소합니다.

⑨ 저장: 입력한 정보를 저장하여 ConfigMap을 생성합니다.

ConfigMap 생성 (속성 유형)

① 유형: 환경 변수를 저장하기 위해 ConfigMap과 Secret 유형 중에서 선택합니다.

② 이름: 애플리케이션의 구성 정보를 관리할 ConfigMap의 이름입니다.

③ 네임스페이스: 프로필에 등록된 네임스페이스 목록에서 ConfigMap을 사용할 네임스페이스를 선택합니다.

④ ConfigMap 유형: 적절한 Property를 선택합니다:

  • 속성: 구성 정보를 Key/Value 형식으로 등록할 수 있는 유형입니다.
  • 파일: 기존 구성 파일의 등록을 허용하는 유형입니다. 예를 들어, SpringBoot 애플리케이션의 application.yaml 파일을 별도로 관리하려면 파일 유형을 사용하십시오.

⑤ 데이터 (데이터 등록): 애플리케이션의 구성 정보를 다음과 같이 입력합니다:

  • 키: 환경 변수의 키입니다.
  • 값: 환경 변수의 값입니다.
  • 환경 변수: 실제 애플리케이션에서 주입되어 사용될 수 있는 env 이름입니다.
  • Spring 속성 (선택 사항): application.yaml 파일의 속성과 매핑되는 변수 이름을 입력합니다.

⑥ 추가 버튼: 추가 버튼을 클릭하여 새로운 구성 정보를 추가할 수 있습니다. 이 페이지에서는 여러 구성 정보를 생성할 수 있습니다.

⑦ 삭제 버튼: 추가된 구성 정보를 삭제할 수 있습니다.

⑧ 저장: 입력한 정보를 저장하여 ConfigMap을 생성합니다.

비밀 생성 (불투명 유형)

비밀 생성 페이지의 각 항목에 대한 자세한 설명입니다.

① 유형: 비밀의 유형을 선택합니다. 비밀은 비밀번호, API 키, SSH 키 등과 같은 민감한 정보를 컨테이너에 주입해야 할 때 사용됩니다.

② 이름: 비밀의 이름을 입력합니다.

③ 네임스페이스: 프로필에 등록된 네임스페이스 목록에서 비밀의 네임스페이스를 선택합니다.

④ 비밀 유형: Secrets supportOpaquekubernetes.io/dockerconfigjson 형식입니다.

  • Opaque: Key/Value 형식으로 구성 정보를 등록하는 방법입니다. (자세한 설명은 환경 변수 목록 섹션에서 확인할 수 있습니다).
  • kubernetes.io/dockerconfigjson: 이미지를 등록하기 위해 인증 정보를 등록하는 방법입니다. (자세한 설명은 환경 변수 목록 섹션에서 확인할 수 있습니다).

⑤ 데이터 (데이터 등록): 구성 데이터를 입력하는 것과 유사하게 데이터를 입력합니다.

  • 키: 환경 변수의 키입니다.
  • 값: 환경 변수의 값입니다.
  • 환경 변수: 실제 애플리케이션에서 주입되어 사용될 수 있는 env 이름입니다.
  • 스프링 속성 (선택 사항): application.yaml 파일의 속성과 매핑되는 변수 이름을 입력합니다.

⑥ 추가 버튼: 여러 개의 키-값 데이터 쌍을 입력할 수 있으며, 각 새 항목에 대해 추가 버튼을 클릭합니다.

⑦ 삭제 버튼: 특정 키-값 데이터를 삭제합니다.

⑧ 저장: 입력한 정보를 저장하여 비밀을 생성합니다.

비밀 생성 (kubernetes.io/dockerconfigjson 유형)

이 섹션은 dockerconfigjson 유형의 비밀 생성 페이지에 있는 각 항목에 대한 자세한 설명을 제공합니다.

① 유형: ConfigMap 또는 Secret을 생성하는지 선택합니다.

② 이름: 비밀의 이름을 입력합니다.

③ 네임스페이스: 프로필에 등록된 네임스페이스 목록에서 비밀의 네임스페이스를 선택합니다.

④ 비밀 유형: 비밀은 Opaquekubernetes.io/dockerconfigjson 형식을 모두 지원합니다.

  • Opaque: 키/값 형식으로 구성 정보를 등록하는 방법입니다. (자세한 설명은 환경 변수 목록 섹션에서 확인할 수 있습니다.)
  • kubernetes.io/dockerconfigjson: 이미지를 등록하기 위해 인증 정보를 등록하는 방법입니다. (자세한 설명은 환경 변수 목록 섹션에서 확인할 수 있습니다.) ⑤ 이미지 레지스트리: 이는 프로젝트 설정에 등록된 이미지 레지스트리 목록입니다. 생성 중인 비밀을 사용하여 인증할 이미지 레지스트리를 선택하십시오.

⑥ 저장 버튼: 입력한 정보를 저장하여 비밀을 생성합니다.

환경 변수 가져오기

환경 변수 목록에서 비밀/구성 맵을 가져오기 위해 파일 가져오기 버튼을 클릭하십시오.

구성 맵 가져오기 (속성 유형)

이 섹션에서는 속성 유형의 기존 구성 맵을 가져오는 방법을 설명합니다:

① 유형: 구성 맵 또는 비밀을 가져오는지 선택하십시오.

② 이름: 구성 맵의 이름을 입력하십시오.

③ 네임스페이스: 프로필에 등록된 네임스페이스 목록에서 구성 맵의 네임스페이스를 선택하십시오.

④ 구성 맵 유형: 구성 맵은 속성 및 파일 형식을 모두 지원합니다.

  • 속성: 구성 정보가 키/값 형식으로 등록되는 형식입니다.
  • 파일: 기존 구성 파일을 등록하는 형식입니다. 예를 들어, SpringBoot 애플리케이션의 application.yaml 파일을 별도로 관리하려면 파일 유형을 사용해야 합니다.

⑤ 구성 맵: 이는 ③에서 선택한 네임스페이스에 배포된 구성 맵 목록을 표시합니다. 가져오려는 구성 맵을 선택하십시오.

⑥ 데이터 (데이터 등록): 선택한 구성 맵의 키-값 데이터를 표시합니다. 가져오는 동안 이 키-값 정보를 수정할 수 없습니다.

⑦ 저장 버튼: 입력한 정보를 저장합니다.

구성 맵 가져오기 (파일 유형)

이 섹션에서는 파일 유형의 구성 맵 가져오기 페이지의 각 항목에 대한 자세한 설명을 제공합니다:

유형, 이름 및 네임스페이스 정보는 이전에 설정한 것과 동일합니다. ① ConfigMap 유형: ConfigMaps는 속성 및 파일 형식을 지원합니다. 속성: 구성 정보가 키/값 형식으로 등록되는 형식입니다. 파일: 기존 구성 파일을 등록하는 형식입니다. 예를 들어, SpringBoot application.yaml 파일을 분리하고 관리하는 데 사용합니다.

② ConfigMaps: 선택한 네임스페이스에 배포된 ConfigMap 목록을 표시합니다. 가져오려는 ConfigMap을 선택합니다.

③ 마운트 경로: 파일 형식이 선택된 경우, 파일이 애플리케이션에 마운트될 경로를 입력합니다.

④ 파일 등록: 선택한 ConfigMap의 구성 데이터를 표시합니다.

⑤ 저장 버튼: 입력한 정보를 저장합니다.

비밀 가져오기 (Env)

이 섹션에서는 환경 변수를 위한 기존 비밀을 가져오는 방법을 설명합니다.

유형, 이름 및 네임스페이스 정보는 이전에 설정한 것과 동일합니다. ① 비밀: 선택한 네임스페이스에 배포된 비밀 목록을 표시합니다. 가져오려는 비밀을 선택합니다.

② 비밀 유형: 선택한 비밀의 특정 유형을 표시합니다. 이 항목은 수정할 수 없습니다.

③ 데이터 (데이터 등록): 선택한 비밀의 상세 데이터를 표시합니다.

④ 저장 버튼: 입력한 정보를 저장합니다.

비밀 가져오기 (파일)

이 섹션에서는 파일 기반 구성을 위한 기존 비밀을 가져오는 방법을 설명합니다.

유형, 이름 및 네임스페이스 정보는 이전에 설정한 것과 동일합니다. ① 비밀: 선택한 네임스페이스에 배포된 비밀 목록을 표시합니다. 가져오려는 비밀을 선택합니다.

② 비밀 유형: 선택한 비밀의 특정 유형을 표시합니다. 이 항목은 수정할 수 없습니다.

③ 마운트 경로: 비밀 데이터가 애플리케이션에 마운트될 경로입니다. ④ readOnly: 마운트된 Secret이 읽기 전용인지 설정합니다.

⑤ 저장 버튼: 입력한 정보를 저장합니다.

환경 변수 편집

ConfigMap 편집 (파일)

이 섹션은 파일 유형의 ConfigMap 편집 페이지에 있는 각 항목에 대한 자세한 설명을 제공합니다.

① 마운트 경로: 파일 형식이 선택된 경우, 애플리케이션에 파일이 마운트될 경로를 입력합니다.

② 파일 등록: 새로운 구성 파일을 추가하거나 기존 파일을 수정합니다.

③ 저장 버튼: 입력한 정보를 저장합니다.

ConfigMap 편집 (속성)

이 섹션은 속성 유형의 ConfigMap 편집 페이지에 있는 각 항목에 대한 자세한 설명을 제공합니다.

① 데이터 (데이터 등록): 선택한 Secret의 자세한 데이터를 표시합니다.

② 저장 버튼: 입력한 정보를 저장합니다.

Secret 편집 (kubernetes.io/dockerconfigjson)

dockerconfigjson 유형의 Secret은 편집할 수 없습니다.

Secret 편집 (Opaque)

이 섹션은 Opaque 유형의 Secret 편집 페이지에 있는 각 항목에 대한 자세한 설명을 제공합니다.

① 데이터 (데이터 등록): 선택한 Secret의 자세한 데이터를 표시합니다.

② 저장 버튼: 입력한 정보를 저장합니다.

Secret 편집 (파일)

이 섹션은 자세한 설명을 제공합니다.

① 마운트 경로: 파일 형식이 선택된 경우, 애플리케이션에서 파일이 마운트될 경로를 입력합니다.

② 파일 등록: 새로운 구성 파일을 추가하거나 기존 파일을 수정합니다.

비밀 편집 (기타 유형 - 토큰 유형)

① 데이터 (데이터 등록): 선택한 비밀의 상세 데이터를 표시합니다.

② 저장 버튼: 입력한 정보를 저장합니다.