클라이언트가 HTTP를 통해 JSON을 사용하여 선택적으로 호출 할 수있게하려는 gRPC 인터페이스가있는 서비스가 있습니다. Google Cloud Platform과 그 기능을 transcode the HTTP request into a gRPC request에 사용하기로 결정했습니다. 나는 Hello GRPC Java Example으로 시작하기로 결정했습니다. 내가 배포 같은 ESP와 백엔드 서비스를 곱슬 곱슬하려고 할 때, 그러나Kubernetes 백엔드로 Google 클라우드 ESP gRPC 트랜스 코딩
docker run --detach --name=esp \
--publish=8000:8000 \
--publish=9000:9000 \
--link=grpc-hello:grpc-hello \
--service hellogrpc.endpoints.skypo-llc.cloud.goog \
--version 2017-11-30r1 \
--http_port=8000 \
--http2_port=9000 \
--backend=grpc://grpc-hello:50051
gcr.io/endpoints-release/endpoints-runtime:1
: 나는 성공적 백엔드는 다음 도커 실행 명령으로 구글 컴퓨 트 엔진 인스턴스에 도커를 통해 실행하는 응답을 얻을 수 있었다
apiVersion: v1
kind: Service
metadata:
name: grpc-hello
spec:
ports:
- port: 80
targetPort: 9000
protocol: TCP
name: http
selector:
app: grpc-hello
type: LoadBalancer
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: grpc-hello
spec:
replicas: 1
template:
metadata:
labels:
app: grpc-hello
spec:
containers:
- name: esp
image: gcr.io/endpoints-release/endpoints-runtime:1
args: [
"--http_port", "8000",
"--http2_port", "9000",
"--backend", "grpc://127.0.0.1:50051",
"--service", "hellogrpc.endpoints.skypo-llc.cloud.goog",
"--version", "2017-12-22r0",
]
ports:
- containerPort: 9000
containerPort: 8000
- name: java-grpc-hello
image: gcr.io/skypo-llc/java-grpc-hello:1.0
ports:
- containerPort: 50051
그리고 내 Dockerfile :
여기$ curl -v -d '{"name":"message"}'
http://helloservice.com:8000/helloworld.Greeter/SayHello?key=REDACTED
.....
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
* Failed writing body (0 != 57)
* stopped the pause stream!
* Closing connection 0
내는 Kubernetes의 설정이다는 Kubernetes, 나는 바이너리 포트 8000에 출력 또는 포트 9000에 타임 아웃 하나를 얻을 :이 솔루션은는 Kubernetes 서비스 섹션에 포트 8000을 추가
FROM gcr.io/google_appengine/openjdk8
RUN apt-get update \
&& apt-get -y -q upgrade \
&& rm -rf /var/lib/apt/lists/*
ADD ./server/build/libs/server.jar /hello/server.jar
EXPOSE 8000
EXPOSE 9000
ENTRYPOINT ["java", "-jar", "/hello/server.jar"]
지침 Kubernetes의 Endpoints] (https://cloud.google.com/endpoints/docs/openapi/get-started-kubernetes)는 Kubernetes에서 서비스 및 ESP를 배포하는 것과 관련된 문제를 진단하는 데 도움이 될 수 있습니다. – ltang
@ltang 유용한 링크였습니다. – frank