我正在尝试在GCE上的Kubernetes(服务器1.6.4)中部署grafana实例。我正在使用以下清单:
部署 (完整版本):
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: grafana
spec:
replicas: 1
template:
metadata:
labels:
name: grafana
spec:
initContainers:
…
containers:
- name: grafana
image: grafana/grafana
readinessProbe:
httpGet:
path: /login
port: 3000
…
服务:
apiVersion: v1
kind: Service
metadata:
name: grafana
spec:
selector:
name: grafana
ports:
- protocol: TCP
port: 3000
type: NodePort
Ingress:apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: grafana
spec:
tls:
- secretName: grafana.example.com
backend:
serviceName: grafana
servicePort: 3000
结果发现Grafana在/
路径下提供了302响应,但默认的GCE Ingress健康检查需要/
返回200 (源代码)。可以看到,在Deployment(第22行)中有一个自定义的readinessProbe。
一旦我将这些资源发布到kube-apiserver,所有内容都会成功创建。具体来说,Ingress获得了公共IPv4地址,但健康检查仍然使用默认的/
路径,而不是在readinessProbe
中配置的自定义路径。因此,如果我curl
Ingress的公共IPv4地址,则会返回502。
问题可以通过在GCE控制台中手动更改探测路径为/login
来解决。
/api/health
的端点。 - JCotton