首页 > 其他分享 >Kubernetes(k8s)最大启动时长研究

Kubernetes(k8s)最大启动时长研究

时间:2023-05-23 19:31:46浏览次数:53  
标签:14 Kubernetes 启动 initialDelaySeconds 40 60 periodSeconds k8s failureThreshold

一、前言

应用部署在 Kubernetes(k8s)上,有些应用启动慢一些,没启动好 就又被 k8s 重启了

二、处理过程

1. 看日志

[2023-05-23 14:38:52.249]|-INFO |-[background-preinit]|-o.h.v.i.u.Version[0]|-[TID: N/A]|-HV000001: Hibernate Validator 6.1.7.Final
[2023-05-23 14:40:11.817]|-INFO |-...

2023-05-23 14:40:22 登录主机: aaaa失败!
原因:Failed to upgrade to websocket: Unexpected HTTP Response Status Code: 500 Internal Server Error

2. 看探针配置

livenessProbe:
        failureThreshold: 3
        initialDelaySeconds: 30
        periodSeconds: 10
        successThreshold: 1
        tcpSocket:
          port: 60001
        timeoutSeconds: 1

3. 分析

  • 刚开始以为 80秒左右(14:38:52.249 到 14:40:11.817),应用被重启了
  • 发现和 探针配置的不一样,initialDelaySeconds + periodSeconds * failureThreshold = 60秒
  • 然后发现最终结束时间应该是 14:40:22 登录主机: aaaa失败,就是 90秒左右
  • 最后发现还有个 terminationGracePeriodSeconds: 30,加上探针 60秒,刚好 90秒左右。至此终于 水落石出
  • 建议运维把 initialDelaySeconds 改为 60 以后,成功启动

三、总结

  • 最长重启时间:initialDelaySeconds + (periodSeconds + timeoutSeconds) * failureThreshold + terminationGracePeriodSeconds(默认30秒)
  • 建议 适当调大 initialDelaySeconds(如 60)、failureThreshold(如 6)、periodSeconds(如 20),总之根据上面的公式计算的时长 要大于 实际启动时长(如 本地测试)
  • 配置存活、就绪和启动探针 | Kubernetes

本文首先发布于 https://www.890808.xyz/ ,其他平台需要审核更新慢一些。

Kubernetes(k8s)最大启动时长研究_k8s

标签:14,Kubernetes,启动,initialDelaySeconds,40,60,periodSeconds,k8s,failureThreshold
From: https://blog.51cto.com/javalover123/6334148

相关文章

  • 阿里云vpc下面部署自建k8s一些注意事项
    简介这几天接手了一个政府单位项目,所有的资源均为云资源,而且是阿里云vpc机器。在部署k8s的过程中发现我部署的k8s跨主机网段不通。折腾了我好几天最后发现问题是我在vpc里面是用的不是规定的cidr,我是用的是172.235.0.0修改到规定的cidr清空etcd删除网络重装k8s即可。解决阿......
  • 皕杰报表设计器在macOS上启动的问题
    最近,很多皕杰报表的使用者遇到了下载MacOS版本后,报表设计器初次启动,不能正常打开的问题。这主要是由于报表设计器找不到Java导致的。可以打开BIOSStudio.app\Contents\Eclipse\下的BIOSStudio.ini,在-vmargs参数之前添加-vm参数来指定您操作系统安装的Java,即可如下所示:-startup......
  • 设置启动WebSocket并配置程序池
    开启WebSocket服务1.导航到“控制面板”>“程序”>“程序和功能”>“启用或禁用Windows功能”(位于屏幕左侧)。2.打开以下节点:“InternetInformationServices”>“万维网服务”>“应用程序开发功能”。3.选择“WebSocket协议”功能。选择“确定”。配置IIS应......
  • vite启动调试配置外网访问
    修改vite.config.js配置文件import{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'const{resolve}=require('path')exportdefaultdefineConfig({//起个别名,在引用资源时,可以用‘@/资源路径’直接访问resolve:{alias:{......
  • k8s Error: failed to prepare subPath for volumeMount "custom-logo" of container
    前言使用k8s挂载卷文件时,使用了hostPath,type:FilevolumeMounts:-mountPath:/usr/share/grafana/public/img/grafana_icon.svgname:custom-logosubPath:grafana_icon.svgvolumes:-hostPath:path:/root/test/logo.......
  • virtualbox下,/boot/efi 分区启动失败
    启动遇到的问题:/boot/efi分区就是在/dev/disk/uuid为BA83-583A下;使用recoverymode下,也失败; ......
  • 解决启动jar包报错:错误找不到或无法加载主类 jar
    错误:找不到或无法加载主类jar问题描述:在使用springboot框架对项目打包后,手动使用命令java-jar包名启动jar包,报错:错误:找不到或无法加载主类jar。网上找了各办法,都是加maven插件,打成可执行jar包<build><plugins><plugin><groupId>org.springframework.bo......
  • Linux启动过程
    Linux系统的开机过程1.主机加电自检,加载BIOS硬件信息2.加载MBR到内存3.GRUB引导4.加载Linux内核5.运行第一个进程init6.读取rc.sysinit文件7.执行/bin/login一、加点自检当主机通电时,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。BIOS程序一般......
  • 系统启动项及定时任务
     用cmd输入regedit启动注册表 如果无法显示,输入cncp437,然后在输入命令 用文件资源管理器打开  用命令行 用cmd运行 ......
  • kubernetes部署Open-LDAP、Go-admin-ldap
    1.搭建openLDAP1.1.创建命名空间kubectlcreatenamespacekube-ops1.2.创建pvc存储使用的是nfs方式挂载,storageClassName为默认,所以可写可不写。mkdir-p~/ldap;cd~/ldapcat>pvc.yaml<<EOFapiVersion:v1kind:PersistentVolumeClaimmetadata:name:ldap-dat......