我正在尝试在 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
入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: grafana
spec:
tls:
- secretName: grafana.example.com
backend:
serviceName: grafana
servicePort: 3000
事实证明,grafana 提供 302 开启,/
但默认 GCE 入口运行状况检查预计开启 200 /
(来源)。如您所见,Deployment中有一个自定义的readinessProbe(第 22 行)。
一旦我将这些资源发布到 kube-apiserver 上,所有内容都将被正确创建。具体来说,Ingress获得一个公共 ip4 地址,但使用默认路径设置了 healthcheck,/
而不是在readinessProbe
. 因此,如果我curl
使用 Ingress 的公共 ip4 地址,我会得到 502。
/login
该问题可以通过在 GCE 控制台中手动更改探测路径来解决。