惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
SecWiki News
SecWiki News
Forbes - Security
Forbes - Security
N
News | PayPal Newsroom
S
Security @ Cisco Blogs
Schneier on Security
Schneier on Security
V
V2EX - 技术
S
Secure Thoughts
W
WeLiveSecurity
Google DeepMind News
Google DeepMind News
C
CERT Recently Published Vulnerability Notes
NISL@THU
NISL@THU
S
Securelist
S
Security Archives - TechRepublic
Know Your Adversary
Know Your Adversary
V
Vulnerabilities – Threatpost
Security Latest
Security Latest
Recent Commits to openclaw:main
Recent Commits to openclaw:main
G
GRAHAM CLULEY
H
Hacker News: Front Page
Microsoft Azure Blog
Microsoft Azure Blog
I
Intezer
Google Online Security Blog
Google Online Security Blog
美团技术团队
阮一峰的网络日志
阮一峰的网络日志
T
The Exploit Database - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Webroot Blog
Webroot Blog
Jina AI
Jina AI
Engineering at Meta
Engineering at Meta
P
Proofpoint News Feed
The Cloudflare Blog
I
InfoQ
L
LangChain Blog
U
Unit 42
P
Proofpoint News Feed
S
Schneier on Security
S
Security Affairs
Y
Y Combinator Blog
T
Tenable Blog
N
News and Events Feed by Topic
MyScale Blog
MyScale Blog
量子位
Google DeepMind News
Google DeepMind News
Cyberwarzone
Cyberwarzone
博客园 - 聂微东
D
Darknet – Hacking Tools, Hacker News & Cyber Security
GbyAI
GbyAI
AWS News Blog
AWS News Blog

二叉树的博客

通用docker容器镜像打包应用的流程 kubevirt初体验 魔改dockur制作可迁移的Windows镜像(单文件) 通过dockur制作可迁移的Windows镜像(双文件) 通过ProxmoxVE制作kubevirt可用的Windows镜像 基于docker的在线IDE制作(支持浏览器直接访问) jetbrains家的goland项目可用但老爆红 机房本地服务器自建Gitea并使用 nvidia-smi被自动升级无法与GPU通信了怎么办 conda使用GPU时的一些陷阱 给机房的LXD容器配置跳板机进行连接 在Pycharm上连接远程虚拟环境进行使用 给机房的Ubuntu22.04安装LXD共享GPU资源 给机房的Ubuntu22.04的Linux进行内穿映射端口
k8s日常问题排障
二叉树上的我 · 2025-02-25 · via 二叉树的博客

一般流程

需要确保无SWAP,否则kubelet起不来

然后需要

1
docker ps -a | grep etcd

看平面容器起来了没有,没有的话就得看容器日志排查问题

然后

看核心的namespace的pod有没有起来,有没有ready,有问题的pod名字就describe一下 下面所有示例都用kube-system作为查询的namespace,实际看你要查什么服务对应的namespace

1
kubectl describe pod license-xq13d -n kube-system

如果正常pull拉得到镜像,那就得查log

1
kubectl logs license-xq13d -n kube-system

如果pod有多个容器类型,比如有api的,有controller的,那就得-c指定容器类型

1
kubectl logs license-xq13d -c controller -n kube-system

有时候报错是一长串,得--tail 100

1
kubectl logs license-xq13d -n kube-system --tail 100

有时候得实时追踪,得-f

1
kubectl logs license-xq13d -n kube-system -f

类似的,也有命令实时看pod的

1
kubectl get pods -n kube-system -w

pod有可能因为调度器问题马上拉起来又被删了,执行这些命令查询查不到任何东西 这时得查job

1
kubectl get jobs -n kube-system

得查events

1
kubectl get events -n kube-system

有时候因为状态改变太快了,jobevents也得-w实时打印,操作后查看状态改变前后耗时以及出现了什么状态 有时候pod需要修改deploymentpull的镜像的版本(常见本地开发完备了要更新上集群测试),项目的manifest.yaml已经kubectl apply -f了 这时候就需要

1
kubectl get deployments -n kube-system

查询需要修改的pod名字对应的deployments名字 然后edit

1
kubectl edit deployment <deployment-name> -n kube-system

这时候起来的修改器类似vimvi,可用/查询,可用 上下查看查到的关键词,用exit退出编辑,用:wq写入修改和退出修改器 修改后使用命令:

1
kubectl get pods -n kube-system -w

查询对应的pod有没有被重建,有没有如期ready 如果未能如期起来和替换,那么手动delete掉pod,因为有设置spec.replicasdeployment中,所以会重建pod

1
kubectl delete pod license-xq13d -n kube-system

有时候需要本地开发,本地启动apicontroller,那么就需要集群中设置对应的服务的pod的副本数量修改为0,避免调度冲突

1
kubectl edit deployment <deployment-name> -n kube-system

在编辑器中找到spec.replicas字段并修改数值,然后保存退出(:wq)。 修改后使用以下命令监控副本数量变化:

1
kubectl get deployment <deployment-name> -n kube-system -w

1
kubectl get pods -n kube-system -l app=<app-label> -w

还有查node状态

一般的k8s运维看BUG这些足够了,更多的就得知道底层代码逻辑去判断了。