- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Kubernetes 集群上的 Docker 镜像中的 Tomcat 上运行 Java 网络应用程序。服务运行良好,我正在尝试设置活跃度和就绪度探测。
我还没有找到关于 Tomcat 和 Kubernetes 具体最佳实践的文档,但我考虑了在 documentation 之后的 HTTP GET 请求。像这样合适:
livenessProbe:
failureThreshold: 3
httpGet:
path: /
port: 8080
scheme: HTTP
initialDelaySeconds: 20
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 3
当访问 Tomcat 基本 URL 时,它返回一个欢迎页面和代码 200 -- OK
。然而,liveness probe 失败了,这是在 pod 描述中:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 3m default-scheduler Successfully assigned xxxxx-service-7f8f76988-lkxdf to kube-03
Normal SuccessfulMountVolume 3m kubelet, kube-03 MountVolume.SetUp succeeded for volume "default-token-b6tps"
Normal Created 1m (x3 over 3m) kubelet, kube-03 Created container
Normal Started 1m (x3 over 3m) kubelet, kube-03 Started container
Warning Unhealthy 42s (x7 over 3m) kubelet, kube-03 Liveness probe failed: Get http://10.233.96.19:8080/: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
Normal Pulling 40s (x4 over 3m) kubelet, kube-03 pulling image "xxxxx:4999/xxxxx/xxxxxservice:v1.3.0"
Normal Pulled 40s (x4 over 3m) kubelet, kube-03 Successfully pulled image "xxxxx:4999/xxxxx/xxxxxservice:v1.3.0"
Normal Killing 40s (x3 over 2m) kubelet, kube-03 Killing container with id docker://xxxxx-service:Container failed liveness probe.. Container will be killed and recreated.
以相同方式设置就绪探测器时也是如此。但是,当我停用探测器时,服务运行良好。我可以使用 /
访问 Tomcat 欢迎页面,也可以访问实际的 webapp。
因此,我的问题是:我应该如何为 Tomcat 网络应用程序正确设置 Kubernetes active /就绪探测?为什么简单的 HTTP GET
方法会失败?
相关问题似乎是由于启动时间长于 initialDelaySeconds
参数中设置的时间(例如 this ),正如错误消息所示。然而,在这种情况下,Tomcat 和 webapp 确实在几秒钟后就可以访问了,因此启动时间不是这里的问题。
以下是部署规范:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: xxxxx-service
namespace: xxxxx
spec:
replicas: 1
template:
metadata:
labels:
app: xxxxx-service
spec:
imagePullSecrets:
- name: regsecret
containers:
- image: xxxxxservice:v1.3.0
imagePullPolicy: Always
name: xxxxx-service
ports:
- containerPort: 8080
protocol: TCP
resources:
limits:
cpu: "0.2"
memory: 4Gi
最佳答案
我遇到了同样的问题。经过一段时间的调查,我发现我的应用程序中的 tomcat 服务器需要大约 35 秒才能启动。因此,我将 initialDelaySeconds 更改为大于 35 秒。我还将超时秒数增加到 10 秒,将 periods_second 增加到 10 秒。然后 Kubernetes 探测器完美运行。
关于tomcat - Kubernetes 探测器在 Tomcat 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49770036/
谁能告诉我如何列出系统中当前事件的 systemtap 探测器? 我想可能有来自“/proc”的一些信息。 最佳答案 sysfs 有一个事件探测器的注册表: cat /sys/kernel/debug
希望了解 kubenetes 使用 3 种类型的探测器(启动、就绪和运行)检查 pod 的顺序。 如何正确理解或设计这 3 个探头以用于正常应用?如果启动探测器有错误条目,发生冲突或破坏应用程序的可能
我正在运行一个经常“崩溃”的电子商务网站。通常,我会看到大量打开的 session (正常情况下为 600-900,崩溃时为 5000-20000)。我想确定这些 session 的来源。 我正在尝试
在 Mac OS X 上,我可以通过运行找到运行 Java 程序的 HotSpot 探针: cody.mello@ashur ~ (1) % sudo dtrace -ln 'hotspot*:::'
我是一名优秀的程序员,十分优秀!