2017-04-06 11 views
1

다음 문제를 도와주세요. 나는 내가 같은 용기에 포스트 그레스를 사용하여 영구적 인 볼륨으로,는 Kubernetes를 통해이 버전을 노출 Apiman 버전 1.2.1아피 만이 게이트웨이를 복원하지 않습니다.

FROM jboss/wildfly:9.0.2.Final 
ENV APIMAN_VERSION 1.2.1.Final 

를 사용합니다. 일단 내가 apiman에서 이것을 만든 후에, Organization/API/....와 필요한 모든 스태프를 추가했습니다.

API를 게시하기 위해 버튼을 누르고 완벽하게 작동하는지 확인할 수 있으므로 kubectl port-forward pod-name 8080:8080을 사용하고 브라우저를 통해 내 게이트웨이를 확인할 수 있습니다. http:localhost:8080/apiman-gateway/ORgId/bla/bla/bla/bla?givemedescriptionbyid=1.

포드가 다시 시작한 결과, 콘솔로 이동하여 apiman 포드를 죽인 다음 동일한 작업 kubectl port-forward new-pod-name 8080:8080을 실행하면 조직, api 및 다른 모든 스태프와 같은 apiman의 모든 데이터가 이미 있음을 알 수 있습니다.

그러나 하나의 큰 문제가 다시 게이트웨이를 호출하려고하면, 그것은 당신에게 그 이야기 :

{ "응답 코드": 500, "메시지": "API를 찾을 수 없습니다 .", "추적" "io.apiman.gateway.engine.beans.exceptions.InvalidApiException : API를 찾을 수 없습니다. \ n \ tat io.apiman.gateway.engine.impl.ApiRequestExecutorImpl $ 3.handle (ApiRequestExecutorImpl.java:278) \ n \ tat io.apiman.gateway.engine.impl.ApiRequestExecutorImpl $ 3.handle (ApiRequestExecutorImpl.java:271) \ n \ tat io.apiman.gateway.engine.impl.SecureRegistryWrapper $ 1.handle (SecureRegistryWrapper.java:122) \ n \ tat io.apiman.gateway.engine.impl.SecureRegistryWrapper $ 1.handle (SecureRegistryWrapper.java:111) \ n \ tat io.apiman.gateway.engine.es.CachingESRegistry.getApi (CachingESRegistry.java:116) \ n \ tat io.apiman.gateway.engine.impl.SecureRegistryWrapper.getApi (SecureRegistryWrapper.java:111) \ n \ tat io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.execute (ApiRequestExecutorImpl.java:270) \ n \ tat io.apiman.gateway.platforms.servlet.GatewayServlet.doAction (GatewayServlet.java:232) \ n \ tat io.apiman.gateway.platforms.servlet.GatewayServlet.doGet (GatewayServlet.java:77) \ n \ tt javax.servlet.http.HttpServlet.service (HttpServlet.java:687) \ n \ tat javax.servlet.http.HttpServlet.service (HttpServlet.java:790) \ n \ tat io.undertow.servlet. 핸들러 .ServletHandle r.handleRequest (ServletHandler.java:86) \ n \ tat io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest (ServletSecurityRoleHandler.java:62) \ n \ tat io.undertow.servlet.handlers.ServletDispatchingHandler. }}}}}}}}}}}}}} PredicateHandler.java : 43) \ n \ tat io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest (SSLInformationAssociationHandler.java:131) \ n \ tat io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest ServletAuthenticationCallHandler.java:57)\n\tat io.u (AbstractConfidentialityHandler.java:46) \ n \ tat servletsConfidentialityConstraintHandler.handleRequest (ServletConfidentialityConstraintHandler.java:64) \ 012 \ 보안.CachedAuthenticatedSessionHandler.handleRequest (CachedAuthenticatedSessionHandler.java:72) \ n \ TAT io.undertow.security.handlers.NotificationReceiverHandler.handleRequest (NotificationReceiverHandler.java:50) \ n \ TAT io.undertow.security.handlers.SecurityInitialHandler.handleRequest (SecurityInitialHandler.java:76) \n\tat io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43) \ n \ tat org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest ((PredicateHandler.java : 43) \ n \ tat io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java : 43) \ n \ tat io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest (ServletInitialHandler.java:282)\n\tat io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest (ServletInitialHandler.java:261) \ n \ 문신 io.undertow.servlet.handlers.ServletInitialHandler.access $ 000 (ServletInitialHandler.java : 80) \ n \ tat io.undertow.servlet.handlers.ServletInitialHandler $ 1.handleRequest (ServletInitialHandler.java:172) \ n \ tat io.undertow.server.Connectors.executeRootHandler (Connectors.java:199) \ n \ tat io.undertow.server.HttpServerExchange $ 1.run (HttpServerExchange.java:774) \ n \ tat java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) \ n \ tat java.util. concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) \ n \ tat java.lang.Thread.run (Thread.java:745) \ n "}

api manager에서 호출의 메트릭에 의해 모든 호출이 apiman-gateway에 도달 할 수 있지만 500 개의 응답 코드가 표시됨을 알 수 있습니다.

답변

1

누군가 이러한 오류가 발생하면 다음 단계를 수행하여 해결했습니다. 먼저 구현 된 수정 목록 인 APIMAN의 새 버전 만 사용해야합니다. 또한 apiman-gateway는 탄력적 인 검색 없이는 스스로를 복원 할 수 없습니다. 따라서 elasticsearch 구성을 제공해야합니다.