
Linux
runzhliu
毕业于中山大学,目前专注于容器和大规模并行计算
展开
-
Mac安装sshpass
Mac 使用新版本 brew 安装 sshpass 已经不 work 了,经过一翻检索之后,总结下面的方法来安装 sshpass。另外可以配置一下 ssh 的 config,这样可以在开发过程中登录服务器的时候少打几个字,之后正常使用。下载 sshpass,本地编译安装。,就可以一键登录带密码的服务器了。......原创 2022-08-27 10:18:37 · 1575 阅读 · 0 评论 -
Flannel host-gw 和 vxlan
Flannel 的安装逻辑如下,通过安装的 yaml 文件里有两个 initContainer,专门就是用来做 CNI 和 Flannel 配置的安装,所以命名也是叫 install-cni-plugin 以及 install-cni。的日志已经说的非常明白了,这里调整的路由是将某个节点的 ip 作为某个子网的网关,因此数据包不需要封包,就可以直接路由到这个节点上,另外就是由于。是不需要的,因为容器的网络栈只会让容器的数据包发到 cni0 这个设备上,至于后面是走。, 在同样的机器上进行测试,实测结果。..原创 2022-08-26 15:33:29 · 1971 阅读 · 0 评论 -
用k8s搭建一个带有文件管理功能的私有yum源
Overview项目地址在 https://github.com/runzhliu/yum-with-browser目的是解决在k8s集群里一些yum源的问题。为什么会有这个问题呢,因为通常来说k8s集群都只有集群网络,并不能直接通Internet,甚至是公司的LAN都不一定能通。所以有些同学在使用k8s部署应用的时候,尤其是把k8s当成虚拟机来用的同学,会觉得装软件很麻烦,因为通常的流程可能是只能在Dockerfile里就把需要安装的软件安装好,比如vim,curl之类的。这个项目没有什么代码,原创 2022-05-25 16:38:09 · 375 阅读 · 0 评论 -
通过Pod在k8s母机执行yum install
一些特殊的工作负载,需要提前在集群母机上部署一些软件,比如一些特殊的存储或者是网络插件等,如果不考虑 k8s 的方式,一般的操作可能是通过 ssh 命令,对远程主机执行 yum install 之类的操作。在测试 Longhorn 的时候,看到 Longhorn 的文档 有提供一个 DaemonSet 来完成 iSCSI 的配置。但是 DaemonSet 有个问题就是容器会不断重启,所以个人更期望是通过一个 Job 来完成这样的操作,所以大概改造成下面的例子的样子。原理其实也不是太复杂,在特权容器内,通原创 2022-05-12 15:49:37 · 793 阅读 · 0 评论 -
关于新装的服务器无法通过ctrl-r搜索命令
最近来了一批新的机器,交给运维同学重装之后,发现每次登录都没法通过 ctrl-r 来检索历史命令,每次操作都非常蛋疼。于是简单了解了一下 ctrl-r 是通过 .bash_history 文件来记录历史命令的,所以遇到类似情况,可以考虑一下是不是这个文件超过了预定义的大小或者命令超出行数了,但在我这里都不是这个问题,主要还是这个文件的属性,导致 root 在操作的时候,都无法记录命令到这个文件,相关的处理可以看看下面的命令。# ll -h /root/.bash_history-rw------- 1原创 2022-04-27 15:29:33 · 1601 阅读 · 0 评论 -
k8s集群外部域名dns解析问题
Overview业务在机器学习的 GPU 集群访问集群外部域名的算法模型报超时原因分析查看了 coredns 的监控和日志,均没有发现异常,通过 ping harbor.fql.com 分析回包非常慢,而且频繁超时,于是抓包,发现 harbor.fql.com 添加了 search 域,因为本身域名只有三位,k8s 的 DNS 的 ndots 默认是5位,所以肯定会添加 search 域去解析域名的默认配置下的 Pod,ndots 为 5解决方案由业务容器通过 Pod 的 dnsConfig 自原创 2022-04-26 21:46:49 · 2227 阅读 · 0 评论 -
k8s容器离线安装pstree
一般场景下,容器网络都只有局域网内,无法跟 Internet 交互,如果这时候想安装一下命令的时候,简单地通过系统的 apt-get install 或者 yum install 是无法下载到公网的依赖的,除非使用局域网内的源地址,但是所有的这些都不方便呢?唯一方面就是允许用户在本地通过 kubectl 进入 pod,比如想要安装 pstree,那么可以先提前在网上把对应系统版本和架构的安装包下载到本地自己的开发环境,然后通过 kubectl cp 把下载到的安装包 cp 到 Pod 内,再在 Pod 内进原创 2022-04-18 17:21:09 · 364 阅读 · 0 评论 -
busybox和busybox镜像是什么
很多人用 busybox,但是不是很多人能说出来 busybox 是个什么东西。用过 busybox 镜像的同学都知道,busybox 没有 curl,另很多习惯用 curl 的同学会有点不习惯,然后会找各种 yum, apt-get, apk 等这些常见的 Linux 发行版的软件包管理工具会安装,但是最终都是徒劳的…因为 busybox 里压根就没有这些,唯一能做的,可能就是不用 curl,该用 wget 好了。这样自然大家都会有疑问,为什么会没有 curl,又为什么装不了,本文就简单的给大家做个介原创 2022-03-25 19:09:54 · 2187 阅读 · 1 评论 -
腾讯云服务器安装oh-my-zsh
在服务器上安装 zsh 和 oh-my-zsh 本身不是什么难的事情,不过因为国内网络环境的问题,很多东西总是事与愿违,然后公有云厂商也很少把方法贴出来,就很麻烦,反正搜官方文档也搜不太出来,除了自己做代理,还有更省事的方法吗?推荐大家使用 Gitee 极速下载 / oh-my-zsh, 这个应该是我目前看到最方便的方法了。...原创 2022-03-19 14:46:41 · 743 阅读 · 0 评论 -
【工具】jq真的很好用
说起 jq 应该很多同学都用过,但应该大部分同学跟我类似,可能就是 curl xxx | jq . 就这样用过,大概就是请求一个返回 Json 的接口,通过 jq 把他打印得更好看。但是其实 jq 还有很多用处,至于怎么用,大家真的不要去死记硬背,因为我其实不止一次专门写过 jq 的笔记了,但是每次都得忘,或者查,查之前的文章和笔记有时候就不一定是一个简单省时的方式了,所以此处,一定要建议大家用好 jq 的 man 文档!只要不记得了,就查一下文档,因为 jq 的文档里,有非常多典型的例子,照着例子写原创 2021-02-03 18:10:29 · 190 阅读 · 0 评论 -
【Linux】那些怎么都记不住的linux命令(持续更新)
Linux 命令太多了,最近运维工作做得挺多的,总是记不住,最后我发现我记不住的原因是,不知道这些命令的缩写对应的全称是什么,当你都了解这些命令出现的背景,那就顺其自然可以记住他们了,然后配合 man command 来查看作用,就再也不用每次都谷歌了。命令命令名解释用途fsckfile system consistency check用于检查并且试图修复文件系统中的错误netstatnetwork and statistics用于列出和统计系统上所有的网络套接字连接情原创 2021-01-14 15:52:30 · 295 阅读 · 1 评论 -
【Linux】一招跑满你的cpu
https://winaero.com/how-to-create-100-cpu-load-in-linux/一招跑满 cpu。关于 yes 的用法,参考 help 文档。关于 killall 的用法,参考 help 文档。原创 2021-01-12 15:40:44 · 1646 阅读 · 0 评论 -
yum install空间不足
本地要编一个 ceph-exporter,需要 ceph 的相关库,于是在开发机上 yum install librados2-devel,报错了,因为第一次遇到所以记录一下解决的思路。具体报错的信息如下。➜ / yum install ceph-devel已加载插件:fastestmirrorRepository base is listed more than once in the configurationRepository updates is listed more than onc原创 2020-06-27 22:25:11 · 1786 阅读 · 0 评论 -
遇到ELF: not found
之前镜像运行不起来,改了一下 CMD 发现更有问题了,见下图。本质上,应该是把二进制文件当做 shell 文件来执行了,改掉红色方框的就可以了。Referencehttps://stackoverflow.com/questions/57446579/executable-says-line-1-elf-not-found-when-starts...原创 2020-06-09 09:50:12 · 10736 阅读 · 1 评论 -
tcsetpgrp failed重新编译tini
文章目录1 Overview2 tini 源码3 Summary1 Overview在启动 Spark Operator 的时候出现了一个意想不到的问题。[root@sholdmix01node1 /data/runzhliu/spark]# kubectl log -n kube-system spark-sparkoperator-86f6c889cd-ggbmclog is DEPRECATED and will be removed in a future version. Use log原创 2020-05-12 14:18:47 · 589 阅读 · 0 评论 -
如何判断环境变量为空
文章目录1 Overview2 Example3 StackOverflow1 Overview今天在看 Spark 的脚本的时候,发现很多变量都有用到 {VARIABLE+x} 这种格式,如下:.........&& if ! [ -z ${SPARK_MOUNTED_CLASSPATH+x} ]; then SPARK_CLASSPATH="$SPARK_MOUNT...原创 2019-07-21 18:18:57 · 680 阅读 · 0 评论 -
ps 究竟是 aux 还是 ef
文章目录1 Overview2 aux or ef3 stand syntax4 BSD syntax5 Summary1 Overview相信肯定会有同学有遇到过一个面试题,问:如何查看系统当前所有的进程?这个答案相信大部分人都知道,当然就是 ps 了。但是,如果你回到 ps aux,如果考官问你是否知道 ps -ef 呢?又或者反过来呢?本文就这个问题简单解答一下。2 aux or ...原创 2019-07-15 16:36:06 · 361 阅读 · 0 评论 -
查看 Linux CPU 信息
文章目录查看 CPU 物理个数查看 CPU 逻辑个数查看 CPU 是多少核关于 top 查看 CPU 逻辑个数学习资料查看 CPU 物理个数CPU 物理个数是指cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l查看 CPU 逻辑个数cat /proc/cpuinfo | grep processor | wc -l...原创 2019-07-15 16:02:00 · 243 阅读 · 0 评论