2017-03-29 3 views
0

mvn package fabric8:build 내가 프로 메테우스 수출에 관심이 JMX 콩을 포함 (필터링)하지 않는 /opt/agent_bond/jmx_exporter_config.xml을 포함하여 건설되고 기본 도커 이미지에 의해 만들어진 도커 이미지에 jmx_exporter_config.xml를 교체합니다.는 Fabric8 받는다는 플러그인

Fabric8 Maven 플러그인으로 빌드하는 동안 어떻게 파일을 대체 할 수 있습니까?

Docker 이미지를 처음부터 만들거나 Fabric8 플러그인 XML 설정을 사용하여 모든 것을 재정의 할 수 있다는 것을 알고 있지만 이는 기본 "Zero-config"접근 방식과 비교하여 너무 침해가 있습니다.

업데이트 : 그래서 내가 발견 한 방법입니다

src/main/fabric8-includes에 사용자 지정 jmx_exporter_config.yml 파일을 추가 한 다음 src/main/fabric8/deployment.yml으로는 Kubernetes 배포를 통해 환경 변수를 추가 할 :

spec: 
    template: 
    spec: 
     containers: 
     -env: 
      - name: AB_JMX_EXPORTER_CONFIG 
      value: /deployments/jmx_exporter_config.yml 

를 불행하게도, 도커 이미지에 이 경우에는 기본적으로 맞춤 측정 항목이 노출되지 않습니다.

스프링 부트 생성기 "제로 구성"옵션을 사용할 때 노출 된 포트를 추가 할 수 없습니다. 2

업데이트 그래서 ENV 항목에 대한 해결 방법은 작품을 좋아하고 아마 내 사용 사례에 충분하다. 내가 노출하려고했던 네 번째 포트는 스프링 부트 관리 포트 (기본값 8081)입니다. 그러나 Keblet은 Spring Boot 서비스의 Docker 이미지에서 노출되지 않아도 Kubelet이 해당 포트에 액세스 할 수 있기 때문에 Kubernetes 활성 검사를 확인하는 데 필요하지 않습니다.

+0

기본적으로 사용자 지정 메트릭이 노출되지 않는다고 말하면 에이전트가 구성 파일을 선택하지 않는다는 의미입니까? –

+0

에이전트는 fabric8 기본 이미지에서 /opt/agent-bond/jmx-exporter-config.yml을 선택합니다. 이 파일은 Camel과 관련된 것을 제외하고 모든 MBean을 필터링합니다. 이 파일을 어떻게 바꾸면됩니까? –

+0

응용 프로그램을 시작할 때 로그의 첫 행은 어떻게 생깁니 까? ('kubectl logs'로 확인하십시오) 이것은 사용 된 java 명령어를 보여줍니다. 또한'kubectl exec -it' 명령을 사용하여 파일이 실제로 있는지 확인하고 env가 설정되어 있는지 확인할 수 있습니다. –

답변

0

설명하는 방법은 현재 권장되는 방법이지만 그러한 설정 파일을 추가하는 것이 더 쉬울 것입니다. 은 "제로 설정"모드의

그렇게 (구성이 설정할 수 없습니다 그래서 제로 ;-) :

<configuration> 
    <generator> 
    <config> 
     <spring-boot> 
      <webPort>8080</webPort> 
      <!-- dont expose jolokia --> 
      <jolokiaPort>-1</jolokiaPort> 
      <prometheusPort>9999</prometheusPort> 
     </spring-boot> 
    </config> 
    </generator> 
</configuration> 

추가 포트를해야 할 경우 당신은 당신의 자원 YAML에 제공해야 할 것입니다 파편. 여기에서 사용할 수있는 옵션은 https://maven.fabric8.io/#generator-java-exec을 참조하십시오.

+0

이 사실을 이해할 수 있는지 확실하지 않습니다. 예제 config는 도커 이미지에서 fabric8에 의해 노출 된 포트에 추가 포트를 추가하는 것을 허용하지 않습니다. https://maven.fabric8.io/#resource-fragments 여기에 제안 된대로 src/main/fabric8/deployment.yml 파일을 만들려고했습니다. https://github.com/rhuss/fabric8-maven- Dockerfile에 AB_JMX_EXPORTER_CONFIG 환경 변수 집합을 가져올 수 없거나 docker 이미지에서 4 번째 포트를 노출 할 수 없었습니다. –

+1

리소스 설명자의 모든 내용은 _build_time이 아닌 _runtime_에만 적용됩니다. 따라서 Kubernetes 또는 OpenShift를 사용하지 않으면 도움이되지 않습니다. 현재는 생성자를 사용하여 빌드하는 동안 환경 변수를 설정할 수있는 방법이 없지만 항상 전용 ''구성을 추가 할 수 있습니다. 그러나 Kubernetes/OpenShift를 사용하지 않는다면, 추천 된 플러그인은 fabric8/docker-maven-plugin 인 –

+0

입니다. 그러나 을 사용하면 자동 생성기 지원이 자동으로 사라지고 모든 이미지 세부 사항을 직접 기술해야합니다 (최대 자바 커맨드 라인, jar 패키징, 파일 시스템 위치 복사 등) –

관련 문제