gRPC ¶
This example demonstrates how to route traffic to a gRPC service through the Ingress-NGINX controller.
Prerequisites ¶
- You have a kubernetes cluster running.
- You have a domain name such as
example.com
that is configured to route traffic to the Ingress-NGINX controller. - You have the ingress-nginx-controller installed as per docs.
- You have a backend application running a gRPC server listening for TCP traffic. If you want, you can use https://github.com/grpc/grpc-go/blob/91e0aeb192456225adf27966d04ada4cf8599915/examples/features/reflection/server/main.go as an example.
- You're also responsible for provisioning an SSL certificate for the ingress. So you need to have a valid SSL certificate, deployed as a Kubernetes secret of type
tls
, in the same namespace as the gRPC application.
Step 1: Create a Kubernetes Deployment
for gRPC app ¶
- Make sure your gRPC application pod is running and listening for connections. For example you can try a kubectl command like this below:
$ kubectl get po -A -o wide | grep go-grpc-greeter-server -
-
If you have a gRPC app deployed in your cluster, then skip further notes in this Step 1, and continue from Step 2 below.
-
As an example gRPC application, we can use this app https://github.com/grpc/grpc-go/blob/91e0aeb192456225adf27966d04ada4cf8599915/examples/features/reflection/server/main.go.
-
To create a container image for this app, you can use this Dockerfile.
-
If you use the Dockerfile mentioned above, to create a image, then you can use the following example Kubernetes manifest to create a deployment resource that uses that image. If necessary edit this manifest to suit your needs.
cat <<EOF | kubectl apply -f -
+
If you have a gRPC app deployed in your cluster, then skip further notes in this Step 1, and continue from Step 2 below.
As an example gRPC application, we can use this app https://github.com/grpc/grpc-go/blob/91e0aeb192456225adf27966d04ada4cf8599915/examples/features/reflection/server/main.go.
To create a container image for this app, you can use this Dockerfile.
If you use the Dockerfile mentioned above, to create a image, then you can use the following example Kubernetes manifest to create a deployment resource that uses that image. If necessary edit this manifest to suit your needs.
cat <<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
diff --git a/sitemap.xml b/sitemap.xml
index 6455fbdee..44dfe3f2b 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1,223 +1,223 @@
https://kubernetes.github.io/ingress-nginx/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/how-it-works/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/troubleshooting/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/kubectl-plugin/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/deploy/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/deploy/baremetal/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/deploy/rbac/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/deploy/upgrade/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/deploy/hardening-guide/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/basic-usage/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/custom-template/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/log-format/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/cli-arguments/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/custom-errors/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/default-backend/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/fcgi-services/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/ingress-path-matching/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/external-articles/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/monitoring/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/tls/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/third-party-addons/modsecurity/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/third-party-addons/opentracing/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/user-guide/third-party-addons/opentelemetry/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/PREREQUISITES/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/auth/basic/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/auth/client-certs/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/auth/external-auth/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/auth/oauth-external-auth/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/customization/configuration-snippets/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/customization/custom-configuration/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/customization/custom-errors/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/customization/custom-headers/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/customization/external-auth-headers/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/customization/ssl-dh-param/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/customization/sysctl/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/docker-registry/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/grpc/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/multi-tls/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/rewrite/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/static-ip/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/tls-termination/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/psp/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/openpolicyagent/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/examples/canary/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/developer-guide/getting-started/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/developer-guide/code-overview/
- 2023-06-13
+ 2023-06-15
daily
https://kubernetes.github.io/ingress-nginx/faq/
- 2023-06-13
+ 2023-06-15
daily
\ No newline at end of file
diff --git a/sitemap.xml.gz b/sitemap.xml.gz
index a29a9fc6f..d6c7f65b3 100644
Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