【K8s 精选】CKA - 如何排查集群组件的故障

1.了解集群总体情况

查询节点信息

$kubectl get nodes -owide
NAME                STATUS   ROLES                  AGE   VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE  KERNEL-VERSION   CONTAINER-RUNTIME
worker-0001     Ready    <none>                 21d   v1.20.0   192.168.1.50    <none>        EulerOS 2.0   4.18.0.x86_64   docker://18.9.0
worker-0002     Ready    <none>                 21d   v1.20.0   192.168.1.173   <none>        EulerOS 2.0   4.18.0.x86_64   docker://18.9.0
master-0001    Ready    control-plane,master   21d   v1.20.0   192.168.0.213   <none>        EulerOS 2.0   4.18.0.x86_64   docker://18.9.0
master-0002    Ready    control-plane,master   21d   v1.20.0   192.168.0.37    <none>        EulerOS 2.0   4.18.0.x86_64   docker://18.9.0
master-0003    Ready    control-plane,master   21d   v1.20.0   192.168.0.249   <none>        EulerOS 2.0   4.18.0.x86_64   docker://18.9.0
node-0          Ready    <none>                 21d   v1.20.0   192.168.0.152   <none>        EulerOS 2.0   4.18.0.x86_64   docker://18.9.0
node-1          Ready    <none>                 21d   v1.20.0   192.168.0.42    <none>        EulerOS 2.0  4.18.0.x86_64   docker://18.9.0
node-2          Ready    <none>                 21d   v1.20.0   192.168.0.187   <none>        EulerOS 2.0  4.18.0.x86_64   docker://18.9.0

查询集群的总体健康状况

$kubectl cluster-info
Kubernetes control plane is running at https://192.168.0.60:6443
KubeDNS is running at https://192.168.0.60:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

$kubectl cluster-info dump

2.查看 Kubernetes 组件的日志

主节点 Master 日志
API Server 的默认日志路径是 /var/log/kube-apiserver-xxx.log
Scheduler 调度器的默认日志路径是 /var/log/kube-scheduler-xxx.log
Controller Manager 副本控制器的默认日志路径是 /var/log/kube-controller-manager-xxx.log

$ls /var/log/
coredns-fcd78eab6a05a74abe7eb6566c55562c37f3d3d59b301bc4e12dae64081fe4d7.log
etcd-0817bf1b89eaacc27e9870c986af8c3eaa14082d8d18b931243780cb97ba74f0.log
etcd-0c2cebc0bdf3b354918afa4edbf31f9d0b2faf755dc396e41c3ec115cc007690.log
kube-apiserver-291a08641116cc4e5b7dac6c8f17fd1b014a89efb5a735492734def136a8a9e1.log
kube-apiserver-c7cfd8affa7ab2b940fad25997f878ae0fb47c7c957f85a033f787eae87eb27f.log
kube-controller-manager-e49e67a5e1d94d12921fef52ba8be7da62f9980c150eba3c79d64cc976c22c3b.log
kube-flannel-ds-mlh9r_kube-system_install-cni-c41196adaf23151a7028f13d0e1052e541c349bf09c9ee9ce6b211aa9a4499ab.log
kube-flannel-ds-mlh9r_kube-system_kube-flannel-99818f4e512c7f8353ca8d9781835f8ac7e3c33ee474e3f7462e2437d9ae244c.log
kube-proxy-bxl8q_kube-system_kube-proxy-c2f9cf8aaed9ae8afd4215c2e99fb9b117525d099c87d0c4386358b74c064223.log
kube-scheduler-45504c0c811e2ba330188a75a591fdff7329ed77d8806c3acf7bb9a8695f24bd.log
kube-scheduler-bf1b2919e4e8a5cc5ef8f1b0afaec2c4f61f22abcadda9e53c9b0e30285b230f.log

工作节点 Node 日志
Kubelet 的默认日志路径在工作节点的 /var/log/kubelet_xxx.log,或者使用利用 journalctl ,例如 journalctl -u kubelet |grep xxx 搜索关键字。
Kube Proxy 负责均衡器的默认日志路径在工作节点的 /var/log/kube-proxy_xxx.log

#进入目标的工作节点
$ssh node-1
#查看pod的日志文件
$ls /var/log
deployment-flink-jobmanager-5f89c74868-8plpm_7e911648-ca73-4202-b968-48c47d1e2c7d.log 
kube-proxy-bxj8x_aca6dae2-7965-4ed2-8096-f43a1dbec22f.log

3.集群故障的常见原因及其解决方案

3.1 API Server 所在的 VM 关机或者 API Server 崩溃

常见表象
① 不能停止、更新后者启动新的 PodService 或者副本控制器 Deployment
② 现有的 PodService 在不依赖 Kubernetes API 的情况下应该能继续正常工作
缓解手段:自动 VM 重启功能

3.2 API Server 的后端存储数据丢失

常见表象
API Server 可能启动失败
Kubelet 将不能访问 API Server,但是能够继续运行之前的 Pod 和提供相同的 Proxy
③ 在 API Server 重启之前,需要手动恢复或者重建 API Server 的状态
缓解手段:在运行 Etcd 的 VM,使用可靠的分布式存储卷,例如 AWS EBS 卷

3.3 Kubernetes 组件(节点控制器、副本控制器管理器、调度器等)所在的 VM 关机或者崩溃

常见表象
① 这些组件对应的功能会异常
② 如果有这些组件有多副本,其功能可能不受影响
缓解手段:采用高可用配置,可以容许 1 个或者多个节点或组件同时出现故障

3.4 单个节点(VM 或者物理机)关机或者 Kubelet 故障

常见表象:此节点上的所有 Pod 都停止运行
缓解手段
① 对该 Pod 使用副本控制器 Deployment
Pod 设置为容许异常重启

3.5 网络阻断

常见表象:分区 A 认为分区 B 中所有的节点都已宕机;分区 B 认为 API Servre (位于分区 A)宕机

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容