kubectl常用命令记录

kubectl 常用命令汇总

一、基础命令

查看集群信息

bash 复制代码
kubectl cluster-info          # 显示集群基本信息
kubectl version               # 查看客户端和服务器版本
kubectl config view           # 查看当前 kubeconfig 配置

查看节点和组件状态

bash 复制代码
kubectl get nodes             # 查看所有节点状态
kubectl get componentstatuses # 查看控制平面组件状态(如 scheduler、controller-manager)

二、资源操作

查看资源

bash 复制代码
kubectl get <resource-type>                # 查看资源列表(如 pods, deployments, services)
kubectl get pods -n <namespace>            # 查看指定命名空间的 Pod
kubectl get pods --all-namespaces          # 查看所有命名空间的 Pod
kubectl describe <resource-type> <name>    # 查看资源详细信息(如 `kubectl describe pod my-pod`)

创建/删除资源

bash 复制代码
kubectl create -f <manifest.yaml>          # 通过 YAML 文件创建资源
kubectl delete -f <manifest.yaml>          # 通过 YAML 文件删除资源
kubectl delete pod <pod-name>              # 删除指定 Pod
kubectl delete deployment <deploy-name>    # 删除 Deployment

更新资源

bash 复制代码
kubectl apply -f <manifest.yaml>           # 应用 YAML 文件更新资源
kubectl edit <resource-type> <name>       # 直接编辑资源定义(如 `kubectl edit deployment my-deploy`)
kubectl replace -f <manifest.yaml>         # 替换资源配置

三、Pod 相关

查看日志

bash 复制代码
kubectl logs <pod-name>                    # 查看 Pod 日志
kubectl logs -f <pod-name>                 # 实时跟踪日志(类似 `tail -f`)
kubectl logs --tail=100 <pod-name>         # 查看最近 100 行日志

进入 Pod 执行命令

bash 复制代码
kubectl exec -it <pod-name> -- /bin/bash   # 进入 Pod 的交互式 Shell
kubectl exec <pod-name> -- <command>       # 在 Pod 中执行单条命令(如 `kubectl exec my-pod -- ls /`)

调试 Pod

bash 复制代码
kubectl port-forward <pod-name> <local-port>:<pod-port>  # 端口转发到本地(如 `8080:80`)

四、部署与扩缩容

部署管理

bash 复制代码
kubectl rollout status deployment/<deploy-name>  # 查看部署状态
kubectl rollout history deployment/<deploy-name> # 查看部署历史
kubectl rollout undo deployment/<deploy-name>    # 回滚到上一个版本

扩缩容

bash 复制代码
kubectl scale deployment/<deploy-name> --replicas=3  # 调整副本数
kubectl autoscale deployment/<deploy-name> --min=2 --max=5 --cpu-percent=80  # 自动扩缩容(HPA)

五、服务与网络

暴露服务

bash 复制代码
kubectl expose deployment/<deploy-name> --port=80 --type=NodePort      # 创建 NodePort 服务
kubectl expose deployment/<deploy-name> --port=80 --type=LoadBalancer # 创建 LoadBalancer 服务

查看服务

bash 复制代码
kubectl get services          # 查看所有服务
kubectl get endpoints         # 查看服务的后端端点

六、配置管理

ConfigMap 和 Secret

bash 复制代码
kubectl create configmap <name> --from-file=<file-path>      # 从文件创建 ConfigMap
kubectl create secret generic <name> --from-literal=<key>=<value>  # 创建 Secret
kubectl get secrets            # 查看所有 Secret

管理命名空间

bash 复制代码
kubectl create namespace <namespace>   # 创建命名空间
kubectl get namespaces          # 查看所有命名空间

七、故障排查与调试

查看资源状态

bash 复制代码
kubectl top nodes              # 查看节点资源使用情况(需安装 metrics-server)
kubectl top pods               # 查看 Pod 资源使用情况

事件与诊断

bash 复制代码
kubectl get events             # 查看集群事件
kubectl api-resources          # 列出所有支持的资源类型

八、高级命令

bash 复制代码
kubectl proxy                     # 启动代理访问 Kubernetes API(默认端口 8001)
kubectl api-versions              # 查看支持的 API 版本
kubectl explain <resource-type>  # 查看资源字段说明(如 `kubectl explain pod.spec`)

总结

使用 -n <namespace> 指定命名空间(如 kubectl get pods -n kube-system)。 使用 -o wide-o yaml-o json 调整输出格式。 结合 --dry-run=client 测试命令效果(如 kubectl create deployment --dry-run=client -o yaml)。

相关推荐
云上艺旅2 小时前
K8S学习之基础二十八:k8s中的configMap
学习·云原生·容器·kubernetes
云上艺旅4 小时前
K8S学习之基础三十:k8s的资源访问方式
学习·云原生·容器·kubernetes
梁梁梁梁较瘦4 小时前
【踩坑帖】死抠党福利-使用vbox快速搭建k8s实验集群
kubernetes
LCY1336 小时前
k8s系统学习路径
学习·容器·kubernetes
云上艺旅6 小时前
K8S学习之基础二十七:k8s中daemonset控制器
云原生·容器·kubernetes·jenkins
4dm1n6 小时前
kube-proxy有什么作用☆
kubernetes
fenglllle7 小时前
K8S下nodelocaldns crash问题导致域名请求响应缓慢
docker·容器·kubernetes
小马爱打代码8 小时前
描述K8S创建pod的全过程
云原生·容器·kubernetes
花开不识君8 小时前
Kubernetes 单节点集群搭建
云原生·容器·kubernetes