问题标签 [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 投票
1 回答
537 浏览

kubernetes - 在服务内重新运行 Pod 时,K8S 是否会通过健康检查自动确保 Pod 可用性?

假设我有一个带有 2 个 pod(副本)的服务。每个 pod 只包含一个容器,它是war在 Tomcat 上运行的 REST API。而且,每个 pod 都有imagePullPolicy: Always,所以当有新版本的镜像时,它会拉取它。

显然,当容器启动时,Tomcat 需要几秒钟才能启动。这将在两个容器中发生。

是否有可能在特定时间我的 REST API 不可用?我的意思是,是否有可能两个 Tomcat 都还没有启动并且请求失败?

K8S 是否在尝试重新运行另一个 Pod 之前对 Pod 使用健康检查?如果是这样,我可以针对我的 REST API 端点执行 http 健康检查。这是正确的方法吗?

提前致谢。任何建议将被认真考虑。

0 投票
2 回答
6127 浏览

kubernetes - 如何使用令牌创建 Kubernetes ServiceAccount?

我正在尝试将 --admission-control=ServiceAccount 添加到我的 kube-apiserver 调用中,以便能够托管来自 kubernetes-ui 和 apiserver 的 https 连接。我在控制器管理器上得到这个。

Mar 25 18:39:51 master kube-controller-manager[1388]: I0325 18:39:51.425556 1388 event.go:211] Event(api.ObjectReference{Kind:"ReplicaSet", Namespace:"default", Name:"nginx4-3088538572", UID:"aefae1a6-f2b8-11e5-8269-0401bd450a01", APIVersion:"extensions", ResourceVersion:"252", FieldPath:""}): type: 'Warning' reason: 'FailedCreate' Error creating: pods "nginx4-3088538572-" is forbidden: no API token found for service account default/default, retry after the token is automatically created and added to the service account

现在我的默认服务帐户看起来像这样

我正在使用令牌对 kubernetes 进行身份验证,并且整个集群在 https 上运行。

控制器经理

API服务器

.kube/配置

更新 1

根据@Jordan Liggitt 的回答,我在 apiserver 调用中添加了 --service-account-key-file=/home/core/ssl/kubelet-key.pem 但现在我得到了

0 投票
1 回答
78 浏览

docker - 尝试上传我的 kubernetes pod 时出现错误状态

我的 controller.yaml 看起来像这样:

和如下所示的服务 yaml:

我有一个 kubernetes 集群,所以我想使用这个 rc 将我的 docker 上传到集群,我这样做了:

但是当我运行命令时,我得到了一些奇怪的状态kubectl get pods

这是什么??在状态为ErrImagePull...之前

请帮忙 :)

谢谢!

0 投票
1 回答
577 浏览

amazon-web-services - 为什么我无法使用“kubectl get services”查看我所有的 kubernetes 服务

我有一个包含所有 kubernetes pod 文件夹的存储库,在每个文件夹中我有 2 个文件,假设我有一个文件夹名称“MyApp”,所以在这个文件夹中我有:

controller.yaml看起来像这样:(这是我的 rc)

service.yaml看起来像这样:

现在,我跑来kubectl get services列出我所有的服务,我得到:

为什么我没有获得我拥有的所有服务?

0 投票
3 回答
2620 浏览

amazon-web-services - 处于 CrashLoopBackOff 状态的 Kubernetes 复制控制器

我执行了以下步骤。

使用以下配置文件创建了复制控制器:

运行命令:

这是输出:

怎么了?

如何找出控制器无法正常启动的原因?

更新。

我试图将简单的“fsharp/fsharp:latest”图像更改为另一个图像,其中将有服务监听端口,这就是我想要使用容器的方式。

该映像名为“username/someservice:mytag”,并且有一个服务监听端口 3000。

我将服务运行为:

当我查看日志时,我看到:

因此,即使进程不应该退出,容器也处于相同的状态:

我还尝试使用 -i 标志从我的映像运行容器,以使容器不退出,但 kubectl 似乎无法识别 -i 标志:\

有什么想法吗?

0 投票
1 回答
488 浏览

kubernetes - 在缩减 Kubernetes 上的 pod 之前等待干净关闭

我需要减少副本控制器中的 pod 数量。但是,我需要一个干净的按比例缩小:

  • 停止在将缩小的 Pod 上发送负载
  • 等待 pod 完成处理负载
  • 删除 pod

我不希望一个 pod 在它还在做事的时候被删除。有没有办法用 Kubernetes 做到这一点?

0 投票
1 回答
489 浏览

deployment - Kubernetes 部署会导致停机

运行部署时,我会停机。请求在可变时间(20-40 秒)后失败。

当 preStop 发送 SIGUSR1,等待 31 秒,然后发送 SIGTERM 时,入口容器的就绪检查失败。在该时间范围内,应从服务中删除 pod,因为就绪检查设置为在 2 次失败尝试(以 5 秒为间隔)后失败。

如何查看从服务中添加和删除 pod 的事件以找出导致此问题的原因?

围绕准备就绪的事件会自行检查吗?

我使用 Google Container Engine 1.2.2 版并使用 GCE 的网络负载均衡器。

服务:

部署:

0 投票
0 回答
3398 浏览

docker - 如何手动安装 kubernetes dns 插件(skydns、kube2sky 麻烦)

我按照https://coreos.com/kubernetes/docs/latest/deploy-addons.html上的说明通过创建 kubedns rc 和服务来手动安装 KubeDNS。

yaml如下:

然而,在创建资源检查状态返回后:

我已将其缩小为 etcd 错误:

我不知道为什么这不起作用,并且我无法执行到容器中以手动创建文件夹,因为它不会保持运行。

更新:

用过的:

Do not have permission to write to emptyDir绕过 etcd 错误,但我仍然无法启动 dns 服务,下面是 kube-dns pod 中容器的相关日志

skydns 的日志:

kube2sky 的日志:

healthz的日志:

etcd 的日志:

更新:

能够通过在上述 dns-addon.yml 中的 env 变量中对 master 进行硬编码来领先一步

现在我得到:

更新 好的,我能够使用 fqdn 即 http:// :8080 而不是 :8080 来完成这项工作。

我可以使用busybox pod并运行:

这可行,但是我注意到一些奇怪的行为,只要我从 pod 运行 dns 就可以运行:

我收到上述错误,但是在 kube dns 已调度到的节点上运行相同的命令它可以工作:

从集群中的另一个节点进行测试,我得到与主节点相同的错误:

什么可能是错的?

0 投票
2 回答
191 浏览

kubernetes - 有没有监控k8s状态的脚本?

如果在生产系统上使用,k8s 相关服务有时可能会宕机。是否提供了可以监视和重新启动服务的脚本,或者我需要开发我的脚本并将它们添加到 crontab。

0 投票
2 回答
254 浏览

containers - Kubernetes slave 行为不一致,很少有 slave 不出现

我在 AWS 中有一个 kubernetes 主设置,由 ELB 平衡。我使用 terraform 创建了 5-6 个实例,并将其配置为 kube 从站并将 kubelet 指向 ELB。当我运行 kubectl get nodes 时,只显示 3 或 4 个实例。看起来从主节点注册失败的节点很少,但所有节点都是相同的。

它的随机行为,有时所有的奴隶都表现得很好。