Hot For Coding
Kubernetes如何升级

kubernetes

Kubernetes集群升级非常简单,但如果你要升级的版本是一个末位数为0的请慎重,比如你要从v1.15.5升级到v1.16.0。我之前盲目升级导致目前一直有两个坑一个没有填好

  • 升级后CronJob的Pod不会自动清理,升级之前自动保留最后三个,即使设置了successfulJobsHistoryLimit: 3也无效,发现跟我入坑的还有不少人
  • 升级后跑Gitlab-Runner时容器总是经常command terminated with exit code 137,升级之前从来没有这个问题,开issue Gitlab团队的人回复目前这个问题无解,尝试给足够多的Resources来减少这种问题的出现,但仍然还是不能完全避免

...

READ ALL

Crontab默认编辑器修改

在新系统中初次使用crontab时会询问默认打开编辑器选项,不小心就选了默认的nano,由于要修改的内容也简单所以就想简单使用nano完成任务就好。结果实在是不习惯,使用了多年的vi之后很难适应别的editor,没办法只好想办法把默认的editor改回vim。

有两种方式可以改

通过环境变量

环境变量可以设置VISUALEDITOR,两个任何一个都可以,如我想在编辑crontab时使用vim打开可以这么做

VISUAL=vim crontab -e  

或者也可以这样

EDITOR=vim crontab -e  

...

READ ALL

vim粘贴代码缩进问题

vim

原因

很长时间以来,我以vim做为我的主要编辑器在Linux下写程序,但vim设置了smartindent之后通过终端SecureCRT连接Linux使用vim时每次粘贴代码缩进都会出现下一行代码的起始位置在上一行代码的末尾处,依此类推,你粘贴的行数越多,就越明显,如:

源片段:

resources:
  limits:
    memory: 4096Mi
    cpu: 300m
  requests:
    memory: 128Mi
    cpu: 100m

...

READ ALL

NodeJS请求431 Request Header Fields Too Large 错误

nodejs

公司使用verdaccio-gitlab搭建了私有的NPM Registry,并使用Gitlab服务做授权,一直运行稳定。

直到最近升级了NodeJS版本之后,陆续发现有一些问题:

  • 固定一部分用户在请求packages接口时总是400错误
  • 部分用户不受影响

从问题上分析,大概判断是跟用户数据相关引发的错误,但verdaccio-gitlab这个包只给出了400错误,很不好确定具体错误。于是直接在测试环境启动了一个Verdaccio然后发现其实有问题的那一部分用户状态码其实是431 Request Header Fields Too Large,意思就是请求头太大。

...

READ ALL

修复Docker错误 no space left on device

docker

我使用的是Mac电脑,我习惯在我电脑上Build镜像之后在推送到私有Registry。

然而,今天我正要构建一个镜像时出现了错误

no space left on device

提示空间不够了。Docker使用分层存储技术很大程度上避免了空间浪费,但日积月累的也会有爆满的时候,就像垃圾桶一样,堆满了自然无法容纳更多的垃圾。Mac上安装了Docker程序之后默认占用磁盘空间为64GB,所以要解决空间不够的问题可以从两方面下手

调大磁盘空间

点开图标,在下拉菜单中选择Preferences...,在弹开的界面顶部中选择Disk菜单

...

READ ALL

Debian9 UFW防火墙

ufw

之前一直都在使用iptables好多年,因为它是系统基础的一部分,很多Linux发行版本都适用它。可每次需要添加端口删除端口的时候都需要重新查询手册,虽然功能很强大,但太复杂了。

今天我们要介绍的是一款非常简单容易上手的防火墙UFW,英文名: Uncomplicated Firewall,中文名应该叫简单防火墙。它其实底层还是使用了iptables,它基于iptables封装了一些非常日常易用的命令。

安装

使用Debian自带的包管理工具apt就可以安装

sudo apt install ufw -y

...

READ ALL