• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Config Server 설정파일 관리방법 질문

21.07.27 04:38 작성 조회수 370

1

안녕하세요. 선생님

Spring Cloud Config Server 의 설정파일 관리에 대해 문의드립니다.

Config Server 의 설정값도 변경이 필요한 항목들이 있어보입니다. RabbitMQ 브로커의 주소라던가, Https 사용시 KeyStore 의 위치 라던가, 몇가지 항목이 수정될때, Config Server 도 그 값을 적용할 수 있을까 고민이 됩니다.

제가 확인한 항목은 Remote Repository 에 application.yaml 항목을 만들면 Config Server 도 actuator/metrix 확인 시 propertySources 로 읽어 오는 것을 확인했습니다. 다만 해당값들이 적용은 되지 않았습니다. 오케스트레이션에서 ENV 값을 바꾸어서 롤링업데이트를 수행해도 되겠지만, Config Server 자체에서 Uptime 으로 자체 설정값 변경내용을 적용하고 싶습니다.

답변 2

·

답변을 작성해보세요.

3

Jack님의 프로필

Jack

질문자

2021.08.17

선생님 방법 찾았습니다 !

말씀하신 내용도 해보고 있는데, 제가 설정한 방법은 bootstrap 을 사용했습니다.

# bootstrap.yaml
spring:
  application:
    nameconfig-manager
  profiles:
    active:
    - dev
  cloud:
    config:
      server:
        git:
          urigithub
          force-pulltrue
        encrypt:
          enabledfalse
        bootstraptrue
encrypt:
  key-store:
    alias: EncryptionKey
    locationfile:///${user.home}/encrtypt.jks
    password: password

<!-- INFO: Config [Bootstrap] -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.0.3</version>
        </dependency>

bootstrap.yaml 을 사용하고, cloud.config.server.bootstrap 을 `true` 로 설정했습니다.

Flag indicating that the config server should initialize its own Environment with properties from the remote repository. Off by default because it delays startup but can be useful when embedding the server in another application.

busrefresh 테스트는 uptime 상태에서 config server 의 `/actuator/env` 로 변경되는 설정을 확인했습니다.

1

안녕하세요, 이도원입니다.

Spring Cloud Config Server의 역할은 다른 서비스나 애플리케이션에서 사용할 수 있는 설정 정보를 관리하고 공유하는 역할을 합니다. Spring Cloud Config Server 자체의 설정을 동적으로 할당하기 위해서는 외부에 있는 서비스와의 연동을 하거나 실행시 동적 파라미터를 전달하는 방법으로 사용하셔야 할 것 같습니다. 아니면, 마이크로서비스 애플리케이션에서 Config Server 자체의 정보가 갱신된 것을 인지하기 위해 재부팅 되어야 할 수도 있습니다. 

추가로, Kubernetes에서 Spring Cloud 애플리케이션들을 관리한다고 가정했을 때에도, K8s의 ConfigMap, Secret을 사용해서 Config Server의 역할을 대신하거나, Istios나 Consul과 같은 Service Mesh에서 제공되는 Configuration 기능 또는 Vault나 AWS Parameter Store 등을 사용하실 수도 있을 것 같습니다. 

참고 하시기 바랍니다. 

감사합니다.