kubesphere问题处理:devops

一、背景介绍

kubesphere打开devops功能的时候devops-jenkins的pod一直创建不成功。

kubectl describe 提示

bash 复制代码
Readiness probe failed: Get "http://10.233.93.28:8080/login": dial tcp 10.233.93.28:8080: connect: connection refused

二、问题解决

使用论坛中提供的方法。

https://ask.kubesphere.io/forum/d/7224-kubesphere-devops-jenkins-pod/3

问题出现的原因是部署中设置了容器活跃探针和容器准备探针。第一次pod启动的时候准备某些资源需要时间,但是探针提前检测了,然后重启了容器。

先删除探针,重启pod,确定服务启动的需要的时间,根据时间来设置探针首次运行的时间。

我的jenkins因为未知原因网页相应特别慢所以要额外设置get探测请求的响应等待时间

yaml 复制代码
          readinessProbe:
            httpGet:
              path: /login
              port: http
              scheme: HTTP
            initialDelaySeconds: 38
            timeoutSeconds: 2
            periodSeconds: 2
            successThreshold: 1
            failureThreshold: 12
						
						livenessProbe:
            httpGet:
              path: /login
              port: http
              scheme: HTTP
            initialDelaySeconds: 90
            timeoutSeconds: 5
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 12
						

在 Kubernetes 中,livenessProbe 和 readinessProbe 用于检测 Pod 的健康状况和就绪状态。它们是配置在 Pod 的容器上的探针。以下是你提供的配置参数的解释:

livenessProbe

livenessProbe 用于判断容器是否还在运行。如果探测失败,Kubernetes 会重启容器。这个配置可以帮助自动恢复进入不健康状态的容器。

复制代码
httpGet: 通过 HTTP GET 请求进行探测。
    path: /login: 请求的路径为 /login。
    port: http: 使用名为 http 的端口。需要确保容器的端口映射中定义了该端口。
    scheme: HTTP: 使用 HTTP 协议。
initialDelaySeconds: 400: 容器启动后等待 400 秒再开始进行探测。这给容器足够的时间进行启动和初始化。
timeoutSeconds: 5: 探测的超时时间为 5 秒。如果在 5 秒内没有响应,探测将被视为失败。
periodSeconds: 10: 每 10 秒进行一次探测。
successThreshold: 1: 探测成功的最小次数。这里表示一次成功就认为容器是活跃的。
failureThreshold: 12: 探测失败的最大次数。如果连续 12 次探测失败,Kubernetes 会认为容器不健康,并重新启动容器。

readinessProbe

readinessProbe 用于判断容器是否已经准备好接受流量。如果探测失败,Kubernetes 会从服务的端点列表中移除该容器。这有助于确保只有就绪的容器才接收请求。

复制代码
httpGet: 通过 HTTP GET 请求进行探测。
    path: /login: 请求的路径为 /login。
    port: http: 使用名为 http 的端口。需要确保容器的端口映射中定义了该端口。
    scheme: HTTP: 使用 HTTP 协议。
initialDelaySeconds: 300: 容器启动后等待 300 秒再开始进行探测。这给容器足够的时间进行启动和初始化。
timeoutSeconds: 2: 探测的超时时间为 2 秒。如果在 2 秒内没有响应,探测将被视为失败。
periodSeconds: 2: 每 2 秒进行一次探测。
successThreshold: 1: 探测成功的最小次数。这里表示一次成功就认为容器是就绪的。
failureThreshold: 12: 探测失败的最大次数。如果连续 12 次探测失败,Kubernetes 会认为容器未就绪,并将其从服务的端点列表中移除。

总结

livenessProbe 用于确保容器正在运行,如果连续 12 次探测失败,容器会被重启。

readinessProbe 用于确保容器已经准备好接受流量,如果连续 12 次探测失败,容器会被从服务的端点列表中移除。

两个探针都通过 HTTP GET 请求 /login 路径来进行探测,并且使用名为 http 的端口和 HTTP 协议。

配置探针的这些参数可以根据容器的启动时间和健康检查需求进行调整,以确保容器的高可用性和可靠性。

相关推荐
TG:@yunlaoda360 云老大4 分钟前
如何将外部镜像文件导入华为云国际站代理商的IMS服务?
linux·运维·华为云
珠海西格电力20 分钟前
零碳园区边缘计算节点规划:数字底座的硬件部署与能耗控制方案
运维·人工智能·物联网·能源·边缘计算
Henry Zhu12320 分钟前
VPP中ACL源码详解第六篇:多核和性能优化实现以及调试与观测
运维·网络·网络协议·计算机网络·性能优化
苹果醋322 分钟前
Java设计模式实战:从面向对象原则到架构设计的最佳实践
java·运维·spring boot·mysql·nginx
wanhengidc23 分钟前
裸金属服务器都有哪些优势?
运维·服务器·安全·智能手机·生活
Jamesvalley24 分钟前
【centos】安装python3.12
linux·运维·centos
kaozhengpro25 分钟前
Microsoft DP-700 考試戰報|Fabric 資料工程師一次通過心得
运维·microsoft·fabric
余衫马27 分钟前
Ubuntu24.04 日常运维合集
运维
星星泡饭2921 小时前
工业标识自动化——MARKING Configurator 从数据导入到热转移打印的全流程教程
运维·自动化·菲尼克斯
中科米堆1 小时前
自动化大尺寸批量3D检测,自动化三维扫描系统实现钢板支架在线检测-中科米堆CASAIM
运维·3d·自动化·3d全尺寸检测