【发布时间】:2021-03-18 12:33:17
【问题描述】:
我试图在 GCE 入口后面公开 Kibana,但入口将 kibana 服务报告为 UNHEALTHY,而它是 healthy and ready。请注意,Ingress 创建的健康检查仍然使用根 / 和 Port 上的默认值 HTTP:ex:32021。
将 GCP 控制台中的运行状况检查更改为 /login 和 /login 上的 Port: 5601 不会改变任何内容,并且该服务仍报告为 Unhealthy。健康检查端口也被覆盖为原始值,这很奇怪。
我正在使用ECK 1.3.1,以下是我的配置。我错过了什么吗?提前谢谢你。
apiVersion: elasticsearch.k8s.elastic.co/v1beta1
kind: Elasticsearch
metadata:
name: d3m0
spec:
version: 7.10.1
nodeSets:
- name: default
count: 1
config:
node.store.allow_mmap: false
---
apiVersion: kibana.k8s.elastic.co/v1beta1
kind: Kibana
metadata:
name: d3m0
spec:
version: 7.10.1
count: 1
elasticsearchRef:
name: d3m0
podTemplate:
metadata:
labels:
kibana: node
spec:
containers:
- name: kibana
resources:
limits:
memory: 1Gi
cpu: 1
readinessProbe:
httpGet:
scheme: HTTPS
path: "/login"
port: 5601
http:
service:
spec:
type: NodePort
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: kibana-ingress
spec:
backend:
serviceName: d3m0-kb-http
servicePort: 5601
【问题讨论】:
-
HTTP 期望 200 OK 响应,如果有类似 301 的重定向将被标记为不健康。如果把HC改成TCP,能用吗?
-
嗨@ArnauSenserrich,感谢您的评论。在这里,Ingress 后端服务只能接收来自健康检查问题的 HTTPS 流量,因为它们完全按照 ECK 的最佳安全实践进行配置。正如here 所解释的,入口的默认健康检查是在自动失败的节点端口上使用 HTTP。我现在设法进行了工作修复。完成所有设置后,我将发布一个完整的功能示例。
标签: elasticsearch kibana google-kubernetes-engine kubernetes-ingress elastic-cloud