🌟 系列专栏文章推荐 🌟 |
📌 Linux基础系列 🔹 适合初学者和进阶用户,掌握Linux核心命令与系统管理。 |
📊 监控系列 🔹 学习企业级监控方案,实现服务器与应用状态的可视化监控。 |
🐳 容器化系列 🔹 深入解析Docker、Kubernetes,掌握微服务架构的核心技术。 |
📂 数据库系列 🔹 MySQL、PostgreSQL、Redis……数据库优化与高可用实战。 |
🔐 安全系列 🔹 Web安全、系统安全、权限管理,提升服务器防护能力。 |
🔄 持续集成系列 🔹 CI/CD、Jenkins、GitLab,助力自动化部署与DevOps实践。 |
🌐 Nginx系列 🔹 负载均衡、高并发优化,深入掌握Nginx配置与使用技巧。 |
💥 压力测试系列 🔹 掌握JMeter、wrk等工具,模拟高并发场景,优化系统性能。 |
🤖 AI-大模型-人工智能 🔹 探索AIGC、深度学习、大语言模型的应用与落地实践! |
Kubernetes 资源管理秘籍!超全 kubectl
命令指南,一篇全搞定!
在 Kubernetes(K8s)中,kubectl
是最重要的命令行工具,它让我们可以轻松管理 K8s 资源对象,比如 Pod、Service、Deployment 等。
📌 你是否也遇到这些问题?
✅ 如何快速创建、查看、删除 K8s 资源?
✅ 怎么高效排查 Pod 异常?
✅ 有哪些 kubectl
命令必须掌握?
💡 今天,这篇文章带你一次性搞定 kubectl
命令的核心用法,让你彻底掌控 Kubernetes!🔥

kubectl 作用 & 基本结构
kubectl
是 Kubernetes 的命令行工具,主要用于:
✅ 创建、更新、删除 K8s 资源
✅ 查看 K8s 集群状态
✅ 排查故障,进行调试
🔹 基本语法:
kubectl [命令] [资源类型] [资源名称] [选项]
💡 示例:
kubectl get pods # 获取所有 Pod 列表
kubectl describe pod my-pod # 查看 my-pod 详情
kubectl delete pod my-pod # 删除 my-pod
1️⃣ 查看集群信息
🔥 首先,确保 kubectl
连接到正确的 K8s 集群
kubectl cluster-info # 查看集群信息
kubectl get nodes # 获取所有节点
kubectl get componentstatuses # 检查 K8s 组件状态
📌 如果 kubectl
无法访问集群,检查 K8s 配置文件:
kubectl config view # 查看当前 K8s 配置
kubectl config get-contexts # 列出所有可用集群
kubectl config use-context # 切换 K8s 集群
2️⃣ 创建 & 删除资源对象
✅ 创建资源
kubectl create deployment my-app --image=nginx # 创建 Deployment
kubectl create service clusterip my-service --tcp=80:80 # 创建 Service
kubectl create namespace my-namespace # 创建命名空间
🔥 更推荐使用 YAML 文件管理资源!
# my-deployment.yaml
apiVersion:apps/v1
kind:Deployment
metadata:
name:my-app
spec:
replicas:2
selector:
matchLabels:
app:my-app
template:
metadata:
labels:
app:my-app
spec:
containers:
-name:nginx
image: nginx:latest
kubectl apply -f my-deployment.yaml # 根据 YAML 创建/更新资源
✅ 删除资源
kubectl delete pod my-pod # 删除 Pod
kubectl delete service my-service # 删除 Service
kubectl delete namespace my-namespace # 删除命名空间
kubectl delete -f my-deployment.yaml # 通过 YAML 删除资源
🔥 删除所有 Pod:
kubectl delete pods --all
3️⃣ 获取 & 查看资源状态
✅ 查看所有资源
kubectl get pods # 获取所有 Pod
kubectl get services # 获取所有 Service
kubectl get deployments # 获取所有 Deployment
kubectl get nodes -o wide # 获取节点,并查看 IP
kubectl get all # 获取所有资源
🔥 格式化输出(更易读)
kubectl get pods -o yaml # 以 YAML 形式输出
kubectl get pods -o json # 以 JSON 形式输出
kubectl get pods -o wide # 显示更多信息(IP、节点等)
✅ 查看详细信息
kubectl describe pod my-pod # 查看 Pod 详细信息
kubectl describe deployment my-deployment # 查看 Deployment 详细信息
4️⃣ 排查 & 调试 Pod 问题
✅ 查看 Pod 日志
kubectl logs my-pod # 查看 Pod 日志
kubectl logs my-pod -f # 实时流式查看日志
kubectl logs my-pod --previous # 查看 Pod 上次崩溃日志
✅ 进入 Pod 进行调试
kubectl exec -it my-pod -- /bin/sh # 进入 Pod 交互式终端
kubectl exec -it my-pod -- ls /app # 在 Pod 内部执行命令
🔥 Pod 无法启动?查看事件
kubectl get events --sort-by='.lastTimestamp' # 按时间排序,查看最新事件
🔥 如果 Pod 持续 Crash,查看状态
kubectl get pod my-pod -o yaml | grep reason # 获取崩溃原因
5️⃣ 更新资源
✅ 滚动更新 Deployment
kubectl set image deployment/my-app nginx=nginx:1.19 # 更新镜像版本
kubectl rollout status deployment/my-app # 查看滚动更新状态
kubectl rollout undo deployment/my-app # 回滚到上一个版本
🔥 修改 Deployment 副本数
kubectl scale deployment my-app --replicas=5
🔥 更新 Service 端口
kubectl patch service my-service -p '{"spec": {"ports": [{"port": 8080}]}}'
6️⃣ 设置自动伸缩
🔥 给 Deployment 设置自动扩缩
kubectl autoscale deployment my-app --min=2 --max=10 --cpu-percent=80
📌 如果 CPU 使用率超过 80%,Pod 数量会自动扩展到最多 10 个!
7️⃣ 资源 YAML 速查表
🔥 快速生成 YAML 模板
kubectl create deployment my-app --image=nginx --dry-run=client -o yaml
💡 --dry-run=client
只生成 YAML,而不会实际创建资源!
🔥 查看现有资源的 YAML
kubectl get deployment my-app -o yaml > my-app.yaml
总结:kubectl 核心命令速查表!
操作 | 命令 |
查看资源 | kubectl get pods |
查看详细信息 | kubectl describe pod my-pod |
创建资源 | kubectl apply -f my-deployment.yaml |
删除资源 | kubectl delete pod my-pod |
查看日志 | kubectl logs my-pod -f |
进入 Pod 终端 | kubectl exec -it my-pod -- /bin/sh |
更新镜像 | kubectl set image deployment/my-app nginx=nginx:1.19 |
回滚 Deployment | kubectl rollout undo deployment/my-app |
自动伸缩 | kubectl autoscale deployment my-app --min=2 --max=10 --cpu-percent=80 |
🚀 掌握这些 kubectl
命令,你就能轻松管理 Kubernetes! 🎉
往期回顾
爱运维^_^爱分享
^ _ ^ 如果这篇文章对你有帮助,记得点赞 + 转发,谢谢啦🙏!