• 一个Go升级引起的血案

    直接现象:使用Go 1.13编译kube-controller-manager,运行一段时间后,发现controller不工作,查看日志,发现打印“http2: no cached connection was available”。 I0328 09:48:59.925056 1 round_trippers.go:383] GET https://10.220.14.10:8443/api/v1/namespaces/kube-system/endpoints/kube-contr...


  • 如何找到被删除的文件

    日常运维过程中,我们经常需要处理磁盘空间问题,当接到告警后,第一时间会去找那些大文件,一般比如centos,可能大文件就是 /var/log/messages。 但有的时候,会出现怎么也查不到大文件的情况,通过 du 查找的时候,统计出来的大小,跟 df 显示的占用空间对应不上。 如果通过 df -i 查看inode没有满的话,那么极有可能,是有大文件被直接rm了,但是仍然有进程打开了这个文件。 这种情况,由于进程没有退出,因此文件占用的空间并不会释放;直到进程退出,磁盘空间才会真正释放。 ...


  • docker login 密码加密保存

    企业中使用镜像仓库,通常都需要开启认证,认证凭据可能是用户在企业中通用的账户。但docker login以后,会在 .docker/config.json 中保存base64以后的用户名、密码,这样,在一些多人使用的服务器上,就会出现账号泄露的问题。 有没有解决方法呢? docker提供credentials store,也就是讲密码存储到外置的credentials store中。 目前支持如下几种: D-Bus Secret Service: https://github.com/...


  • 如何解决容器中nginx worker process自动设置的问题

    问题描述 问题原因 解决方案 lxcfs 结论 问题描述 nginx容器化时,有一个普遍会遇到的问题:如何自动设置nginx worker process的数量? nginx官方容器镜像的nginx.conf配置文件中,会有一条worker process配置: worker_processes 1; 它会配置nginx仅启动1个worker。这在nginx容器为1核时,可以良好的工作。 当我们希望nginx给更高的配置,例如4c...


  • 使用Kubernetes Ingress + LetEncrypt 安全访问Homelab服务

    需求概述 部署ingress controller 创建ingress 本地hosts测试 配置泛域名 openwrt配置DNS Rebinding白名单 总结 需求概述 之前家里Kubernetes上托管的一些服务,如portal, emby, weave scope等等,是使用的service ip来访问的,访问起来稍微有点麻烦,主要是ip要记。 Kubernetes为了解决load balancer类型service的问题(vip消耗,L7负载特性等),提供...


  • 如何从集群外访问Kubernetes Pod

    hostNetwork: true hostPort NodePort LoadBalancer Ingress Pod IP全局可达 总结 kubernetes集群上运行的pod,在集群内访问是很容易的,最简单的,可以通过pod的ip来访问,也可以通过对应的svc来访问。但在集群外,由于基于flannel的kubernetes集群的pod ip是内部地址,因此从集群外是访问不到的。 为了解决这个问题,kubernetes提供了如下几个方法。 hostNetwor...


  • 设置kubernetes Pod的shared memory

    问题描述 背景知识1:shared memory System V POSIX 背景知识2:kubernetes shared memory kubernetes empty dir 使用empty dir的缺点 cgroup限制 内存的cgroup限制 共享内存受cgroup限制吗? 最终的设计 问题描述 用户可以使用共享内存来做一些进行通信(vs golang的 “通...


  • 小贴士:Docker清理作弊手册

    清理所有无用对象 清理docker容器 清理所有stopped的容器 停止并清理所有容器 清理镜像 清理dangling镜像 清理所有没有使用的镜像 清理volumes 清理networks 我在MBP上跑的Docker Desktop,可以方便的制作镜像、做一些实验验证。但是由于家境贫寒,MBP硬盘只有256GB,用了几年现在只剩下几十GB,镜像做多了,占据空间比较大,清理多余i...


  • 消失的Prometheus指标

    问题现象 kubelet与cadvisor cadvisor与runtime cadvisor与docker 真正的原因 解决办法 总结 记一个线上故障的解决过程。 问题现象 我们有一些GPU的机器,需要统计GPU的相关信息,数据是从Prometheus拿的,但有一天突然发现,部分GPU节点metrics的某些label是空的。 下面是正常节点的metrics。 container_accelerator_duty_cycle{acc_id="GPU-d838...


  • 追踪nginx ingress最大打开文件数问题

    问题现象 初步分析 linux基础:fs.file-max vs ulimit fs.file-max fs.file-nr ulimit 深入分析 解决办法 ulimit可以吗? 修改docker daemon的ulimit默认值 /etc/security/limits.conf 修改计算方式 修改回退 不跟你们玩:配置项 ...