Application Expert Settings
애플리케이션 전문가 설정 목록
애플리케이션 전문가 설정은 추가 애플리케이션 설정, 비밀 구성, 스토리지 마운트 및 Pods의 안정성을 위한 설정을 구성할 수 있는 영역을 제공합니다. 이 설정은 애플리케이션의 다양한 특성에 따라 강력하고 안정적으로 관리되도록 설계되었습니다.
애플리케이션의 설정은 저장 후 즉시 반영되지 않습니다. 빌드/배포 프로세스가 배포 파이프라인을 통해 수행된 후에만 적용됩니다.
① 구성 및 볼륨 설정
- 애플리케이션 속성: 기본/전문 설정에 제공되지 않은 추가 애플리케이션 설정을 주입할 때 사용됩니다.
- Env/Properties Mount: 환경 변수와 비밀을 애플리케이션에 적용합니다.
- PVC: 스토리지(볼륨)를 애플리케이션에 연결합니다.
② 모니터링 및 로그 설정
- 추적: 애플리케이션의 E2E 정보를 확인하기 위해 추적 및 APM 설정을 적용합니다.
- 메트릭: 애플리케이션에서 사용자 유형 모니터링 메트릭을 수집하기 위한 설정을 구성합니다.
- 로그: 플랫폼에서 특정 형식으로 생성된 애플리케이션 로그를 수집하기 위한 템플릿을 적용합니다.
③ 서비스 안정화 설정
- Pod 생명주기 훅: 애플리케이션의 시작/종료 동안 안정성을 위한 설정을 구성합니다.
- 헬스 체크: 정기적인 헬스 체크를 설정하고 애플리케이션의 정상 시작을 확인합니다.
- 회로 차단기: 애플리케이션 내부에서 구현할 수 있는 회로 차단기에 대한 일반 설정을 적용합니다.
애플리케이션 [구성 및 볼륨 설정 / 애플리케이션 속성] 세부정보 (수정)
추가 애플리케이션 구성 파일을 애플리케이션에 주입하여 더 많은 설정을 구성할 수 있습니다. 이는 클러스터 배포 중 로컬/배포 환경에 따라 서로 다른 설정을 주입할 때 유용합니다. 주입될 구성 파일은 개발자의 코드에 기반합니다.
① 사용자 정의 애플리케이션 속성 사용: 사용자 정의 애플리케이션 속성을 사용할지 선택합니다. 이 설정이 활성화되면 관련 설정이 적용됩니다.
② 파일: 애플리케이션에 자동으로 주입될 파일 이름을 입력합니다. SpringBoot를 사용하는 애플리케이션의 경우, application-dev.yaml과 같은 파일은 클러스터 배포 환경에 따라 개발 소스 코드의 특정 리소스 아래에 설정됩니다. 이러한 파일은 Deployment Pipeline의 CD를 통해 병합되고 구성됩니다.
- 소스 코드에서 상대 경로를 입력하고 Enter 키를 눌러 등록합니다. 예를 들어, src/main/resources/application-dev.yaml과 같은 입력 값을 등록합니다.
- 마지막으로, Deployment Pipeline을 통해 이러한 설정이 애플리케이션의 configmap에 자동으로 포함되고 적용됩니다.
③ 애플리케이션에 등록된 애플리케이션 속성 파일 목록입니다.
애플리케이션 [구성 및 볼륨 설정 / Env/Properties 마운트] 세부정보 (수정)
클러스터 환경에서는 다양한 구성 파일을 외부화하고 주입할 수 있으며, 보안 목적으로 인증된 비밀을 통해 컨테이너 이미지를 얻을 수 있습니다. 이 설정은 이러한 경우에 유연한 처리를 가능하게 합니다.
비밀 및 ConfigMaps는 프로필의 ENV/PROPERTIES에 등록된 정보에서 선택하여 사용할 수 있습니다.
① 비밀: 프로필의 ENV/PROPERTIES에 등록된 비밀 목록에서 비밀을 검색하고 선택합니다. 애플리케이션에 연결할 비밀을 선택하려면 Enter 키를 누릅니다. 유형에 따라 비밀은 애플리케이션에 다양한 방식으로 연결될 수 있으며, 여러 개의 비밀을 선택하여 연결할 수 있습니다.
② 위의 프로세스는 애플리케이션에 연결될 비밀을 표시합니다. 그러나 등록된 비밀이 없으면 이 섹션은 화면에 표시되지 않습니다.
③ 이미지 풀 비밀: 프로필의 ENV/PROPERTIES에 등록된 비밀 목록에서 이미지 비밀을 검색하고 선택합니다. 애플리케이션에 연결할 이미지 비밀을 선택하려면 Enter 키를 누릅니다.
이미지를 다운로드하기 위한 인증 정보를 포함하는 비밀 유형만 선택할 수 있습니다. 연결할 비밀 목록은 비밀 섹션과 유사하게 표시됩니다.
- 포드를 구성하는 컨테이너에서 사용하는 이미지 비밀을 검색하고 등록합니다.
④ 구성 맵: 프로필의 ENV/PROPERTIES에 등록된 구성 맵 목록에서 구성 맵을 검색하고 선택합니다. 애플리케이션에 연결할 구성 맵을 선택하려면 Enter 키를 누릅니다.
비밀과 마찬가지로 구성 맵은 유형에 따라 애플리케이션에 다양한 방식으로 연결될 수 있으며, 여러 개의 구성 맵을 선택하여 연결할 수 있습니다. 연결할 구성 맵 목록은 비밀 섹션과 유사하게 표시됩니다.
애플리케이션 [구성 및 볼륨 설정 / PVC] 세부정보 (수정)
클러스터 환경에서 애플리케이션에 볼륨을 생성하고 연결하는 것은 지속적인 데이터를 관리하는 데 필수적입니다. 이 설정은 다양한 실패 시나리오에서 애플리케이션의 지속적인 데이터를 유지해야 하는 상황에서 사용됩니다.
① 추가 버튼: 추가 버튼을 사용하여 새로운 볼륨을 추가합니다.
② 애플리케이션에 연결될 볼륨 목록:
- 경로: 애플리케이션에 연결될 때의 마운트 사례를 나타냅니다.
- PVC 이름: 볼륨의 이름은 PersistentVolumeClaim (PVC) 명명 규칙을 사용합니다. 네임스페이스: 볼륨이 배포된 네임스페이스에 대한 정보입니다.
③ 볼륨 수정 및 삭제 옵션: 볼륨에 대한 정보를 편집하거나 삭제하는 기능을 제공합니다.
① 경로: (필수) 경로는 애플리케이션에 접근하기 위한 연결 정보입니다. 애플리케이션의 컨테이너를 구성하는 노드의 운영 체제에 따라 설정해야 합니다.
② PVC: (필수) 프로필에 등록된 PVC를 선택합니다. 프로필의 STORAGE에 등록된 PVC가 목록으로 제공됩니다.
애플리케이션 [모니터링 및 로그 설정 / 추적] 세부정보 (수정)
클라우드 네이티브 환경에서는 다양한 애플리케이션의 서비스 호출 관계를 추적하고 분석하는 것이 상당히 어렵습니다. 클러스터 환경에서 애플리케이션의 End-to-End (E2E) 추적을 위한 정의된 애드온 서비스를 연결하면 서비스 분석이 용이해집니다. 이 설정은 프로젝트에 추적 유형의 애드온 서비스가 등록되어 있는 경우에 사용할 수 있습니다.
① 추적: 추적 속성을 사용할지 선택합니다. 이 설정이 활성화되면 관련 구성이 적용됩니다.
② 애드온 서비스 유형: 프로필의 애드온 서비스에서 추적 아래에 나열된 것만 선택할 수 있습니다. 클러스터 환경에 따라 구성된 추적 서비스를 사용할 수 있습니다. 유형에 따라 배포 설정이나 애플리케이션에 주입된 애플리케이션 속성이 다를 수 있습니다. 이는 AMDP의 미리 정의된 범위 내에서 작동합니다.
애플리케이션 [모니터링 및 로그 설정 / 메트릭] 세부정보 (수정)
SpringBoot, Actuator 및 Micrometer를 기반으로 하는 애플리케이션은 메트릭을 구성하여 사용자 정의 메트릭을 추가로 수집할 수 있습니다. 이 기능은 클러스터에서 수집한 기본 CPU 및 메모리 정보 외에 다양한 JVM 메트릭을 수집하고 추가 사용자 메트릭을 생성하는 데 사용됩니다.
이 값들은 자동으로 배포의 주석에 주입되며 Kubernetes 및 Prometheus 생태계를 기반으로 합니다.
① 사용자 정의 로그 : 사용자 정의 로그 속성을 사용할지 선택합니다. 이 설정이 활성화되면 관련 구성이 적용됩니다.
② 유형 : 클러스터의 로그 시스템의 로그 수집 방법에 대한 애플리케이션 설정을 주입하는 기능을 제공합니다. TEXT : 애플리케이션에 의해 정의된 기본 로그 출력 유형을 유지합니다. 가장 기본적인 출력 형식으로 구성됩니다.
JSON : AMDP 설치 중 자동으로 구성된 기본 정보의 보편화된 logback.xml을 적용합니다. 애플리케이션이 배포되면 이 logback.xml이 자동으로 주입됩니다. 변환된 JSON 형식으로 출력됩니다.
애플리케이션 [서비스 안정화 설정 / 포드 생명 주기 훅] 세부정보 (수정)
애플리케이션의 시작 및 종료에 대한 보다 안정적인 상태 값을 제공하기 위해, 내부 구현된 서비스의 상태 값을 쿼리하거나 실행하는 기능이 제공됩니다. 이 기능은 클러스터 LifecycleHooks와 관련이 있습니다.
관련된 lifecycle.postStart 및 lifecycle.preStop 정보는 Kubernetes에 의해 안내되며, postStart 및 preStop 핸들러를 정의합니다.
① PostStart (PostStart 속성 사용): PostStart 속성을 사용할지 선택합니다. 이 설정이 활성화되면 관련 구성이 적용됩니다.
② Exec 유형: PostStart를 수행할 방법을 선택합니다. httpGet: 애플리케이션에서 제공하는 URI 정보를 통해 HTTP 응답 방법으로 PostStart와 관련된 상태 값을 확인합니다. exec: 컨테이너 시작 후 애플리케이션에서 미리 작성된 스크립트를 실행하는 등의 필요한 항목을 명령어를 작성하여 실행합니다.
③ 경로: httpGet 유형의 경우 플랫폼 접근을 위한 URI 정보를 입력합니다. SpringBoot를 사용할 때 Actuator의 HealthCheck 기능이 활용됩니다. 기본값은 /actuator/health/readiness입니다.
④ 포트: httpGet 유형의 경우 플랫폼 접근을 위한 포트 정보를 입력합니다. 기본값은 8091입니다.
⑤ 명령: exec 유형의 경우 플랫폼 접근을 위한 명령을 입력합니다.
2. PreStop Properties① PreStop (PreStop 속성 사용): PreStop 속성을 사용할지 선택합니다. 활성화되면 관련 설정이 적용됩니다.
② Exec 유형: PreStop을 수행할 방법을 선택합니다. httpGet: 애플리케이션에서 제공하는 URI 정보를 통해 HTTP 응답 방법으로 PreStop과 관련된 상태 값을 확인합니다. exec: 컨테이너 시작 후 애플리케이션에서 미리 작성된 스크립트를 실행하는 등의 필요한 작업을 명령어를 작성하여 실행합니다.
③ 경로: httpGet 유형의 경우 플랫폼 접근을 위한 URI 정보를 입력합니다. SpringBoot를 사용할 때 Actuator의 HealthCheck 기능이 활용됩니다. 기본값은 /actuator/health/liveness입니다. ④ 포트: httpGet 유형의 경우, 플랫폼 접근을 위한 포트 정보를 입력합니다. 기본값은 8091입니다.
⑤ 명령: exec 유형의 경우, 플랫폼 접근을 위한 명령을 입력합니다.
3. Graceful Shutdown Settings① 우아한 종료 (Graceful Shutdown Property Usage): 우아한 종료 속성을 사용할지 선택합니다. 활성화되면 관련 설정이 적용됩니다.
② 종료 유예 기간 초: 이 설정은 Kubernetes의 terminationGracePeriodSeconds와 관련이 있습니다. 애플리케이션의 특성에 따라 종료를 위한 추가 시간을 확보하기 위해 이 값을 조정할 수 있습니다.
애플리케이션의 서비스 안정화 설정 / 헬스 체크 (상세 수정)
이 기능은 애플리케이션의 준비 상태를 확인하고 주기적으로 상태를 검증하기 위해 플랫폼의 기본 값을 애플리케이션의 특성에 더 적합하게 적용하는 데 사용됩니다. 이 기능은 클러스터의 PodLifeCycle과 관련이 있습니다.
1. Readiness Settings① 준비 상태 (Readiness Property Usage): 준비 상태 속성을 사용할지 선택합니다. 이 설정을 활성화하면 관련 구성이 적용됩니다.
② Exec 유형: 준비 상태를 실행하는 방법을 선택합니다. httpGet: 애플리케이션에서 제공하는 URI 정보를 통해 HTTP 응답 방법으로 준비 상태와 관련된 상태 값을 확인합니다. exec: 컨테이너 시작 후 애플리케이션 내에서 미리 작성된 스크립트를 실행하는 등의 필요한 작업을 명령을 작성하여 실행합니다.
③ 경로: httpGet 유형의 경우, 플랫폼 접근을 위한 URI 정보를 입력합니다. SpringBoot를 사용하는 경우, Actuator의 HealthCheck 기능이 활용됩니다. 기본값은 /actuator/health/readiness입니다. ④ 포트: httpGet 유형의 경우 플랫폼 접근을 위한 포트 정보를 입력합니다. 기본값은 8091입니다.
⑤ 명령: exec 유형의 경우 플랫폼 접근을 위한 명령을 입력합니다.
2. Liveness Settings① 생명 상태 속성 사용: 생명 상태 속성을 사용할지 선택합니다. 이 설정을 활성화하면 관련 구성이 적용됩니다.
② exec 유형: 생명 상태를 실행하는 방법을 선택합니다. httpGet: 애플리케이션에서 제공하는 URI 정보를 통해 HTTP 응답 방법으로 생명 상태와 관련된 상태 값을 확인합니다. exec: 컨테이너 시작 후 애플리케이션에서 미리 작성된 스크립트를 실행하는 등의 필요한 작업을 명령을 작성하여 실행합니다.
③ 경로: httpGet 유형의 경우 플랫폼 접근을 위한 URI 정보를 입력합니다. SpringBoot를 사용하는 경우 Actuator의 HealthCheck 기능이 활용됩니다. 기본값은 /actuator/health/liveness입니다.
④ 포트: httpGet 유형의 경우 플랫폼 접근을 위한 포트 정보를 입력합니다. 기본값은 8091입니다.
⑤ 명령: exec 유형의 경우 플랫폼 접근을 위한 명령을 입력합니다.