Kubernetes (k8s) 日常运维命令总结
一、资源查看
-
查看所有命名空间的 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 Pod kubectl create deployment test --image nginx:latest --replicas 3
-
删除 Pod
# 直接删除 Pod 会触发重建(由 Deployment 控制) kubectl delete pod <Pod名称> # 删除整个 Deployment kubectl 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: v1 kind: Service metadata:name: nginxsvc spec:selector:app: frontendports:- protocol: TCPport: 8080targetPort: 80
-
临时端口映射
kubectl port-forward <Pod名称> <主机端口>:<容器端口> # 示例:将 Pod 80 端口映射到主机 8080 kubectl port-forward web 8080:80
-
查看 Service 端点
kubectl get endpoints
七、存储管理(PV/PVC)
-
静态卷配置(YAML 示例)
apiVersion: v1 kind: PersistentVolume metadata:name: pv-demo spec:capacity:storage: 10GiaccessModes:- ReadWriteOncehostPath:path: /data/pv
-
动态卷申请(YAML 示例)
apiVersion: v1 kind: PersistentVolumeClaim metadata:name: pvc-demo spec:accessModes:- ReadWriteOnceresources:requests:storage: 5Gi
八、高级功能
-
健康检查配置(YAML 示例)
livenessProbe:httpGet:path: /port: 80initialDelaySeconds: 15periodSeconds: 20 readinessProbe: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 官方文档 获取更详细的参数说明。