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)。

相关推荐
久绊A6 小时前
春节前云平台运维深度巡检-实操经验
运维·安全·容器·kubernetes·云平台
!chen7 小时前
银河麒麟v11 kubeadm部署k8s v1.35.0高可用集群
云原生·容器·kubernetes
DB!!!7 小时前
自学Kubernestes(k8s)Day1 -- 核心基础概念
云原生·容器·kubernetes
陈陈CHENCHEN9 小时前
【Kubernetes】多集群管理实践 - kubeconfig
kubernetes
hwj运维之路10 小时前
超详细ubuntu22.04部署k8s1.28高可用(二)【结合ingress实现业务高可用】
运维·云原生·容器·kubernetes
切糕师学AI10 小时前
.NET Core Web 中的健康检查端点(Health Check Endpoint)
前端·kubernetes·.netcore
Cyber4K14 小时前
【Kubernetes专项】K8s 控制器 DaemonSet 从入门到企业实战应用
云原生·容器·kubernetes
切糕师学AI14 小时前
RKE(Rancher Kubernetes Engine) 是什么?
云原生·容器·kubernetes·rancher
龙飞0515 小时前
Kubernetes 排障实战:PVC 一直 Pending 的原因与解决方案
运维·学习·云原生·容器·kubernetes
岁岁种桃花儿16 小时前
流量入口Nginx动态发现K8s Ingress Controller实操指南
nginx·架构·kubernetes