조쉬 :
우리는 Kubernetes에 배포 스프링 부팅 응용 프로그램이 있습니다. 우리는이 응용 프로그램에 국제화 기능을 추가하고 응용 프로그램 항아리 / 전쟁 외부 messages.properties 파일을 배치 할 수 있습니다. 나는 봄 부팅에 그렇게 할 수 있었다. 어떻게이 일을 할 때 내가는 Kubernetes에 배포 할 것인가? 나는 configmaps를 사용해야합니까? 다음은 코드입니다
@Configuration
public class AppConfig {
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
//Path to the messages.properties files
messageSource.setBasenames("file:/messages/messages", "classpath:messages");
messageSource.setDefaultEncoding("UTF-8");
messageSource.setCacheSeconds(60);
return messageSource;
}
}
라이언 도슨 :
예는 ConfigMap 형이 작업을 수행 할 수 있습니다. 그것은 많은 외부 application.properties 파일을 액세스하는 것과 동일합니다. 첫째로 당신은 할 수 있습니다 파일에서 직접 ConfigMap 형을 만들 거나 만들 파일을 나타내는 ConfigMap 형을 :
apiVersion: v1
kind: ConfigMap
metadata:
name: treasurehunt-config
namespace: default
data:
application.properties: |
treasurehunt.max.attempts=5
그런 다음는 Kubernetes에 배포 당신은 만들 ConfigMap 형의 볼륨을 하고 당신이 외부 구성에 사용하는 디렉토리 아래에 포드에 그 마운트 :
volumeMounts:
- name: application-config
mountPath: "/config"
readOnly: true
volumes:
- name: application-config
configMap:
name: treasurehunt-config
items:
- key: application.properties
path: application.properties
이 조각은에서 온 ConfigMap 형에서 볼륨을 장착의 예 들은 봄 부팅 사용 있도록 application.properties 파일에 대한 기본 외부 속성 파일 경로 의를 /config
. 당신은 수 (가) 마운트의 YAML에 그 설정 이는 Kubernetes 외부에서 실행했을 때 이미 사용하고있는 것과 같은 상대 경로를 사용하는 파일을 탑재 할 수 있도록.