一、資源查看
-
查看所有命名空間的 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 官方文檔 獲取更詳細的參數說明。