<p>Installed Prometheus &amp; Grafana from the marketplace. Wanted to make Grafana externally accessible.</p>
<p>Created the following Service:</p>
<pre><code>apiVersion: v1
kind: Service
metadata:
  name: grafana-service
  namespace: prometheus-grafana
  annotations:
    cloud.google.com/neg: '{&quot;ingress&quot;: true}'

spec:
  type: NodePort
  externalTrafficPolicy: Cluster
  sessionAffinity: None
  selector:
    k8s-app: grafana
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 3000
</code></pre>
<p>Next, created the Ingress, looking like this:</p>
<pre><code>apiVersion: extensions/v1beta1
kind: Ingress

metadata:
  annotations:
    kubernetes.io/ingress.global-static-ip-name: &quot;my-sample-app&quot;
  name: grafana-ingress
  namespace: prometheus-grafana

spec:
  backend:
    serviceName: grafana-service
    servicePort: 80
</code></pre>
<p>After applying the Ingress (with <code>kubectl apply</code>) I went to the ingress details view in GKE web UI see the progress of creating it and that's where the error message says:</p>
<pre><code>Error during sync: error running backend syncing routine: error ensuring health check: googleapi: Error 400: Invalid value for field 'resource.timeoutSec': '30'. TimeoutSec should be less than checkIntervalSec., invalid
</code></pre>
<p>What did I do wrong and how to fix it? Is there any better, more correct way to make Grafana publicly accessible?</p>

alvarez
<p>The official document <a href="https://github.com/GoogleCloudPlatform/click-to-deploy/tree/master/k8s/prometheus#expose-the-grafana-service-externally" rel="nofollow noreferrer">here</a> suggests correct way to expose Google Prometheus Grafana Service from Market place.</p>
