当前位置: 首页 > news >正文

[k8s] kubectl执行失败后等待一段时间再重试 (Shell实现)

使用Shell脚本实现功能: kubectl执行失败后,等待30秒后再重试,一共重试3次,代码如下:

#!/bin/bashKUBECTL_BIN=/var/lib/snapd/snap/bin/kubectlERR_MSG_K8S_NOTRUNNING="microk8s is not running"
ERR_MSG_CONNECTION_TIMEOUT="connection timed out"
ERR_MSG_CONNECTION_REFUSED="refused - did you specify the right host or port"function debuglog() {local log_content=${@:1}local caller=$(basename "$0")echo "`date +"%Y-%m-%d %H:%M:%S"` [$caller] INFO $log_content" 2>&1
}function api_kubectlX() {local retry=$1shiftlocal args=$@local ret=0local cmdstr="${args[@]}"local tmpfile=$(mktemp)for ((i=0;i<$retry;i++)); do${KUBECTL_BIN} $@ 2>"$tmpfile"ret=$?if [ $ret -eq 0 ]; thendebuglog "KUBECTL $cmdstr ret: 0"breakfilocal errinfo=$(< "$tmpfile")local need_retry="no"if [ -n "$(echo "$errinfo" | grep "$ERR_MSG_K8S_NOTRUNNING")" ]; thenneed_retry="yes"elif [ -n "$(echo "$errinfo" | grep "$ERR_MSG_CONNECTION_TIMEOUT")" ]; thenneed_retry="yes"elif [ -n "$(echo "$errinfo" | grep "$ERR_MSG_CONNECTION_REFUSED")" ]; thenneed_retry="yes"elif [ $ret -eq 143 ]; then # 143 means SIGTERM, just retryneed_retry="yes"elseneed_retry="no"fiif [ $need_retry != "yes" ]; thendebuglog "KUBECTL ret: $ret/($errinfo) $cmdstr"breakfidebuglog "KUBECTL ret: $ret/($errinfo) (retry:$i) $cmdstr"sleep 30donerm -- ${tmpfile}return $ret
}function api_kubectl() {local args=(3 "$@")api_kubectlX "${args[@]}"return $?
}# 使用方法:
api_kubectl get ns 

相关文章:

[k8s] kubectl执行失败后等待一段时间再重试 (Shell实现)

使用Shell脚本实现功能&#xff1a; kubectl执行失败后&#xff0c;等待30秒后再重试&#xff0c;一共重试3次&#xff0c;代码如下&#xff1a; #!/bin/bashKUBECTL_BIN/var/lib/snapd/snap/bin/kubectlERR_MSG_K8S_NOTRUNNING"microk8s is not running" ERR_MSG_C…...

java中的static和单例模式

同一个类中&#xff0c;访问其类成员&#xff0c;可以省略类名不写 static&#xff1a;叫静态&#xff0c;可以修饰成员变量&#xff0c;成员方法。 成员变量按照有无static修饰&#xff0c;分为两种&#xff1a; 类变量&#xff1a;有static修饰&#xff0c;属于类&#xf…...

RabbitMQ相关总结

Broker 异步调用中用Broker进行事件订阅和调用&#xff0c;完成解耦 没有强依赖&#xff0c;不用担心级联失败 流量削峰 MQ 的下载 1.可以使用命令拉取镜像 docker pull rabbitmq:3-management 2.也可以直接去官网下载tar包&#xff0c;然后上传到虚拟机上面 spring AMQP…...

RAFT: Adapting Language Model to Domain Specific RAG

今天来介绍下伯克利大学3.15日新发的一篇paper,RAFT: Adapting Language Model to Domain Specific RAG 主要研究了如何构造训练数据来微调你的LLM,从而在LLM在垂直领域的RAG中表现更好。并且开源了代码:GitHub - ShishirPatil/gorilla: Gorilla: An API store for LLMs 主…...

第十五届蓝桥杯第三期模拟赛第十题 ← 上楼梯

【问题描述】 小蓝要上一个楼梯&#xff0c;楼梯共有 n 级台阶&#xff08;即小蓝总共要走 n 级&#xff09;。小蓝每一步可以走 a 级、b 级或 c 级台阶。 请问小蓝总共有多少种方案能正好走到楼梯顶端&#xff1f;【输入格式】 输入的第一行包含一个整数 n 。 第二行包含三个整…...

第四题:星期一

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 整个 20 世纪&#xff08;1901 年 1 月 1 日至 2000 年 12 月 31 日之间&#xff09;&#xff0c;一共有多少个星期一&#xff1f;(不要告诉我你不知道今天是星期几…...

Mamba: Linear-Time Sequence Modeling with Selective State Spaces(论文笔记)

What can I say? 2024年我还能说什么&#xff1f; Mamba out! 曼巴出来了&#xff01; 原文链接&#xff1a; [2312.00752] Mamba: Linear-Time Sequence Modeling with Selective State Spaces (arxiv.org) 原文笔记&#xff1a; What&#xff1a; Mamba: Linear-Time …...

