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 协议。

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

相关推荐
运维老郭2 小时前
【K8s运维实战】Kubernetes临时存储卷实战:emptyDir核心用法与gitRepo弃用迁移指南
运维·云原生·kubernetes
珠海西格电力2 小时前
云边端协同架构:零碳园区管理系统的技术底座
大数据·运维·人工智能·算法·架构·能源
阿成学长_Cain3 小时前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库
小羊Yveesss3 小时前
2026年微信小程序后端怎么搭建?后台、数据、接口和运维怎么选
运维·微信小程序·小程序
想你依然心痛5 小时前
嵌入式Linux安全加固:SELinux、Capabilities与Seccomp——强制访问控制与沙箱
linux·运维·安全
AAA@峥6 小时前
容器数据不丢失:Docker 分层存储 + Volume 共享、备份迁移完整指南
运维·docker·容器
MDM.Plus6 小时前
苹果MDM技术演进:从远程控制到设备信任体系的构建
运维·服务器·安全·ios·mdm·手机店
REDcker6 小时前
macOS 挂载 Linux 远程目录详解
linux·运维·macos
2601_961593427 小时前
Mac 上搭建Linux环境吗?VMware + CentOS Stream 9 镜像快速部署
linux·运维·ide·macos·centos
写代码的学渣7 小时前
Linux systemd 开机启动日志逐行详细解析报告
linux·运维·服务器