在 Kubernetes 生产环境中更换 etcd 节点的磁盘是一个高风险操作,需谨慎执行。什么情况需要更换磁盘?

  • 磁盘性能不足,如机械盘升级到 SSD

  • 磁盘硬件存在问题,影响稳定性

ETCD 对磁盘性能要求非常敏感,强烈建议使用 SSD 且独立挂盘。如果有更高性能要求,可以选择分离 snapshot(快照文件)/wal(预写日志)的目录,使用两块盘分离 IO 读写。

以下是详细步骤和注意事项,以三节点...

Continue reading >>

客户有个好几年前的k8s老环境,部署新的应用就出问题了,从部署的服务pod里访问k8s svc地址端口 172.16.0.1:443 不通,宿主机上访问都是通的,kube-proxy mode是 iptables 模式,endpoints检察都正常,svc 后端apiserver 6443 也都能正常访问,重建kube-proxy、kubernetes svc 后 pod 访问 svc 依然不通,...

Continue reading >>

最近在给客户部署一套 k8s 集群时,主节点master1安装完后,master2 join时提示 etcd 证书报错,铲掉重装后问题还是稳定复现,客户提供的机器操作系统为Ubuntu 22.04、Kernel:Linux 5.15.x,报错信息节选如下

error execution phase control-plane-prepare/certs: error creating PKI as...

Continue reading >>

最近在 Kubernetes 使用中,有个 Pod 一直处于 Terminating 状态,通常原因是 Pod 占用的某些资源未被正确释放(如 Finalizers、Volume 挂载、网络资源、节点状态为NotReady等),强制删除也一直卡住,尝试了各种姿势,最后不得不去 ETCD 删除 Pod 数据解决,mark一下。

1. 检查 Finalizers

Finali...

Continue reading >>

k8s集群中 ETCD 一般以 static pod方式部署在 master 0/1/2 节点上,路径一般为 /etc/kubernetes/manifests/etcd.yaml需要针对k8s集群中已经在运行的 ETCD 3 副本进行端口切换变更,从 2379 端口变更到 2378,2380 保持不变。

etcd.yaml示例:

apiVersion: v1
kind: P...
Continue reading >>

最近遇到一个客户k8s测试集群经常崩溃,最终定位是etcd磁盘IO性能不足,最终替换成ssd盘解决,记录一下排查过程。

集群是跑在客户的共享虚机上,磁盘是机械硬盘,问题现象如下:

  1. kube-system下涉及高可用的组件 kube-apiserver、kube-controller-manager、kube-scheduler 频繁重启,某些选主模式的组件、服务反复重启,频繁CrashLoopBack...

Continue reading >>