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

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
Tenable Blog
P
Proofpoint News Feed
爱范儿
爱范儿
The Hacker News
The Hacker News
W
WeLiveSecurity
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Register - Security
The Register - Security
I
Intezer
S
SegmentFault 最新的问题
P
Privacy & Cybersecurity Law Blog
人人都是产品经理
人人都是产品经理
Security Archives - TechRepublic
Security Archives - TechRepublic
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
G
GRAHAM CLULEY
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
P
Palo Alto Networks Blog
A
About on SuperTechFans
Attack and Defense Labs
Attack and Defense Labs
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园_首页
SecWiki News
SecWiki News
博客园 - 聂微东
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
Last Week in AI
Last Week in AI
Forbes - Security
Forbes - Security
C
Cyber Attacks, Cyber Crime and Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
F
Full Disclosure
Help Net Security
Help Net Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Proofpoint News Feed
S
Schneier on Security
K
Kaspersky official blog
S
Secure Thoughts
C
Cisco Blogs
T
Tor Project blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LangChain Blog
Hacker News: Ask HN
Hacker News: Ask HN
N
News and Events Feed by Topic
MyScale Blog
MyScale Blog

博客园 - 梦徒

K8s节点NotReady恢复方法 GPU和CPU的知识 K8s 集群巡检项整理 K8s运维的核心能力建设 Ceph 分布式存储系统 VMware备份接口 股市布林线(BOLL)指标三条线的使用技巧 Python 数据分析入门|02:Pandas 数据清洗:缺失值/重复值/异常值处理 Python 数据分析入门|01 Pandas 基础:1 行代码读取 Excel/Csv文件 python f-string格式化输出 Python数据分析利器-Pandas数据处理-筛选与排序 Python数据分析利器-Pandas 简介 python-分割文件名及后缀 python类及三大特性 Python 类的属性和方法详解 Python 必背内置函数 python常用数据结构之字典 MQ三巨头RocketMQ、Kafka、RabbitMQ 选型 一文搞懂 Redis 的三种集群方案 VMware ESXi 磁盘置备类型详解 Linux 实例:配置 NTP 服务 Kubernetes + CI/CD 全流程指南!实现自动化部署 Linux Redhat 7.9 下 Docker 离线安装部署
Kubernetes 运维必备之常用命令总结
梦徒 · 2025-08-28 · via 博客园 - 梦徒

一、集群与资源管理

1.>查看所有命名空间下的资源(Pod/Deployment/service/endpoints 等)信息

资源定义:

  Service:Service是K8s中的一个抽象层,它定义了一种访问Pod集合的方式.

  Endpoint:Endpoint是K8s中的一种资源,用于描述Service的实际访问点.

  Deployment:Deployment是K8S推荐的高级副本管理工具,能够自动创建、更新Pod副本,并维持指定数量的副本运行.

  Pod:Pod是k8s系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在k8s上运行容器化应用的资源对象,其他的资源对象都是用来支撑或者扩展Pod对象功能的,比如控制器Deployment对象是用来管控Pod对象的,Service或Ingress资源对象是用来暴露Pod引用对象的,Endpoint是描述提供服务的Pod的IP地址和端口信息的,PersistentVolume资源对象是用来为Pod提供存储等等,k8s不会直接处理容器,而是Pod,Pod是由一个或者多个container组成的.

kubectl get pods,deploy -A -o wide
kubectl -n namespace get svc,ep

2.>显示资源详细信息(事件、配置、状态),主要用于诊断 Pod 异常原因

kubectl describe pod nginx-pod

