集群
Kubernetes 基础环境要求
· ☕ 2 分钟
1. 基础包 Kubernetes 版本 ≥ 1.18 socat 必须安装 conntrack 必须安装 ebtables 可选,但推荐安装 ipset 可选,但推荐安装 ipvsadm 可选,但推荐安装 1 apt-get -y install socat conntrack ebtables ipset ipvsadm 2. 端口要求 2.1 基础节点服务 Service Protocol Action Start Port End Port Comment ssh TCP allow 22 22 节点远程管理 docker TCP allow 2375 2376 Docker 远程通信 etcd TCP allow 2379 2380 etcd 集群通信 2.2 Master/Control Plane 组件 Service Protocol Action Start Port End Port Comment apiserver

如何修复重装系统后的 Kubernetes Master 节点
· ☕ 3 分钟
最近碰到两次,因故障需要重装主机系统。其中一次 Etcd 只剩下一个节点,导致整个集群宕机半个小时才恢复。本篇主要记录的是新系统 Ubuntu 20.04 初始化的过程,完成初始化之后采用优秀的集群安装工具 Kubekey 的 add nodes 命令,无需修改配置文件,一键就将节点重新加入了集群。 1. 恢复 Etcd

集群节点的弹性扩缩
· ☕ 3 分钟
弹性伸缩主要有三个维度: HPA,根据利用率,自动伸缩 Pod 数量 VPA,根据历史数据,自动设置 Pod 的 Request、Limit CA,根据使用率,自动伸缩 Node 数量 本篇主要讨论的是节点扩缩容部分。 1. 自动扩缩容组件 autoscaler autoscaler 是 Kubernetes 社区维护的项目。目前 autoscaler 组件已经提供

Kubernetes 集群 troubleshooting
· ☕ 6 分钟
FailedCreatePodSandBox 错误 Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:402: getting the final child's pid from pipe caused: EOF: unknown 处理 清理 cache 1 echo 3 > /proc/sys/vm/drop_caches 原因 内存碎片过多 calico-node 不停重启 increase max user 错误 runtime: failed to create new OS thread (have 11 already; errno=11),runtime: may need to increase max user processes (ulimit -u) 处理 增加 ulimit 限制额度 1 ulimit -u unlimited 原因 用户进程数耗尽 calico-node BIRD is not ready 错

如何修复变更 IP 之后的 Kubernetes 集群
· ☕ 4 分钟
记录一次因为 IP 变更导致集群故障的修复过程。有两个集群,一个是单节点(allinone),另一个是四节点(3 master 1 node)的集群。 1. 更新 Etcd 证书 【在每个 Etcd 节点】备份 Etcd 证书 1 cp -R /etc/ssl/etcd/ssl /etc/ssl/etcd/ssl-bak 查看 Etcd 证书中的域 1 2 3 openssl x509 -in /etc/ssl/etcd/ssl/node-node1.pem -noout -text|grep DNS DNS:etcd, DNS:etcd.kube-system, DNS:etcd.kube-system.svc, DNS:etcd.kube-system.svc.cluster.local, DNS:localhost, DNS:node1, IP Address:127.0.0.1, IP Address:0:0:0:0:0:0:0:1, IP Address:x.x.x.1 需要