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

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

相关推荐
草莓熊Lotso7 小时前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
历程里程碑7 小时前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
七夜zippoe15 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
Fcy64817 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满17 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠17 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey90317 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技18 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀18 小时前
Linux环境变量
linux·运维·服务器
zzzsde19 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器