我正在使用 initContainer 挂载 index.html 并将其挂载在 tomcat 9 服务器中。的readinessProbe
,类型:httpGet
与initalDelaySeconds:60。
没有readinessProbe,应用程序启动,我可以访问Url 并查看内容。
kubectl describe pod/<pod-->
提供以下消息
Normal Created 104s kubelet, worker1.com Created container tomcat-container
Normal Started 104s kubelet, worker1.com Started container tomcat-container
Warning Unhealthy 10s (x4 over 40s) kubelet, worker1.com Readiness probe failed: Get http://localhost:8080/temp/index.html: dial tcp [::1]:8080: connect: connection refused
Run Code Online (Sandbox Code Playgroud)
当我执行到容器并执行 curl 命令时,如果没有准备探针,我会看到响应。
Normal Created 104s kubelet, worker1.com Created container tomcat-container
Normal Started 104s kubelet, worker1.com Started container tomcat-container
Warning Unhealthy 10s (x4 over 40s) kubelet, worker1.com Readiness probe failed: Get http://localhost:8080/temp/index.html: dial tcp [::1]:8080: connect: connection refused
Run Code Online (Sandbox Code Playgroud)
尽管readinessProbe
exec: 命令有效,但 pod 已成功启动。
问题:任何输入为什么 httpGet 就绪在这种情况下不起作用。
来自容器的日志:
27-Jun-2020 22:41:17.709 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
27-Jun-2020 22:41:17.710 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
27-Jun-2020 22:41:17.710 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
27-Jun-2020 22:41:17.711 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
27-Jun-2020 22:41:17.711 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.24] using APR version [1.6.5].
27-Jun-2020 22:41:17.711 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
27-Jun-2020 22:41:17.712 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
27-Jun-2020 22:41:17.747 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1d 10 Sep 2019]
27-Jun-2020 22:41:23.913 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
27-Jun-2020 22:41:24.324 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [9,608] milliseconds
27-Jun-2020 22:41:25.112 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
27-Jun-2020 22:41:25.119 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.36]
27-Jun-2020 22:41:25.194 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/temp]
27-Jun-2020 22:41:27.980 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/temp] has finished in [2,766] ms
27-Jun-2020 22:41:28.100 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
27-Jun-2020 22:41:28.286 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [3,960] milliseconds
Run Code Online (Sandbox Code Playgroud)
小智 6
Exec 有效,因为它是在 localhost:8080 可用的容器内执行的。但是 httpGet 是由 Kubelet 执行的。因此,当主机被指定为 localhost 时,它会尝试连接到节点上的端口 8080。因此失败。
请删除探针中的“主机:本地主机”,以便它默认为 pod ip 并按预期工作。
归档时间: |
|
查看次数: |
309 次 |
最近记录: |