Kubernetes (k8s) 日常运维命令总结_kubernetes常用运维操作
一、资源查看
-
查看所有命名空间的 Pod
kubectl get pod --all-namespaces
-
查看指定命名空间的 Pod
kubectl get pod --namespace <命名空间>
-
查看所有部署(Deployments)
kubectl get deployments.apps --all-namespaces
-
查看所有守护进程集(DaemonSets)
kubectl get daemonsets.apps --namespace <命名空间>
-
查看节点信息及标签
kubectl get nodes --show-labels
-
查看 Pod 详细信息(用于排错)
kubectl describe pod <Pod名称>
二、Pod 管理
-
创建 Pod(通过 Deployment)
kubectl create deployment <部署名称> --image <镜像:版本> --replicas <副本数># 示例:创建 3 个 nginx Podkubectl create deployment test --image nginx:latest --replicas 3
-
删除 Pod
# 直接删除 Pod 会触发重建(由 Deployment 控制)kubectl delete pod <Pod名称># 删除整个 Deploymentkubectl delete deployment <Deployment名称>
-
进入 Pod 容器
kubectl exec -it <Pod名称> -- /bin/bash
-
查看 Pod 日志
kubectl logs <Pod名称>
三、标签与选择器
-
添加/修改标签
kubectl label pod <Pod名称> <键>=<值># 强制覆盖标签kubectl label pod <Pod名称> <键>=<新值> --overwrite
-
删除标签
kubectl label pod <Pod名称> <键>-
-
通过标签筛选 Pod
kubectl get pod -l <键>=<值> # 精确匹配kubectl get pod -l \' in (值1, 值2)\' # 多值匹配kubectl get pod -l \'\' # 存在该标签即可
四、节点调度与污点
-
给节点打标签
kubectl label nodes <节点名> <键>=<值>
-
设置污点
kubectl taint node <节点名> <键>=<值>:<效果># 示例:禁止调度kubectl taint node s2 node-type=production:NoSchedule
-
删除污点
kubectl taint node <节点名> <键>-
-
容忍污点配置(YAML 示例)
tolerations:- key: \"node-type\" operator: \"Equal\" value: \"production\" effect: \"NoSchedule\"
五、滚动更新与回滚
-
触发滚动更新
# 修改镜像版本kubectl set image deployment/<Deployment名称> <容器名>=<新镜像># 示例kubectl set image deployment/nginx-ygz nginx=nginx:1.22
-
查看更新历史
kubectl rollout history deployment/<Deployment名称>
-
回滚到上一版本
kubectl rollout undo deployment/<Deployment名称>
-
回滚到指定版本
kubectl rollout undo deployment/<Deployment名称> --to-revision=<版本号>
六、服务与网络
-
创建 Service
apiVersion: v1kind: Servicemetadata: name: nginxsvcspec: selector: app: frontend ports: - protocol: TCP port: 8080 targetPort: 80
-
临时端口映射
kubectl port-forward <Pod名称> <主机端口>:<容器端口># 示例:将 Pod 80 端口映射到主机 8080kubectl port-forward web 8080:80
-
查看 Service 端点
kubectl get endpoints
七、存储管理(PV/PVC)
-
静态卷配置(YAML 示例)
apiVersion: v1kind: PersistentVolumemetadata: name: pv-demospec: capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: /data/pv
-
动态卷申请(YAML 示例)
apiVersion: v1kind: PersistentVolumeClaimmetadata: name: pvc-demospec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi
八、高级功能
-
健康检查配置(YAML 示例)
livenessProbe: httpGet: path: / port: 80 initialDelaySeconds: 15 periodSeconds: 20readinessProbe: exec: command: [\"cat\", \"/tmp/healthy\"]
-
StatefulSet 管理
# 扩容副本kubectl scale statefulset web --replicas=5# 分区更新(仅更新指定序号后的 Pod)kubectl patch statefulset web -p \'{\"spec\":{\"updateStrategy\":{\"rollingUpdate\":{\"partition\":3}}}}\'
九、常用工具与插件
-
生成 YAML 模板
kubectl create deployment <名称> --image <镜像> -o yaml > deploy.yaml
-
插件管理
# 查看已安装插件kubectl plugin list# 删除插件rm /usr/local/sbin/kubectl-<插件名>
十、调试与排错
-
查看事件日志
kubectl get events --sort-by=.metadata.creationTimestamp
-
强制删除资源
kubectl delete <资源类型> <资源名> --force --grace-period=0
以上命令覆盖了 Kubernetes 日常运维的核心操作,适用于资源管理、调度优化、故障排查等场景。建议结合具体需求灵活使用,并参考 Kubernetes 官方文档 获取更详细的参数说明。