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

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

相关推荐
IT成长日记3 小时前
【Docker基础】Docker数据持久化与卷(Volume)介绍
运维·docker·容器·数据持久化·volume·
物联网老王5 小时前
Ubuntu Linux Cursor 安装与使用一
linux·运维·ubuntu
艾伦_耶格宇6 小时前
【ACP】阿里云云计算高级运维工程师--ACP
运维·阿里云·云计算
一位摩羯座DBA7 小时前
Redhat&Centos挂载镜像
linux·运维·centos
cui_win8 小时前
【网络】Linux 内核优化实战 - net.core.flow_limit_table_len
linux·运维·网络
风清再凯8 小时前
自动化工具ansible,以及playbook剧本
运维·自动化·ansible
深圳安锐科技有限公司8 小时前
深圳安锐科技发布国内首款4G 索力仪!让斜拉桥索力自动化监测更精准高效
运维·安全·自动化·自动化监测·人工监测·桥梁监测·索力监测
猫头虎8 小时前
猫头虎 AI工具分享:一个网页抓取、结构化数据提取、网页爬取、浏览器自动化操作工具:Hyperbrowser MCP
运维·人工智能·gpt·开源·自动化·文心一言·ai编程
cocologin10 小时前
RIP 技术深度解析
运维·网络·网络协议
庸子11 小时前
基于Jenkins和Kubernetes构建DevOps自动化运维管理平台
运维·kubernetes·jenkins