A simple gRPC server written in Go that you can use for testing.
This sample is dependent on this issue to be complete.
- Install Knative
- Install docker
Build and run the gRPC server. This command will build the server and use kubectl
to apply the configuration.
REPO="gcr.io/<your-project-here>"
# Build and publish the container, run from the root directory.
docker build \
--build-arg SAMPLE=grpc-ping \
--build-arg BUILDTAG=grpcping \
--tag "${REPO}/sample/grpc-ping" \
--file=sample/grpc-ping/Dockerfile .
docker push "${REPO}/sample/grpc-ping"
# Replace the image reference with our published image.
perl -pi -e "s@github.com/knative/serving/sample/grpc-ping@${REPO}/sample/grpc-ping@g" sample/grpc-ping/*.yaml
# Deploy the Knative sample
kubectl apply -f sample/grpc-ping/sample.yaml
- Fetch the created ingress hostname and IP.
# Put the Ingress Host name into an environment variable.
export SERVICE_HOST=`kubectl get route grpc-ping -o jsonpath="{.status.domain}"`
# Put the Ingress IP into an environment variable.
export SERVICE_IP=`kubectl get svc knative-ingressgateway -n istio-system -o jsonpath="{.status.loadBalancer.ingress[*].ip}"`
- Use the client to send message streams to the gRPC server
go run -tags=grpcping sample/grpc-ping/client/client.go -server_addr="$SERVICE_IP:80" -server_host_override="$SERVICE_HOST"