몇 가지 Java 응용 프로그램에서 구성 설정과 관련하여 문제가 있습니다.kubernetes의 서비스 용 Java 응용 프로그램의 서버 구성
나는 미니 쿠 베타 버전을 사용하고 있습니다. v0.21.0 및 용 도커입니다.
나는 모든 애플 리케이션을 도킹하지만, 애플 리케이션 간의 통신 부분은 나를 괴롭히는 것이다.
나는 응용 프로그램이 server.url 옵션 (application.propertions for java)을 통해 함께 통신 할 필요가 있기 때문에이 작업을 수행하는 방법을 잘 모르겠습니다.
주 앱에는 각이라는 두 개의 서버 자바 앱의 URL을 정의해야합니다.
k8의 앱이 (가상 IP 포함) 서비스를 통해 통신한다는 것을 알고 있으며, 각 앱마다이를 수행했습니다. 내가 프런트 엔드 페이지에 도착하면 내가 크롬 콘솔을 통해, 로그인 할 때
그러나 프런트 엔드 응용 프로그램에서
( config.js) 그래서angular.module('app').constant("CONFIG", {
app1_server_URL: "http://app1:8080/app1/",
app2_server_URL: "http://app2:8095/"
});
는, 그것은에 시도 http://app1:8080/app1/으로 가야하지만 앱을 찾을 수 없다고 말하고 있습니까? DNS를 해결할 수 없다는 메시지가 app1 인 것 같습니다. Is는 DNS를 해결하지만 (브라우저를 살펴볼 때) http://app1:8080/app1/이 클러스터 외부에서 검색됩니까?
그리고 나는 이런 식으로 뭔가 보이는 내 모든 애플 리케이션을위한 서비스 할 경우 :
apiVersion: v1
kind: Service
metadata:
name: app1
labels:
app: app1
spec:
selector:
app: app1
ports:
- protocol: TCP
port: 8080
name: http
내가 URL은 다음과 같이 도달 할 수있는 자바 응용 프로그램 속성에 쓸 수 :
server.url=http://app1
을
내가 뭘 잘못하고 있는지 확신 할 수 없으므로 조언이 도움이 될 것입니다.
TNX, 톰
안녕 fiunchinho, 나는 서비스 유형 NodePort를 만들었지 만 디버깅을 위해 지워 버렸습니다. 따라서 app1_server_URL을 사용하는 대신 "http : // app1 : 8080/app1 /"app1_server_URL : "http : // myminikubeIP : 8080/app1 /"을 사용하여 제대로 작동합니까? 하지만 java 응용 프로그램 간의 클러스터 통신을 위해서는 server.url = http : // app1과 같은 구성 요소도 사용해야합니다 (app1은 다른 응용 프로그램의 서비스 임) –
정확합니다. ClusterIP에서 NodePort로 서비스를 변경하면 myminikubeIP : 8080으로 들어오는 트래픽을 허용하지만 app1과 app2 간의 통신도 평소와 같이 계속됩니다. – fiunchinho
흠, 포트 8080은 서비스 (NodePort)가 아닌 포드의 노출 된 포트이기 때문에 서비스 구성에서 targetPort를 설정하고 config.js 파일에서 하드 코드해야합니다. –