K8s 基础命令的 7 大核心模块
Kubernetes(k8s)基础命令可根据核心功能场景划分为 7 大模块,覆盖从 “集群管理” 到 “资源运维” 的全流程操作。每个模块聚焦一类核心任务,
一、集群与节点管理模块(集群基础架构)
作用:查看集群状态、节点信息,管理节点(如标记污点、调度策略),是集群运维的基础。
高频命令:
| 命令 | 核心用途 | 示例 |
|---|---|---|
kubectl get nodes | 列出集群所有节点及状态(Ready/NotReady) | kubectl get nodes -o wide(显示节点 IP、资源等详情) |
kubectl describe node <节点名> | 查看节点详细信息(资源、污点、标签、事件) | kubectl describe node node-1(排查节点异常的核心命令) |
kubectl top node | 查看节点 CPU、内存使用率(需 metrics-server) | kubectl top node(实时监控节点资源负载) |
kubectl cordon <节点名> | 标记节点为 “不可调度”(阻止新 Pod 调度) | kubectl cordon node-1(节点维护前的准备操作) |
kubectl uncordon <节点名> | 解除节点 “不可调度” 标记 | kubectl uncordon node-1(维护完成后恢复调度) |
kubectl drain <节点名> | 排空节点(驱逐 Pod 并标记不可调度,用于维护) | kubectl drain node-1 --ignore-daemonsets(忽略 DaemonSet 的 Pod) |
二、Pod 管理模块(最小部署单元)
作用:管理 Pod 的生命周期(创建、查看、删除、进入容器等),Pod 是 k8s 中运行容器的最小单位。
高频命令:
| 命令 | 核心用途 | 示例 |
|---|---|---|
kubectl get pods | 列出当前命名空间的 Pod 及状态(Running/Pending 等) | kubectl get pods -n kube-system(查看系统命名空间 Pod)、kubectl get pods -o wide(显示运行节点和 IP) |
kubectl describe pod <Pod名> | 查看 Pod 详细信息(容器状态、事件、挂载、资源) | kubectl describe pod nginx-7f9b7c976c-2xq8l(排查 Pod 启动失败原因) |
kubectl logs <Pod名> | 查看 Pod 中容器的日志 | kubectl logs <Pod名> -c <容器名>(指定容器)、kubectl logs -f <Pod名>(实时跟踪日志) |
kubectl exec -it <Pod名> -- <命令> | 进入 Pod 的容器执行命令(交互式终端) | kubectl exec -it nginx-pod -- /bin/bash(进入容器终端) |
kubectl create pod <Pod名> --image=<镜像> | 快速创建测试用 Pod(生产建议用控制器) | kubectl create pod test-nginx --image=nginx:latest |
kubectl delete pod <Pod名> | 删除指定 Pod(控制器管理的 Pod 会自动重建) | kubectl delete pod nginx-pod |
三、工作负载管理模块(Pod 编排控制器)
作用:通过 Deployment、StatefulSet、DaemonSet 等控制器管理 Pod,实现 Pod 的自动伸缩、滚动更新、自愈等。
高频命令:
| 命令 | 核心用途 | 示例 |
|---|---|---|
kubectl get deployments | 列出 Deployment(无状态应用控制器) | kubectl get deploy -o wide(显示副本数、更新策略) |
kubectl create deployment <名称> --image=<镜像> | 创建 Deployment(自动管理 Pod 副本) | kubectl create deployment nginx-deploy --image=nginx:latest |
kubectl scale deployment <名称> --replicas=<数量> | 调整 Deployment 的 Pod 副本数(扩缩容) | kubectl scale deployment nginx-deploy --replicas=3 |
kubectl set image deployment/<名称> <容器名>=<新镜像> | 更新 Deployment 的容器镜像(滚动更新) | kubectl set image deployment/nginx-deploy nginx=nginx:1.23 |
kubectl rollout status deployment/<名称> | 查看 Deployment 更新进度 | kubectl rollout status deployment/nginx-deploy |
kubectl rollout undo deployment/<名称> | 回滚 Deployment 到上一版本 | kubectl rollout undo deployment/nginx-deploy |
kubectl get statefulsets | 列出 StatefulSet(有状态应用控制器,如数据库) | kubectl get sts(sts 为缩写) |
kubectl get daemonsets | 列出 DaemonSet(每个节点运行一个 Pod,如监控代理) | kubectl get ds -n kube-system |
四、服务与网络模块(Pod 通信与访问)
作用:管理 Service(Pod 的访问入口)、Ingress(外部流量入口)、网络策略等,实现 Pod 间及外部与 Pod 的通信。
高频命令:
| 命令 | 核心用途 | 示例 |
|---|---|---|
kubectl get services | 列出 Service(Pod 的固定访问入口) | kubectl get svc -o wide(显示类型、ClusterIP、端口映射) |
kubectl expose deployment <部署名> --port=<端口> --type=<类型> | 为 Deployment 创建 Service | kubectl expose deployment nginx-deploy --port=80 --type=NodePort(创建 NodePort 类型,外部可访问) |
kubectl get ingresses | 列出 Ingress(外部 HTTP/HTTPS 路由管理) | kubectl get ing(ing 为缩写) |
kubectl describe service <服务名> | 查看 Service 详细信息(关联 Pod、端点等) | kubectl describe svc nginx-svc |
kubectl get endpoints <服务名> | 查看 Service 关联的 Pod 端点(确认绑定是否正常) | kubectl get ep nginx-svc(ep 为 endpoints 缩写) |
五、配置与存储模块(数据持久化与配置)
作用:管理 ConfigMap(非敏感配置)、Secret(敏感信息)及 PV/PVC(持久化存储),确保配置可复用、数据不丢失
高频命令:
| 命令 | 核心用途 | 示例 |
|---|---|---|
kubectl get configmaps | 列出 ConfigMap(存储非敏感配置,如环境变量) | kubectl get cm(cm 为缩写) |
kubectl create configmap <名称> --from-literal=<键=值> | 创建 ConfigMap | kubectl create configmap app-config --from-literal=env=prod --from-literal=log_level=info |
kubectl get secrets | 列出 Secret(存储敏感信息,如密码、证书,自动加密) | kubectl get secrets -o yaml(查看解密后的内容,需 base64 解码) |
kubectl create secret generic <名称> --from-literal=<键=值> | 创建通用 Secret | kubectl create secret generic db-creds --from-literal=username=admin --from-literal=password=123456 |
kubectl get persistentvolumes | 列出 PV(持久卷,集群级存储资源) | kubectl get pv |
kubectl get persistentvolumeclaims | 列出 PVC(持久卷声明,Pod 申请存储的接口) | kubectl get pvc |
六、命名空间与资源配额模块(资源隔离与限制)
作用:通过命名空间实现多环境 / 团队的资源隔离,通过资源配额限制资源使用上限,避免资源抢占冲突
高频命令:
| 命令 | 核心用途 | 示例 |
|---|---|---|
kubectl get namespaces | 列出集群所有命名空间(实现资源隔离) | kubectl get ns(ns 为缩写) |
kubectl create namespace <名称> | 创建新命名空间(隔离不同环境,如 dev/prod) | kubectl create namespace dev |
kubectl -n <命名空间> get pods | 操作指定命名空间的资源(默认是 default) | kubectl -n dev get pods(查看 dev 命名空间的 Pod) |
kubectl get resourcequotas | 列出资源配额(限制命名空间的资源使用) | kubectl get quota -n dev |
kubectl describe namespace <名称> | 查看命名空间详情(包含资源配额、标签) | kubectl describe ns dev |
七、集群安全与权限模块(访问控制)
作用:基于 RBAC 模型管理 ServiceAccount、角色及绑定关系,控制用户 / 服务对集群资源的访问权限,保障集群安全
高频命令:
| 命令 | 核心用途 | 示例 |
|---|---|---|
kubectl get serviceaccounts | 列出 ServiceAccount(Pod 的身份账号) | kubectl get sa -n kube-system(sa 为缩写) |
kubectl get roles | 列出 Role(命名空间内的权限规则) | kubectl get roles -n dev |
kubectl get rolebindings | 列出 RoleBinding(将 Role 绑定到用户 / ServiceAccount) | kubectl get rolebindings -n dev |
kubectl get clusterroles | 列出 ClusterRole(集群级的权限规则) | kubectl get clusterroles |
kubectl get clusterrolebindings | 列出 ClusterRoleBinding(绑定 ClusterRole 到用户) | kubectl get clusterrolebindings |
总结
k8s 命令的 7 大模块逻辑清晰,覆盖 “集群基础→Pod 生命周期→应用编排→网络通信→数据管理→资源隔离→安全控制” 的全流程:
- 集群与节点:掌控集群硬件资源状态;
- Pod 管理:操作最小部署单元,是日常排查的核心;
- 工作负载:通过控制器实现 Pod 的自动化管理;
- 服务与网络:解决 Pod 通信与外部访问问题;
- 配置与存储:管理应用配置和数据持久化;
- 命名空间:实现多环境、多团队的资源隔离;
- 安全与权限:通过 RBAC 控制资源访问权限。
K8s基础命令七大模块解析

1748

被折叠的 条评论
为什么被折叠?



