ingress/single-cluster/ingress-custom-grpc-health-check/grpc-hc-proxy.yaml (67 lines of code) (raw):
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: foo-external
annotations:
kubernetes.io/ingress.class: "gce"
spec:
rules:
- host: foo.example.com
http:
paths:
- backend:
serviceName: foo
servicePort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: foo
annotations:
cloud.google.com/backend-config: '{"ports": {"8080":"hc-backendconfig"}}'
spec:
ports:
- port: 8080
targetPort: 8080
name: http
selector:
app: foo
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: foo
spec:
replicas: 3
selector:
matchLabels:
app: foo
template:
metadata:
labels:
app: foo
spec:
containers:
- name: hc-proxy
image: docker.io/salrashid123/grpc_health_proxy:1.0.0
args: [
"--http-listen-addr=localhost:8081",
"--grpc-addr=localhost:8080",
"--service-name=echo.EchoServer",
]
ports:
- containerPort: 8081
- name: grpc-app
image: gcr.io/mygcr/myapp
ports:
- containerPort: 8080:
---
apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
name: hc-backend-config
spec:
healthCheck:
port: 8081
protocol: "HTTP"