Kubernetes 资源管理秘籍!超全 kubectl 命令指南,一篇全搞定!

艺帆风顺 发布于 2025-04-09 20 次阅读


 


🌟 系列专栏文章推荐 🌟
📌 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
回滚 Deploymentkubectl rollout undo deployment/my-app
自动伸缩kubectl autoscale deployment my-app --min=2 --max=10 --cpu-percent=80

🚀 掌握这些 kubectl 命令,你就能轻松管理 Kubernetes! 🎉

 


往期回顾


 

 

 

爱运维^_^爱分享

^ _ ^                                      如果这篇文章对你有帮助,记得点赞 + 转发,谢谢啦🙏!