elasticsearch Kubernetes Kibana操作员故障和Nginx进入超时,elasticsearch,kubernetes,kibana,nginx-ingress,elasticsearch,Kubernetes,Kibana,Nginx Ingress" /> elasticsearch Kubernetes Kibana操作员故障和Nginx进入超时,elasticsearch,kubernetes,kibana,nginx-ingress,elasticsearch,Kubernetes,Kibana,Nginx Ingress" />

elasticsearch Kubernetes Kibana操作员故障和Nginx进入超时

elasticsearch Kubernetes Kibana操作员故障和Nginx进入超时,elasticsearch,kubernetes,kibana,nginx-ingress,elasticsearch,Kubernetes,Kibana,Nginx Ingress,我刚开始在Azure Linux虚拟机上实现Kubernetes群集。我对这一切都很陌生。群集在一个小型VM(2核16gb)上运行。我使用他们的在线教程设置了ECK堆栈,并使用Nginx入口控制器将其公开 一天的大部分时间,一切都很顺利。我可以访问Kibana仪表板,运行弹性查询,Nginx正在工作。但是大约每天都会发生一次,导致与Kibana服务匹配的Kibana端点没有任何IP地址。因此,服务无法正确路由到容器。发生这种情况时,Kibana吊舱的状态为Running,但表示0/1正在运行。它

我刚开始在Azure Linux虚拟机上实现Kubernetes群集。我对这一切都很陌生。群集在一个小型VM(2核16gb)上运行。我使用他们的在线教程设置了ECK堆栈,并使用Nginx入口控制器将其公开

一天的大部分时间,一切都很顺利。我可以访问Kibana仪表板,运行弹性查询,Nginx正在工作。但是大约每天都会发生一次,导致与Kibana服务匹配的Kibana端点没有任何IP地址。因此,服务无法正确路由到容器。发生这种情况时,Kibana吊舱的状态为Running,但表示0/1正在运行。它从不触发任何重启,因此Kibana仪表板变得不可访问。我试图通过关闭Docker容器来复制它,强制杀死pod,但无法可靠地复制它

查看Kibana吊舱上的日志,由于超时,存在大量错误。Nginx日志表明它找不到服务的端点。看起来这可能是最重要的。有人遇到过这种情况吗?有人知道一种可靠的方法来防止这种情况吗

这可能是一个单独的问题,但它导致的另一个问题是完全阻止所有Nginx入口。在日志中看不到任何新的请求,并且在收到关于找不到端点的消息后,日志将完全停止。因此,所有进入的URL通常都会超时,整个集群在外部变得不可用。这是通过删除Nginx控制器pod修复的,但pod不会自行重新启动。有人能解释为什么这样的问题会完全阻止Nginx吗?为什么Nginx吊舱无法检测到并重新启动

编辑:

Nginx日志以以下内容结束:

W1126 16:20:31.517113       6 controller.go:950] Service "default/gwam-kb-http" does not have any active Endpoint.
W1126 16:20:34.848942       6 controller.go:950] Service "default/gwam-kb-http" does not have any active Endpoint.
W1126 16:21:52.555873       6 controller.go:950] Service "default/gwam-kb-http" does not have any active Endpoint.
任何进一步的请求都会超时,并且不会出现在日志中

我没有kibana pod的日志,但它们只是kibana服务的一致超时
default/gwam kb http
(与上面的Nginx日志相同)。这导致就绪探测失败,并显示
0/1正在运行
,但未触发pod重启

当一切正常时,Kibana终止

Name:         gwam-kb-http
Namespace:    default
Labels:       common.k8s.elastic.co/type=kibana
              kibana.k8s.elastic.co/name=gwam
Annotations:  endpoints.kubernetes.io/last-change-trigger-time: 2020-11-26T16:27:20Z
Subsets:
  Addresses:          10.244.0.6
  NotReadyAddresses:  <none>
  Ports:
    Name   Port  Protocol
    ----   ----  --------
    https  5601  TCP

Events:  <none>
基巴纳:

apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
  name: gwam
spec:
  version: 7.10.0
  count: 1
  elasticsearchRef:
    name: gwam
Kibana服务的入口:

kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: nginx-ingress-secure-backend-no-rewrite
  annotations: 
    kubernetes.io/ingress.class: nginx
    nginx.org/proxy-connect-timeout: "30s"
    nginx.org/proxy-read-timeout: "20s"
    nginx.org/proxy-send-timeout: "60s"
    nginx.org/client-max-body-size: "4m"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  tls: 
  - hosts:
    - <internal company site>
    secretName: gwam-tls-secret
  rules:
    - host: <internal company site>
      http:
        paths:
          - path: /
            backend:
              serviceName: gwam-kb-http
              servicePort: 5601
种类:入口
apiVersion:extensions/v1beta1
元数据:
名称:nginx入口安全后端无需重写
注释:
kubernetes.io/ingres.class:nginx
nginx.org/proxy-connect-timeout:“30s”
nginx.org/proxy-read-timeout:“20s”
nginx.org/proxy-send-timeout:“60s”
nginx.org/client-max-body-size:“4m”
nginx.ingres.kubernetes.io/backend-protocol:“HTTPS”
规格:
tls:
-主持人:
- 
机密名称:gwam tls机密
规则:
-主持人:
http:
路径:
-路径:/
后端:
serviceName:gwam kb http
服务端口:5601
更多环境详细信息:
Kubernetes版本:1.19.3
操作系统:Ubuntu 18.04.5 LTS(GNU/Linux 5.4.0-1031-azure x86_64)

编辑2:

好像我在这里遇到了某种网络错误。我的播客中没有一个可以为kubernetes.default做dnslookup。所有网络吊舱都在运行,但在向CoreDNS添加日志后,我看到了以下情况:
[ERROR]插件/错误:2 1699910358767628111.9001703618875455268。HINFO:读取udp 10.244.0.69:35222->10.234.44.20:53:i/o超时


我用法兰绒做我的网络。考虑重新设置并切换到印花布,并根据一些答案增加nf_conntrack_max。

这对我来说是一个非常简单的错误。我认为这是一个pod或DNS问题,但只是一个一般的网络问题。我的IP转发已关闭。我用以下方法打开了它:

sysctl -w net.ipv4.ip_forward=1

并将
net.ipv4.ip_forward=1
添加到
/etc/sysctl.conf

请添加您收到的YAML清单、日志和错误。请详细说明您的环境。更改印花布是否解决了您的问题?kubectl get events中有什么有趣的内容吗?您是否配置了防火墙?您是否尝试手动重新启动此pod?
sysctl -w net.ipv4.ip_forward=1