> 技术文档 > Kubernetes (k8s) 日常运维命令总结_kubernetes常用运维操作

Kubernetes (k8s) 日常运维命令总结_kubernetes常用运维操作



一、资源查看
  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 Podkubectl create deployment test --image nginx:latest --replicas 3
  2. 删除 Pod

    # 直接删除 Pod 会触发重建(由 Deployment 控制)kubectl delete pod <Pod名称># 删除整个 Deploymentkubectl 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: v1kind: Servicemetadata: name: nginxsvcspec: selector: app: frontend ports: - protocol: TCP port: 8080 targetPort: 80
  2. 临时端口映射

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

    kubectl get endpoints

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

    apiVersion: v1kind: PersistentVolumemetadata: name: pv-demospec: capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: /data/pv
  2. 动态卷申请(YAML 示例)

    apiVersion: v1kind: PersistentVolumeClaimmetadata: name: pvc-demospec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi

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

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

电影剧情介绍