實際上都是envoy 的功勞java
基本環境安裝參考相關文檔便可git
syntax = "proto3"; option java_multiple_files = true; option java_package = "io.grpc.examples.helloworld"; option java_outer_classname = "HelloWorldProto"; package helloworld; // The greeting service definition. service Greeter { // Sends a greeting rpc SayHello (HelloRequest) returns (HelloReply) {} } // The request message containing the user's name. message HelloRequest { string name = 1; } // The response message containing the greetings message HelloReply { string message = 1; }curl -v -H "x-ambassador-test-allow: probably" http://localhost:32190//qotm/quote/1
--- apiVersion: v1 kind: Service metadata: labels: service: grpc-greet name: grpc-greet annotations: getambassador.io/config: | --- apiVersion: ambassador/v0 kind: Mapping name: grpc_mapping grpc: true prefix: /helloworld.Greeter/ rewrite: /helloworld.Greeter/ service: grpc-greet spec: type: ClusterIP ports: - port: 80 name: grpc-greet targetPort: grpc-api selector: service: grpc-greet --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: grpc-greet spec: replicas: 1 template: metadata: labels: service: grpc-greet spec: containers: - name: grpc-greet image: enm10k/grpc-hello-world ports: - name: grpc-api containerPort: 9999 env: - name: PORT value: "9999" command: - greeter_server restartPolicy: Always kubectl apply -f demo-grpc.yaml
部署狀態
github
docker run -e ADDRESS=10.6.245.140:32190 enm10k/grpc-hello-world greeter_client
測試結果
docker
https://www.getambassador.io/user-guide/grpc
https://github.com/rongfengliang/ambassador-learningapi