mirror of https://github.com/knative/docs.git
I was trying to connect to my grpc service at a custom domain like `grpc-ping.default.IP.IP.IP.IP.xip.io` while omitting -server_host_override and it resulted in bug https://github.com/knative/serving/issues/3307 which took several days to figure out there was a default value for this flag. Removing the default value as nobody's really owning grpc.knative.dev or setting it as the custom domain in this sample. Signed-off-by: Ahmet Alp Balkan <ahmetb@google.com> |
||
|---|---|---|
| .. | ||
| client | ||
| proto | ||
| Dockerfile | ||
| README.md | ||
| grpc-ping.go | ||
| sample.yaml | ||
README.md
gRPC Ping
A simple gRPC server written in Go that you can use for testing.
This sample requires knative/serving 0.4 or later.
Prerequisites
- Install Knative
- Install docker
Build and run the gRPC server
First, build and publish the gRPC server to DockerHub (replacing {username}):
# Build and publish the container, run from the root directory.
docker build \
--tag "docker.io/{username}/grpc-ping-go" \
--file=serving/samples/grpc-ping-go/Dockerfile .
docker push "docker.io/{username}/grpc-ping-go"
Next, replace {username} in sample.yaml with your DockerHub username, and
apply the yaml.
kubectl apply --filename serving/samples/grpc-ping-go/sample.yaml
Use the client to stream messages to the gRPC server
- Fetch the created ingress hostname and IP.
# Put the Host name into an environment variable.
export SERVICE_HOST=`kubectl get route grpc-ping --output jsonpath="{.status.domain}"`
# Put the ingress IP into an environment variable.
export SERVICE_IP=`kubectl get svc istio-ingressgateway --namespace istio-system --output jsonpath="{.status.loadBalancer.ingress[*].ip}"`
- Use the client to send message streams to the gRPC server (replacing
{username})
docker run -ti --entrypoint=/client docker.io/{username}/grpc-ping-go \
-server_addr="${SERVICE_IP}:80" \
-server_host_override="${SERVICE_HOST}" \
-insecure