3.> 创建或更新资源(推荐替代 create

kubectl apply -f deployment.yaml

4.> 删除资源(支持名称/标签/YAML)

kubectl delete pods -l app=nginx

二、应用部署与更新

1.> 管理滚动更新(状态/回滚/暂停),回滚到上一版本

kubectl rollout undo deployment/nginx

2.> 动态调整副本数,扩容至 5 副本

kubectl scale deploy/nginx --replicas=5

3.> 热更新容器镜像

kubectl set image deploy/nginx nginx=nginx:1.25

4.> 自动扩缩容,配置 HPA(水平自动扩缩容)

kubectl autoscale deploy/nginx --min=2 --max=10 --cpu-percent=80

三、调试与诊断

1.> 实时追踪容器日志

kubectl logs -f nginx-pod --tail=100

2.> 进入容器执行命令

kubectl exec -it nginx-pod -- /bin/bash

3.> 端口转发到 Pod,用于本地调试

kubectl port-forward svc/nginx 8080:80

4.> 查看节点/Pod 资源利用率(需 Metrics Server)

kubectl top nodes

四、节点与集群维护

1.> 标记节点不可调度,用于节点维护及节点隔离.

kubectl cordon node-01

2.> 驱逐节点 Pod(准备维护)

kubectl drain node-01 --ignore-daemonsets

3.> 调度控制,为节点添加污点.

kubectl taint nodes node-01 env=prod:NoSchedule

4.> 查看集群核心服务地址

kubectl cluster-info

五、配置与权限管理

1.> 上下文管理,切换多集群配置

kubectl config use-context prod

2.> 权限验证,检查 RBAC 权限.

kubectl auth can-i delete pods --as=system:serviceaccount:default:test

六、高阶操作

1.> 字段更新,热更新资源字段(无需替换完整 YAML)

kubectl patch deployment nginx -p '{"spec":{"replicas":3}}'

2.> 元数据管理,为资源添加标签

kubectl label pods nginx-pod env=prod

七、详细命令示例与说明

kubectl get - 列出资源:

# 列出所有命名空间的Pod
kubectl get pods --all-namespaces

# 列出默认命名空间的Deployment
kubectl get deployments

# 列出节点信息
kubectl get nodes -o wide

# 以yaml格式列出Pod信息
kubectl get pod nginx-pod -o yaml

kubectl describe - 显示资源详细信息;

# 描述Pod详情
kubectl describe pod nginx-pod

# 描述节点详情
kubectl describe node worker-node-1

# 描述Service详情
kubectl describe service nginx-service

kubectl create - 创建资源:

# 通过YAML文件创建资源
kubectl create -f nginx-deployment.yaml

# 创建命名空间
kubectl create namespace test-ns

# 从docker镜像创建Deployment
kubectl create deployment nginx --image=nginx:1.20

kubectl apply - 应用配置:

# 应用YAML配置(创建或更新)
kubectl apply -f nginx-deployment.yaml

# 应用目录下的所有配置文件
kubectl apply -f ./manifests/

kubectl delete - 删除资源:

# 删除Pod
kubectl delete pod nginx-pod

# 通过标签删除资源
kubectl delete pods -l app=nginx

# 删除命名空间及其所有资源
kubectl delete namespace test-ns --force

2. 故障排查命令

kubectl logs - 查看日志

# 查看Pod日志
kubectl logs nginx-pod

# 实时查看日志
kubectl logs -f nginx-pod

# 查看多容器Pod中的特定容器日志
kubectl logs nginx-pod -c nginx-container

# 查看之前崩溃的容器日志
kubectl logs -p nginx-pod

kubectl exec - 在容器中执行命令

# 进入Pod的交互式shell
kubectl exec -it nginx-pod -- /bin/bash

# 在Pod中执行简单命令
kubectl exec nginx-pod -- ls /etc/nginx

# 在指定容器中执行命令
kubectl exec -it nginx-pod -c nginx-container -- /bin/bash

kubectl port-forward - 端口转发:

# 将本地8080端口转发到Pod的80端口
kubectl port-forward nginx-pod 8080:80

# 转发到Service
kubectl port-forward service/nginx-service 8080:80

# 在后台运行端口转发
kubectl port-forward nginx-pod 8080:80 &

kubectl top - 资源使用统计:

# 查看节点资源使用情况
kubectl top nodes

# 查看Pod资源使用情况
kubectl top pods

# 查看指定命名空间的Pod资源使用
kubectl top pods -n kube-system

kubectl cp - 文件拷贝:

# 从容器拷贝文件到本地
kubectl cp nginx-pod:/etc/nginx/nginx.conf ./nginx.conf

# 从本地拷贝文件到容器
kubectl cp ./config.txt nginx-pod:/tmp/config.txt

# 拷贝到指定容器
kubectl cp ./file.txt nginx-pod:/tmp/file.txt -c nginx-container

3.资源配置命令:

kubectl edit - 编辑资源:

# 编辑Deployment
kubectl edit deployment nginx-deployment

# 编辑指定命名空间的资源
kubectl edit deployment nginx -n production

# 使用特定编辑器
KUBE_EDITOR="vim" kubectl edit deployment nginx

kubectl scale - 扩缩容:

# 扩展Deployment副本数
kubectl scale --replicas=5 deployment/nginx-deployment

# 基于当前副本数进行扩展
kubectl scale --current-replicas=3 --replicas=5 deployment/nginx-deployment

kubectl set - 配置资源参数:

# 更新容器镜像
kubectl set image deployment/nginx nginx=nginx:1.21

# 设置环境变量
kubectl set env deployment/nginx DEBUG=true

# 更新资源限制
kubectl set resources deployment/nginx -c=nginx --limits=cpu=200m,memory=512Mi

kubectl patch - 部分更新资源:

# 更新容器镜像
kubectl patch pod nginx -p '{"spec":{"containers":[{"name":"nginx","image":"nginx:1.21"}]}}'

# 添加注解
kubectl patch deployment nginx -p '{"metadata":{"annotations":{"version":"v2"}}}'

kubectl rollout - 部署管理:

# 查看部署状态
kubectl rollout status deployment/nginx

# 回滚部署
kubectl rollout undo deployment/nginx

# 查看部署历史
kubectl rollout history deployment/nginx

# 重启部署(触发滚动更新)
kubectl rollout restart deployment/nginx

4. 集群管理命令

kubectl cluster-info - 集群信息:

# 显示集群基本信息
kubectl cluster-info

# 显示详细集群信息
kubectl cluster-info dump

kubectl api-resources - API资源查询:

# 列出所有API资源
kubectl api-resources

# 显示资源的API版本
kubectl api-resources --api-group=apps

kubectl config - 配置管理:

# 显示当前上下文
kubectl config current-context

# 切换上下文
kubectl config use-context production-cluster

# 查看配置
kubectl config view

kubectl auth - 权限检查:

# 检查当前用户是否有创建Pod的权限
kubectl auth can-i create pods

# 检查特定用户权限
kubectl auth can-i list deployments --as=system:serviceaccount:default:default

kubectl explain - 资源文档:

# 查看Pod资源的文档
kubectl explain pods

# 查看Pod的spec字段文档
kubectl explain pods.spec

# 查看容器字段文档
kubectl explain pods.spec.containers

5. 实用技巧与最佳实践

  • 使用别名:为常用命令设置别名,如 alias k='kubectl'
  • 自动补全:启用kubectl自动补全功能提高效率
  • **使用 -o wide/yaml/json**:获取更详细或特定格式的输出
  • 标签选择器:使用 -l 参数通过标签筛选资源
  • 跨命名空间操作:使用 -n 或 --all-namespaces 管理不同命名空间的资源

参考文档:https://kubernetes.io/docs/reference/kubectl/