12.4. Fabric8 Karaf 기능 사용
Fabric8은 Apache Karaf를 지원하여 Kubernetes용 OSGi 앱을 더 쉽게 개발할 수 있도록 지원합니다.
Fabric8의 중요한 기능은 다음과 같습니다.
- 블루프린트 XML 파일에서 자리 표시자를 해결하기 위한 다양한 전략입니다.
- 환경 변수
- 시스템 속성
- 서비스
- Kubernetes ConfigMap
- Kubernetes 시크릿
- Kubernetes 구성 맵을 사용하여 OSGi 구성 관리를 동적으로 업데이트합니다.
- OSGi 서비스에 대한 Kubernetes heath 검사를 제공합니다.
12.4.1. Fabric8 Karaf 기능 추가 링크 복사링크가 클립보드에 복사되었습니다!
이 기능을 사용하려면 프로젝트 POM 파일에 fabric8-karaf-features
종속성을 추가합니다.
절차
-
프로젝트의
pom.xml
파일을 열고fabric8-karaf-features
종속성을 추가합니다.
fabric8 karaf 기능은 Karaf 서버에 설치됩니다.
12.4.2. Fabric8 Karaf Core 번들 기능 추가 링크 복사링크가 클립보드에 복사되었습니다!
bundle fabric8-karaf-core
는 블루프린트 및 ConfigAdmin 확장에서 사용하는 기능을 제공합니다.
절차
프로젝트의
pom.xml
을 열고fabric8-karaf-core
를startupFeatures
섹션에 추가합니다.<startupFeatures> ... <feature>fabric8-karaf-core</feature> ... </startupFeatures>
<startupFeatures> ... <feature>fabric8-karaf-core</feature> ... </startupFeatures>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 그러면 사용자 지정 Karaf 배포에
fabric8-karaf-core
기능이 추가됩니다.
12.4.3. Property Placeholder 서비스 옵션 설정 링크 복사링크가 클립보드에 복사되었습니다!
bundle fabric8-karaf-core
는 다음 인터페이스로 서비스 PlaceholderResolver
를 내보냅니다.
PlaceholderResolver
서비스는 다양한 속성 자리 표시자 확인 전략에 대해 수집기 역할을 합니다. 기본적으로 제공되는 해결 전략은 표 Resolution Strategies 에 나열되어 있습니다. 속성 자리 표시자 서비스 옵션을 설정하려면 시스템 속성 또는 환경 변수 또는 둘 다를 사용할 수 있습니다.
절차
OpenShift의 ConfigMap에 액세스하려면 서비스 계정에 보기 권한이 필요합니다. 서비스 계정에 보기 권한을 추가합니다.
oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default -n $(oc project -q)
oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default -n $(oc project -q)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - API를 통해 보안에 대한 액세스가 제한될 수 있으므로 Pod에 보안을 마운트합니다.
Pod에서 볼륨 마운트로 사용 가능한 시크릿은 다음과 같이 시크릿이라는 디렉터리에 매핑됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.4.4. 사용자 정의 속성 자리 표시자 확인기 추가 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 암호화와 같은 특정 요구 사항을 지원하기 위해 사용자 지정 자리 표시자 확인자를 추가할 수 있습니다. 또한 PlaceholderResolver
서비스를 사용하여 블루프린트 및 ConfigAdmin에서 해결자를 사용할 수 있습니다.
절차
pom.xml
프로젝트에 다음 mvn 종속성을 추가합니다.pom.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PropertiesFunction 인터페이스를 구현하고 SCR을 사용하여 OSGi 서비스로 등록합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같이 구성 관리에서 해결자를 참조할 수 있습니다.
속성
my.property = $[myResolver:value-to-resolve]
my.property = $[myResolver:value-to-resolve]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.4.5. 해결 전략 목록 링크 복사링크가 클립보드에 복사되었습니다!
PlaceholderResolver
서비스는 다양한 속성 자리 표시자 확인 전략에 대해 수집기 역할을 합니다. 기본적으로 제공되는 해결 전략은 표에 나열되어 있습니다.
- 해결 전략 목록
접두사 | 예제 | 설명 |
|
| OS 환경 변수에서 속성을 조회합니다. |
`sys |
| Java JVM 시스템 속성에서 속성을 조회합니다. |
`service |
| 서비스 이름 지정 규칙을 사용하여 OS 환경 변수에서 속성을 조회합니다. |
|
| hostname 부분만 반환하는 서비스 이름 지정 규칙을 사용하여 OS 환경 변수에서 속성을 조회합니다. |
|
| 포트 부분만 반환하는 서비스 이름 지정 규칙을 사용하여 OS 환경 변수에서 속성을 조회합니다. |
|
| Kubernetes ConfigMap에서 속성 검색(API를 통해) |
|
| Kubernetes Secrets에서 속성 검색(API 또는 볼륨 마운트를 통해) |
12.4.6. Property Placeholder 서비스 옵션 목록 링크 복사링크가 클립보드에 복사되었습니다!
속성 자리 표시자 서비스는 다음 옵션을 지원합니다.
- 속성 자리 표시자 서비스 옵션 목록
이름 | 기본 | 설명 |
---|---|---|
| $[ | 자리 표시자의 접두사 |
| ] | 자리 표시자의 접미사 |
| null | 보안이 매핑되는 쉼표로 구분된 경로 목록 |
| false | API를 통해 시크릿 활성화/비활성화 |