2024蓝桥杯每日一题(区间DP)

备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一&#xff1a;游戏 试题二&#xff1a;石子合并 试题三&#xff1a;密码脱落 试题四&#xff1a;能量项链 试题一&#xff1a;游戏 【题目描述】 玩家一和玩家二共同玩一个小游戏。给定一个包含 N 个…...

LeetCode-2952. 需要添加的硬币的最小数量【贪心 数组 排序】

LeetCode-2952. 需要添加的硬币的最小数量【贪心 数组 排序】 题目描述&#xff1a;解题思路一&#xff1a;看提示主要是用贪心和排序。那我们肯定是首先对coins排序。然后依次遍历coins[i]&#xff0c;获取当前可以获取金额范围&#xff0c;和判断是否加入新硬币。判断规则如下…...

新书速递——《可解释AI实战(PyTorch版)》

本书旨在帮助你实施最新的可解释AI技术&#xff0c;以构建公平且可解释的AI系统。可解释AI是当今AI研究中的热门话题&#xff0c;但只有少数资源和指南涵盖了所有重要技术&#xff0c;这些技术对实践者来说非常有价值。本书旨在填补这一空白。 本书读者对象 本书既适合那些有兴…...

国产数据库中统计信息自动更新机制

数据库中统计信息描述的数据库中表和索引的大小数以及数据分布状况&#xff0c;统计信息的准确性对优化器选择执行计划时具有重要的参考意义。本文简要整理了下传统数据库和国产数据库中统计信息的自动更新机制&#xff0c;以加深了解。 1、数据库统计信息介绍 优化器是数据库…...

【C++】入门C++(中)

好的&#xff0c;我们继续&#xff0c;这是 C专栏的第二篇博客&#xff0c;还没读过上一篇博客可以进入我创建的专栏阅读 入门C&#xff08;上&#xff09;再回来哦~ 下面我们要讲的第一个概念就是函数重载 函数重载 1. 函数重载概念 什么是函数重载&#xff1f; 简单来说…...

javaIO

file类 一个File类的对象可以表示一个具体的文件或目录 mkdir 创建单级文件夹 mkdirs 创建多级文件夹 delete 删除一个文件夹时&#xff0c;文件夹里面必须是空的 listfiles 将文件夹的子集放到一个file类型的数组中 输入及输出的概念 输入input 输出output 把jav…...

睿尔曼超轻量仿人机械臂之复合机器人底盘介绍及接口调用

机器人移动平台是一个包含完整成熟的感知、认知和定位导航能力的轮式机器人底盘产品级平台&#xff0c;产品致力于为各行业细分市场的商用轮式服务机器人提供一站式移动机器人解决方案&#xff0c;让合作伙伴专注在核心业务/人机交互的实现。以下是我司产品双臂机器人以及复合升…...

用JSch实现远程传输文件并打包成jar

本文将简单介绍一下 JSch 这个Java的第三方库的一个简单用法&#xff0c;并以此为实例&#xff0c;讲解 IntelliJ 中打包成 jar 包的2种方式。 实现目标 我们的目标是&#xff0c;做出一个jar包&#xff0c;它能够实现类似于 scp 命令的远程传输文件的功能。用法如下&#xf…...

2023年第十四届蓝桥杯大赛软件类省赛C/C++研究生组真题(代码完整题解)

C题-翻转⭐ 标签:贪心 简述:如果 S 中存在子串 101 或者 010,就可以将其分别变为 111 和 000,操作可以无限重复。最少翻转多少次可以把 S 变成和 T 一样。 链接: 翻转 思路:要求步骤最少->S每个位置最多修改一次->从头开始遍历不匹配就翻转->翻转不了就-1 …...

力扣刷题Days28-第二题-11.盛水最多的容器(js)

目录 1&#xff0c;题目 2&#xff0c;代码 3&#xff0c;学习与总结 3.1思路回顾 1&#xff0c;如何遍历 2&#xff0c;算法流程 3.2剖析问题 1&#xff0c;题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, h…...

文生图大模型三部曲:DDPM、LDM、SD 详细讲解!

1、引言 跨模态大模型是指能够在不同感官模态(如视觉、语言、音频等)之间进行信息转换的大规模语言模型。当前图文跨模态大模型主要有&#xff1a; 文生图大模型&#xff1a;如 Stable Diffusion系列、DALL-E系列、Imagen等 图文匹配大模型&#xff1a;如CLIP、Chinese CLIP、…...

算法学习——LeetCode力扣动态规划篇10(583. 两个字符串的删除操作、72. 编辑距离、647. 回文子串、516. 最长回文子序列)

算法学习——LeetCode力扣动态规划篇10 583. 两个字符串的删除操作 583. 两个字符串的删除操作 - 力扣&#xff08;LeetCode&#xff09; 描述 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个…...

TASKPROMPTER

baseline模型的预训练权重就有1.6G! 多吓人呐&#xff0c;当时我就暂停下载了&#xff0c;不建议复现...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...