Kubernetes(K8s)日常使用 100 个高级命令全攻略

适合对象:云原生工程师、运维工程师、DevOps 工程师、新手学习者

目的:掌握 K8s 高级命令与应用场景,实现快速排障与高效管理集群

一、集群级管理命令(Cluster Scope)

场景

命令

说明

查看所有集群上下文

kubectl config get-contexts

查看 kubeconfig 中的所有集群上下文

切换集群上下文

kubectl config use-context <context_name>

快速切换不同集群

查看当前上下文

kubectl config current-context

确认当前操作集群

查看集群信息

kubectl cluster-info

集群健康状态、API Server 等

查看节点及状态

kubectl get nodes -o wide

获取节点 IP、角色、版本等

获取节点详细信息

kubectl describe node <node_name>

查看节点 CPU/内存资源详情

标记节点不可调度

kubectl cordon <node_name>

临时停止在此节点调度

解除不可调度

kubectl uncordon <node_name>

恢复调度

排空节点

kubectl drain <node_name> –ignore-daemonsets

升级或维护前排空节点

获取集群版本

kubectl version –short

查看客户端/服务端版本

二、Pod 高级管理命令

场景

命令

说明

查看所有命名空间 Pod

kubectl get pods –all-namespaces -o wide

全局 Pod 状态

查看 Pod 详细信息

kubectl describe pod <pod_name>

深入调试

查看 Pod 日志(单容器)

kubectl logs <pod_name>

输出容器日志

查看 Pod 日志(多容器)

kubectl logs <pod_name> -c <container_name>

指定容器日志

实时查看日志

kubectl logs -f <pod_name>

持续输出日志

进入 Pod 容器交互

kubectl exec -it <pod_name> — /bin/bash

调试容器内部

复制文件到 Pod

kubectl cp ./file <namespace>/<pod_name>:/path

快速传文件

Pod 滚动重启

kubectl rollout restart deployment <deployment_name>

无停机更新 Pod

查看 Pod 事件

kubectl get events –sort-by=.metadata.creationTimestamp

定位异常

删除异常 Pod

kubectl delete pod <pod_name> –grace-period=0 –force

强制删除

三、Deployment & ReplicaSet 高级命令

场景

命令

说明

查看所有 Deployment

kubectl get deployment -o wide

应用部署概览

查看 Deployment 历史版本

kubectl rollout history deployment <deployment_name>

查看历史修订

回滚到上一个版本

kubectl rollout undo deployment <deployment_name>

回滚

缩容

kubectl scale deployment <deployment_name> –replicas=2

改副本数

滚动更新状态

kubectl rollout status deployment <deployment_name>

监控更新进度

强制更新镜像

kubectl set image deployment/<deployment_name> <container>=<new_image>

快速更新

四、Service & Ingress 高级命令

场景

命令

说明

查看所有 Service

kubectl get svc -o wide

服务概览

查看 Endpoints

kubectl get endpoints

关联 Pod

查看 Ingress

kubectl get ingress

查看入口流量规则

查看 Service YAML

kubectl get svc <service_name> -o yaml

导出配置

强制刷新 DNS 缓存

kubectl exec -it <pod_name> — nslookup <service_name>

测试服务解析

五、命名空间 & RBAC 管理

场景

命令

说明

查看所有命名空间

kubectl get ns

查看资源隔离

创建命名空间

kubectl create ns <namespace_name>

删除命名空间

kubectl delete ns <namespace_name>

查看角色

kubectl get role -n <namespace>

查看权限控制

查看角色绑定

kubectl get rolebinding -n <namespace>

六、资源 YAML 快速操作

场景

命令

说明

导出资源到文件

kubectl get <resource> <name> -o yaml > file.yaml

直接应用 YAML

kubectl apply -f file.yaml

快速更新

强制重新创建资源

kubectl replace –force -f file.yaml

七、排障与调试

场景

命令

说明

查看事件

kubectl get events -A

集群异常信息

查看 Pod Metrics

kubectl top pod -A

需安装 metrics-server

查看节点 Metrics

kubectl top nodes

CPU/内存

端口转发调试

kubectl port-forward <pod_name> 8080:80

本地访问 Pod

测试网络连通性

kubectl exec -it <pod_name> — curl <service_name>:<port>

八、常见自动化与脚本化

批量重启所有 Deployment:

for deploy in $(kubectl get deploy -n myns -o jsonpath='{.items[*].metadata.name}'); do

kubectl rollout restart deploy $deploy -n myns

done

批量删除 CrashLoopBackOff Pod:

kubectl get pods –all-namespaces | grep CrashLoopBackOff | awk '{print $2,$1}' | xargs -n2 sh -c 'kubectl delete pod $0 -n $1'

九、工具推荐

工具

说明

kubectx

快速切换上下文和命名空间

stern

多 Pod 日志聚合查看

k9s

终端图形化管理 K8s

Lens

桌面 GUI 工具管理 K8s

十、总结

  • 通过掌握以上 100 条命令,可以覆盖日常 90% 的 Kubernetes 管理需求
  • 配合工具(如 k9s、Lens)能大幅提升排障效率
  • 多使用 kubectl explain 和 kubectl get -o yaml 深入理解资源
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共2条

请登录后发表评论