问题标签 [kubernetes-health-check]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1761 浏览

kubernetes - Why does Ingress fail when LoadBalancer works on GKE?

I can't get Ingress to work on GKE, owing to health check failures. I've tried all of the debugging steps I can think of, including:

  • Verified I'm not running low on any quotas
  • Verified that my service is accessible from within the cluster
  • Verified that my service works behind a k8s/GKE Load Balancer.
  • Verified that healthz checks are passing in Stackdriver logs

... I'd love any advice about how to debug or fix. Details below!


I have set up a service with type LoadBalancer on GKE. Works great via external IP:

Then I try setting up an Ingress on top of this same service:

The Ingress gets created, but it thinks the backend nodes are unhealthy:

Inspecting the state of the Ingress backend in the GKE web console, I see the same thing:

0 of 3 healthy

The health check details appear as expected:

health check details

... and from within a pod in my cluster I can call the service successfully:

And I can address the service by NodePort:

(Which goes without saying, because the Load Balancer service I set up in step 1 resulted in a web site that's working just fine.)

I also see healthz checks passing in Stackdriver logs:

enter image description here

Regarding quotas, I check and see I'm only using 3 of 30 backend services:

0 投票
3 回答
8428 浏览

kubernetes - Kubernetes - 滚动更新杀死旧 pod 而不启动新 pod

我目前正在使用 Deployments 来管理我的 K8S 集群中的 pod。

我的一些部署需要 2 个 pod/副本,有些需要 3 个 pod/副本,其中一些只需要 1 个 pod/副本。我遇到的问题是带有一个 pod/副本的问题。

我的 YAML 文件是:

我有一个运行良好的旧版本。

现在我想更新图像:

现在根据 RollingUpdate 的设计,K8S 应该在保持旧 pod 工作的同时启动新 pod,并且只有在新 pod 准备好接受流量时,旧 pod 才会被删除。但我看到的是,旧的 pod 立即被删除,新的 pod 被创建,然后开始占用流量需要时间,这意味着我必须放弃流量。

我用过maxSurge: 2&maxUnavailable: 1但这似乎不起作用。

任何想法为什么这不起作用?

0 投票
0 回答
1038 浏览

kubernetes - 跨 AZ 的 Kubernetes 脑裂/HA

Kubernetes HA 文档显示,您可以通过在负载均衡器后面设置多个实例来确保在 apiserver 发生故障的情况下的可用性。

但是,它没有涵盖如果 Kubernetes 部署在多个可用区中会发生什么。这里有一些文档,但它并没有真正进入失败场景。

这里的最佳做法是什么?您是否应该将 api-servers 固定到每个 AZ 内的实例?如果发生脑裂会发生什么?如果我有一个 pod 在一个 AZ 中运行,并且它对世界其他地方不可用,它会发生什么?

我特别想了解自定义本地安装,而不是 AWS 或 GCE。

0 投票
1 回答
493 浏览

docker - 跨数据中心的 Kubernetes 部署

是否可以将流量从在一个数据中心运行的 mysql k8s 部署故障转移到在另一个数据中心运行的部署及其存储?

如果是,我们是否需要将同一个 k8s 集群分布在多个数据中心上,或者我们必须在每个数据中心运行单独的 k8s 集群?

k8s 将如何跨数据中心运送或管理存储卷?为此,我们是否需要一种特殊类型的云存储?

注意:我只是将 mysql 作为需要存储一些数据的应用程序的示例,它可以是任何有状态的需要继承其数据量的应用程序。它不是像 mysql-HA 那样的 HA,它只是开始为应用程序提供服务,因为它是从其他地方自动连同其数据一起提供的。将数据存储到卷的任何应用程序。

我们如何使用 k8s 为跨数据中心的有状态应用程序实现 HA。

谢谢

0 投票
1 回答
1068 浏览

kubernetes - kubernetes-dashboard CrashLoopBackOff:无法读取 CA 证书:打开:没有这样的文件或目录

我刚刚根据本手册使用 kubeadm 在 CentOS7 上安装了一个单节点 kubernetes 集群,然后安装了 kubernetes-dashboard 扩展。但是 pod 状态是CrashLoopBackOff.

我检查了仪表板 docker 容器的日志,发现以下错误:

这是什么意思?

0 投票
2 回答
8744 浏览

kubernetes - 是否可以通过 HTTP 或 TCP 对 Kubernetes API 服务器进行健康检查?

我需要在 DigitalOcean 上对一组 Kubernetes API 服务器(1.7 版)进行负载均衡,但问题是 Kubernetes API 服务器似乎只支持 HTTPS,而 DigitalOcean 负载均衡器只能进行HTTP 或 TCP 健康检查

有没有办法通过 HTTP 或 TCP 对 Kubernetes API 服务器进行健康检查?

0 投票
6 回答
14822 浏览

kubernetes - 执行和初始化 kubeadm 时出错

初始化kubeadm时出现以下错误。kubeadm reset在做之前我也尝试过命令kubadm init。Kubelet 也在运行,我使用的命令是systemctl enable kubelet && systemctl start kubelet. 以下是执行 kubeadm init 后的日志

以下是输出journalctl -u kubelet

0 投票
2 回答
459 浏览

kubernetes - 如何在 Kubernetes 中获取 Kubernetes 组件指标数据?

我正在尝试获取网络输入和输出字节、磁盘读写速度等指标数据。在 kubernetes 仪表板上,我只获取内存和 CPU 数据。我什至在 kube-system 命名空间中安装了 heapster、influx db 和 grafana。当我运行命令 kubectl cluster-info 时,它显示“无法访问此站点”。因此,仪表板似乎正在运行,但其他 API 没有。还有其他方法可以获取此指标数据吗?

0 投票
1 回答
419 浏览

kubernetes - 从 Rancher 目录安装 k8s 后 kubelet 不健康

拥有三台主机来运行 Rancher 集群。

  • 牧场主:1.6.10
  • Kubernetes:1.7.7

从 master 主机上的目录安装 k8s。

设置orchestration=trueetcd=true标记两个 Rancher 代理主机。

k8s堆栈完成后,只有kubelet出错了。Unhealthy有 0 个容器。

为什么?

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
11102 浏览

kubernetes - 就绪探测失败:HTTP 探测失败,状态码:500 后退重新启动失败的容器

我使用 kubeadm 来部署我的 Kubernetes 仪表板。当我尝试使用默认服务帐户在我的 dev 命名空间中部署nginx-ingress-controller时,我遇到了liveness probe和 readiness 失败并显示状态码。

nginx-ingress-controller 图像是

我在测试命名空间中也遇到了同样的错误。在我的日志中显示

为什么我在集群范围内出现故障;我的失败在哪里?