以下是 Kubernetes 常用命令的整理,涵盖集群管理、资源操作、调试排错等场景,帮助您快速掌握核心操作:
一、集群管理
命令 | 说明 |
---|---|
kubectl cluster-info |
查看集群信息 |
kubectl config get-contexts |
列出所有上下文(集群配置) |
kubectl config use-context <context-name> |
切换集群或命名空间 |
kubectl get componentstatuses |
检查集群组件状态(如 scheduler、controller-manager) |
二、资源管理
通用操作
命令 | 说明 |
---|---|
kubectl get <resource> |
查看资源列表(如 pods , deployments , services ) |
kubectl describe <resource> <name> |
查看资源详细信息(事件、状态等) |
kubectl create -f <file.yaml> |
通过 YAML 文件创建资源 |
kubectl apply -f <file.yaml> |
应用/更新资源配置 |
kubectl delete -f <file.yaml> |
删除 YAML 中定义的资源 |
kubectl delete <resource> <name> |
删除指定资源(如 pod/my-pod ) |
kubectl edit <resource> <name> |
直接编辑资源配置(实时生效) |
常用资源别名
po
: Podsdeploy
: Deploymentssvc
: Servicesns
: Namespacespv
: PersistentVolumespvc
: PersistentVolumeClaims
三、部署与扩缩容
命令 | 说明 |
---|---|
kubectl scale deploy/<name> --replicas=3 |
扩展 Deployment 的副本数 |
kubectl rollout status deploy/<name> |
查看部署状态(如滚动更新进度) |
kubectl rollout history deploy/<name> |
查看部署历史版本 |
kubectl rollout undo deploy/<name> |
回滚到上一个版本 |
kubectl set image deploy/<name> <container>=<new-image> |
更新容器镜像(触发滚动更新) |
四、调试与日志
命令 | 说明 |
---|---|
kubectl logs <pod-name> |
查看 Pod 日志 |
kubectl logs -f <pod-name> |
实时跟踪日志(类似 tail -f ) |
kubectl exec -it <pod-name> -- /bin/sh |
进入 Pod 的 Shell 环境 |
kubectl port-forward <pod-name> 8080:80 |
将 Pod 端口转发到本地(如访问服务) |
kubectl top pod |
查看 Pod 资源使用(需安装 metrics-server) |
kubectl get events --sort-by=.metadata.creationTimestamp |
查看集群事件(按时间排序) |
五、网络与服务
命令 | 说明 |
---|---|
kubectl expose deploy/<name> --port=80 --type=NodePort |
创建 Service 暴露 Deployment |
kubectl get endpoints <service-name> |
查看 Service 关联的 Pod IP |
kubectl get ingress |
查看 Ingress 配置 |
六、配置与存储
命令 | 说明 |
---|---|
kubectl get configmaps |
查看所有 ConfigMap |
kubectl get secrets |
查看所有 Secret |
kubectl create secret generic <name> --from-file=<key>=<path> |
创建 Secret |
七、高级操作
命令 | 说明 |
---|---|
kubectl patch <resource> <name> -p '{"spec": {"replicas": 2}}' |
部分更新资源配置 |
kubectl label <resource> <name> key=value |
添加/修改标签 |
kubectl annotate <resource> <name> key=value |
添加/修改注解 |
kubectl get <resource> -o yaml > file.yaml |
导出资源配置到 YAML 文件 |
kubectl delete pod --force --grace-period=0 <pod-name> |
强制删除 Pod(慎用) |
八、插件与工具
命令 | 说明 |
---|---|
kubectl krew install <plugin> |
使用 Krew 安装插件(如 ctx , ns ) |
kubectl helm install <chart> |
通过 Helm 安装应用(需安装 Helm) |
常用示例场景
-
快速创建 Pod
kubectl run nginx --image=nginx --port=80
-
查看所有命名空间的 Pod
kubectl get pods -A
-
查看特定标签的 Pod
kubectl get pods -l app=web
-
调试启动失败的 Pod
kubectl describe pod/<name> # 查看错误原因 kubectl logs <pod-name> -c <container-name> # 查看指定容器日志