【K8S系列】Kubernetes常用 命令
以下为的 Kubernetes 超全常用命令文档,涵盖集群管理、资源操作、调试排错等核心场景,结合示例与解析, 高效运维 Kubernetes 环境。
一、集群与节点管理
1. 集群信息查看
- 查看集群基本信息
kubectl cluster-info # 显示API Server、DNS等核心组件地址
- 查看当前上下文
kubectl config current-context # 显示当前使用的集群上下文
- 切换上下文
kubectl config use-context <context-name> # 用于多集群环境切换
2. 节点管理
- 列出所有节点状态
kubectl get nodes # 显示节点名称、状态、版本等基本信息
- 查看节点详细信息
kubectl describe node <node-name> # 包括资源分配(CPU/内存)、Pod分布等
- 监控节点资源使用
kubectl top nodes # 需提前部署 Metrics Server
二、命名空间(Namespace)管理
1. 基本操作
- 查看所有命名空间
kubectl get ns # 缩写形式,等同于 `kubectl get namespaces`
- 创建命名空间
kubectl create ns <namespace-name> # 例如 `kubectl create ns test`
- 删除命名空间及资源
kubectl delete ns <namespace-name> # 级联删除命名空间内所有资源
2. 命名空间切换
- 设置默认命名空间
kubectl config set-context --current --namespace=<namespace> # 后续命令默认使用该命名空间
- 使用插件快速切换
安装kubens
后,执行kubens <namespace>
切换当前命名空间 。
三、Pod 管理
1. 基础操作
- 查看所有 Pod
kubectl get pods -A -o wide # 跨命名空间显示 Pod 及所在节点信息
- 查看指定命名空间的 Pod
kubectl get pods -n <namespace> # 例如 `kubectl get pods -n kube-system`
- 查看 Pod 详情与事件
kubectl describe pod <pod-name> # 包含容器状态、事件日志等
2. 交互与日志
- 进入容器终端
kubectl exec -it <pod-name> -- /bin/bash # 若镜像精简,使用 `/bin/sh`
- 查看容器日志
kubectl logs <pod-name> # 实时日志追加 `-f` 参数
3. 删除与重建
- 强制删除 Pod
kubectl delete pod <pod-name> --force --grace-period=0 # 立即终止
四、工作负载管理(Deployment/Service)
1. Deployment 操作
- 创建 Deployment
kubectl create deployment nginx --image=nginx --replicas=3 # 指定镜像与副本数
- 扩缩容
kubectl scale deployment nginx --replicas=5 # 动态调整副本数
- 回滚版本
kubectl rollout undo deployment nginx # 回退到上一版本
2. Service 管理
- 查看 Service 列表
kubectl get svc -A # 显示所有服务的 ClusterIP 和端口
- 端口转发测试
kubectl port-forward <pod-name> 8080:80 # 本地访问 `localhost:8080` 映射到容器端口
五、配置与存储管理
1. ConfigMap 与 Secret
- 创建 ConfigMap
kubectl create configmap app-config --from-file=config.properties # 从文件生成
- 查看 Secret 内容
kubectl get secret <secret-name> -o jsonpath='{.data}' # 解码后查看明文
2. 持久化存储
- 查看 PVC/PV 状态
kubectl get pvc # 查看 PersistentVolumeClaim kubectl get pv # 查看 PersistentVolume
六、调试与排错
1. 事件与资源状态
- 查看集群事件
kubectl get events --sort-by='.metadata.creationTimestamp' # 按时间排序
- 检查资源配额
kubectl describe quota # 显示命名空间资源限制
2. 网络测试
- Pod 内网络连通性测试
kubectl exec <pod-name> -- curl http://<service-name> # 测试服务可达性
七、高级命令与技巧
1. 资源导出与恢复
- 导出资源配置
kubectl get deployment/nginx -o yaml > nginx-backup.yaml # 备份 YAML 文件
- 批量删除资源
kubectl delete all --all -n <namespace> # 清空命名空间内所有资源
2. 资源缩写与格式化
- 使用资源缩写
kubectl get po,svc,deploy # 等价于 `pods`, `services`, `deployments`
- JSON/自定义输出
kubectl get pods -o json # 输出为 JSON 格式 kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase # 自定义列
八、附录:常用资源类型缩写表
资源类型 | 缩写 | 示例命令 |
---|---|---|
pods | po | kubectl get po |
services | svc | kubectl get svc |
deployments | deploy | kubectl get deploy |
namespaces | ns | kubectl get ns |
persistentvolumeclaims | pvc | kubectl get pvc |
完整列表参考 |
以上命令覆盖了 Kubernetes 日常运维的 80% 场景,建议结合 kubectl explain <resource>
查看字段说明 。如需更完整命令或最新特性,请参考 Kubernetes 官方文档或上述来源。