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: frontend
      ports:
        - protocol: TCP
          port: 8080
          targetPort: 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: 10Gi
      accessModes:
        - ReadWriteOnce
      hostPath:
        path: /data/pv
    
  2. 动态卷申请(YAML 示例)

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

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

    livenessProbe:
      httpGet:
        path: /
        port: 80
      initialDelaySeconds: 15
      periodSeconds: 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 官方文档 获取更详细的参数说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值