【问题标题】:Readiness/Liveness probe failed. Killing pod就绪/活跃度探测失败。杀戮荚
【发布时间】:2017-06-19 19:59:34
【问题描述】:

我正在尝试在线使用 Openshift 从我的存储库中放置一些代码。 我的构建编译正常,但部署失败:

error: update acceptor rejected nodejs-mongo-persistent-7: pods for rc "nodejs-mongo-persistent-7" took longer than 600 seconds to become ready

查看事件监视器,我看到以下错误:

Liveness probe failed: Get http://10.129.127.123:8080/pagecount: dial tcp 10.129.127.123:8080: getsockopt: connection refused
Readiness probe failed: Get http://10.129.127.123:8080/pagecount: dial tcp 10.129.127.123:8080: getsockopt: connection refused

这个错误发生了大约 50 次,直到一切都超时并且我的 pod 被杀死。

我不是真正的服务器专家,以前从未使用过环境,所以我只是不了解大多数帮助资源。

这是事件日志的屏幕截图: http://imgur.com/a/yv3fA

From : $ sudo docker pull registry/nodejs-mongo-persistent:latest

architecture=x86_64
authoritative-source-url=registry.access.redhat.com
build-date=2017-04-21T09:41:19.146364
com.redhat.build-host=ip-10-29-120-133.ec2.internal
com.redhat.component=rh-nodejs4-docker
com.redhat.deployments-dir=/opt/app-root/src
com.redhat.dev-mode=DEV_MODE:false
com.redhat.dev-mode.port=DEBUG_PORT:5858
distribution-scope=public
io.k8s.description=Platform for building and running Node.js 4 applications
io.k8s.display-name=springstead-portfolio/nodejs-mongo-persistent-8:ff0aacc1
io.openshift.build.commit.author=Shawn Springstead <stang90@gmail.com>
io.openshift.build.commit.date=Mon Jun 19 15:35:17 2017 -0400
io.openshift.build.commit.id=409c93610f0b2b264c84429106dc8bbcf0f3fee0
io.openshift.build.commit.message=correct server info
io.openshift.build.commit.ref=master
io.openshift.build.image=registry.access.redhat.com/rhscl/nodejs-4-rhel7@sha256:c5b21dc08cf5da8b6b0485147d946d8202f2be211c17bcef3a0fc26570217dd3
io.openshift.build.source-location=https://github.com/SpringsTea/Big-Mac-Index
io.openshift.expose-services=8080:http
io.openshift.s2i.scripts-url=image:///usr/libexec/s2i
io.openshift.tags=builder,nodejs,nodejs4
io.s2i.scripts-url=image:///usr/libexec/s2i
release=11.16
summary=Platform for building and running Node.js 4 applications
vcs-ref=e688e26c75b1418982bef6a87b9bbacd6d47604c
vcs-type=git
vendor=Red Hat, Inc.
version=4

【问题讨论】:

  • 你能发布你的规范文件吗?
  • 对不起,我不知道那是什么意思。
  • 你需要去失败的 pod 并获取 pod 的实际定义,manifest。您还可以尝试获取部署的定义,该定义将为创建 pod 提供模板。至于 OpenShift,我对如何做到这一点不是很熟悉。
  • 我添加了我认为您要求的内容。需要指出的是,Openshift online 是一种远程托管服务。我给了它我的回购并单击了几个按钮。它应该可以工作。
  • shell中oc debug dc/nodejs-mongo-persistent的输出是什么curl -v http://IP-of-pod:8080/pagecount

标签: openshift kubernetes


【解决方案1】:

首先,您的 Pod 公开了 Liveness 和 Readiness 探测所需的端口,这是在 Pod 配置中完成的。

Liveness 探测由 kubelet 执行,因此所有请求都在 kubelet 网络命名空间中进行。

确保不在服务端口上运行探测,而是在本地端口上运行。

【讨论】:

  • 什么是“servicePort”?例如,我的 pod 是一个 Java Play 应用程序,因此它在 Kubernetes 中配置了以下端口: port : 443 targetPort : 9000 nodePort : 32405
猜你喜欢
  • 2021-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-01
  • 2023-03-11
相关资源
最近更新 更多