当前位置: 首页 > news >正文

Kubernetes (k8s) 日常运维命令总结


一、资源查看
  1. 查看所有命名空间的 Pod

    kubectl get pod --all-namespaces
    
  2. 查看指定命名空间的 Pod

    kubectl get pod --namespace <命名空间>
    
  3. 查看所有部署(Deployments)

    kubectl get deployments.apps --all-namespaces
    
  4. 查看所有守护进程集(DaemonSets)

    kubectl get daemonsets.apps --namespace <命名空间>
    
  5. 查看节点信息及标签

    kubectl get nodes --show-labels
    
  6. 查看 Pod 详细信息(用于排错)

    kubectl describe pod <Pod名称>
    

二、Pod 管理
  1. 创建 Pod(通过 Deployment)

    kubectl create deployment <部署名称> --image <镜像:版本> --replicas <副本数>
    # 示例:创建 3 个 nginx Pod
    kubectl create deployment test --image nginx:latest --replicas 3
    
  2. 删除 Pod

    # 直接删除 Pod 会触发重建(由 Deployment 控制)
    kubectl delete pod <Pod名称>
    # 删除整个 Deployment
    kubectl delete deployment <Deployment名称>
    
  3. 进入 Pod 容器

    kubectl exec -it <Pod名称> -- /bin/bash
    
  4. 查看 Pod 日志

    kubectl logs <Pod名称>
    

三、标签与选择器
  1. 添加/修改标签

    kubectl label pod <Pod名称> <>=<>
    # 强制覆盖标签
    kubectl label pod <Pod名称> <>=<新值> --overwrite
    
  2. 删除标签

    kubectl label pod <Pod名称> <>-
    
  3. 通过标签筛选 Pod

    kubectl get pod -l <>=<>         # 精确匹配
    kubectl get pod -l '<键> in (值1, 值2)' # 多值匹配
    kubectl get pod -l '<键>'            # 存在该标签即可
    

四、节点调度与污点
  1. 给节点打标签

    kubectl label nodes <节点名> <>=<>
    
  2. 设置污点

    kubectl taint node <节点名> <>=<>:<效果>
    # 示例:禁止调度
    kubectl taint node s2 node-type=production:NoSchedule
    
  3. 删除污点

    kubectl taint node <节点名> <>-
    
  4. 容忍污点配置(YAML 示例)

    tolerations:
    - key: "node-type"operator: "Equal"value: "production"effect: "NoSchedule"
    

五、滚动更新与回滚
  1. 触发滚动更新

    # 修改镜像版本
    kubectl set image deployment/<Deployment名称> <容器名>=<新镜像>
    # 示例
    kubectl set image deployment/nginx-ygz nginx=nginx:1.22
    
  2. 查看更新历史

    kubectl rollout history deployment/<Deployment名称>
    
  3. 回滚到上一版本

    kubectl rollout undo deployment/<Deployment名称>
    
  4. 回滚到指定版本

    kubectl rollout undo deployment/<Deployment名称> --to-revision=<版本号>
    

六、服务与网络
  1. 创建 Service

    apiVersion: v1
    kind: Service
    metadata:name: nginxsvc
    spec:selector:app: frontendports:- protocol: TCPport: 8080targetPort: 80
    
  2. 临时端口映射

    kubectl port-forward <Pod名称> <主机端口>:<容器端口>
    # 示例:将 Pod 80 端口映射到主机 8080
    kubectl port-forward web 8080:80
    
  3. 查看 Service 端点

    kubectl get endpoints
    

七、存储管理(PV/PVC)
  1. 静态卷配置(YAML 示例)

    apiVersion: v1
    kind: PersistentVolume
    metadata:name: pv-demo
    spec:capacity:storage: 10GiaccessModes:- ReadWriteOncehostPath:path: /data/pv
    
  2. 动态卷申请(YAML 示例)

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:name: pvc-demo
    spec:accessModes:- ReadWriteOnceresources:requests:storage: 5Gi
    

八、高级功能
  1. 健康检查配置(YAML 示例)

    livenessProbe:httpGet:path: /port: 80initialDelaySeconds: 15periodSeconds: 20
    readinessProbe:exec:command: ["cat", "/tmp/healthy"]
    
  2. StatefulSet 管理

    # 扩容副本
    kubectl scale statefulset web --replicas=5
    # 分区更新(仅更新指定序号后的 Pod)
    kubectl patch statefulset web -p '{"spec":{"updateStrategy":{"rollingUpdate":{"partition":3}}}}'
    

九、常用工具与插件
  1. 生成 YAML 模板

    kubectl create deployment <名称> --image <镜像> -o yaml > deploy.yaml
    
  2. 插件管理

    # 查看已安装插件
    kubectl plugin list
    # 删除插件
    rm /usr/local/sbin/kubectl-<插件名>
    

十、调试与排错
  1. 查看事件日志

    kubectl get events --sort-by=.metadata.creationTimestamp
    
  2. 强制删除资源

    kubectl delete <资源类型> <资源名> --force --grace-period=0
    

以上命令覆盖了 Kubernetes 日常运维的核心操作,适用于资源管理、调度优化、故障排查等场景。建议结合具体需求灵活使用,并参考 Kubernetes 官方文档 获取更详细的参数说明。

相关文章:

  • 12-DevOps-Gitlab托管Jenkinsfile
  • TDengine 数据订阅设计
  • Linux驱动开发2 - 内核定时器驱动
  • 时序数据库 TDengine 助力石油石化业务, 平滑接替 Oracle 数据库
  • 【GESP】C++二级真题 luogu-B4259 [GESP202503 二级] 等差矩阵
  • Spark集群搭建之Yarn模式
  • PyCharm 链接 Podman Desktop 的 podman-machine-default Linux 虚拟环境
  • LeetCode-46. 全排列
  • 1、AI及LLM基础:OpenAI 开发
  • NoSql文档型数据库——Mongodb
  • Apache中间件解析漏洞与安全加固
  • Python流程控制
  • FANUC机器人GI与GO位置数据传输设置
  • 初识Redis · 事务
  • 项目组合管理PPM
  • 5.4.云原生与服务网格
  • uniapp返回上一页接口数据更新了,页面未更新
  • Lua 第9部分 闭包
  • 官方不存在tomcat10-maven-plugin插件
  • Linux内核源码结构
  • 宁德时代与广汽等五车企发布10款巧克力换电新车型:年内将完成30城1000站计划
  • 金光耀:被激活的复旦记忆
  • 庆祝中国印尼建交75周年招待会暨万隆会议70周年纪念活动在京举行
  • “75后”新任四川泸州市委副书记张伟,已任市政府党组书记
  • 孙颖莎4比1击败陈幸同,与蒯曼会师澳门世界杯女单决赛
  • 航行警告!南海部分水域进行军事训练,禁止驶入