我在Kubernetes集群的Docker映像中运行Tomcat上的Java webapp。服务运行良好,我正试图设置活跃度和准备度探测器。
我没有找到关于最佳实践wrt、Tomcat和Kubernetes的具体文档,但我认为文档后面的HTTP GET请求是合适的,如下所示:
livenessProbe:
failureThreshold: 3
httpGet:
path: /
port: 8080
scheme: HTTP
initialDelaySeconds: 20
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 3
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.
相关问题似乎是由于启动时间长于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探测器随后完美地工作了。
在上使用helm upgrade命令运行容器时,出现了以下错误: “准备探测失败:获取http://172.17.0.6:3003/:拨号tcp 172.17.0.6:3003:GetSockopt:连接拒绝”。
我正在尝试设置我的第一个Kubernetes集群,它似乎已经设置好,直到nginx-ingress控制器。以下是我的集群信息:节点:三个RHEL7和一个RHEL8节点,主服务器运行在RHEL7Kubernetes服务器版本:1.19.1网络使用:Frannel coredns运行良好。在所有节点上禁用selinux和防火墙 然后,我按照以下页面中的说明安装了nginx入口控制器:https://d
我使用的是标准的skydns RC/SVC YAMLS。 吊舱描述: (etcd) 我还将放入kube2sky容器中,ca.crt与服务器上的ca.crt匹配。
有没有一种方法可以让fluentd船LivenessProbes输出像它对普通容器在吊舱中的输出一样?
正在读取此文档https://docs.spring.io/spring-cloud-dataflow/docs/2.0.2.release/reference/htmlsingle/#_application_and_server_properties deployer.appname.kubernetes.probecredentialssecret=myprobesecret 但是,如果只使
我试图在Azure中新部署的aks Kuberbetes(1.9.6)集群中部署zalenium helm chart。但我不让它起作用。豆荚给出了下面的日志: 描述pod给出:警告不健康4M(x12超过6M)kubelet,aks-agentpool-93668098-0就绪探测失败:HTTP探测失败,状态代码:502 Zalenium图像版本:Dosel/Zalenium:3 如果使用Kube