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

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

相关推荐
碳基沙盒20 小时前
OpenClaw 多 Agent 配置实战指南
运维
小飞程序员3 天前
Docker本地部署gitlab实践(windows,linux)
devops
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
DianSan_ERP4 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅4 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒4 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
zhangfeng11335 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh
ZeroNews内网穿透5 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全
失重外太空啦5 天前
nginx
运维·nginx
Gofarlic_oms15 天前
避免Kisssoft高级分析模块过度采购的科学评估方法
大数据·linux·运维·人工智能·matlab