目錄
- 1. 查看資源狀態
- 2. 創建資源
- 3. 描述資源
- 4. 更新資源
- 5. 刪除資源
- 6. 暴露服務
- 7. 狀態檢查與故障排查
- 8. 擴縮容
- 9. 自動補全
- 10. 上下文管理
- 11. 查看事件
- 12. 資源編輯
kubectl
是 Kubernetes 的命令行工具,它用于與 Kubernetes 集群進行交互,執行各種管理和維護任務。
1. 查看資源狀態
- get:列出或獲取資源的狀態。
kubectl get pods [-n <namespace>] # 列出所有Pod kubectl get deployments [-n <namespace>] # 列出所有Deployment
2. 創建資源
-
create:根據 YAML 或 JSON 配置文件創建資源。
kubectl create -f my-deployment.yaml # 從YAML文件創建Deployment
-
run:快速創建并運行一個容器。
kubectl run my-app --image=my-image:latest --replicas=3 # 創建Deployment并指定鏡像及副本數
3. 描述資源
- describe:顯示資源的詳細信息。
kubectl describe pod my-pod [-n <namespace>] # 顯示指定Pod的詳細信息
4. 更新資源
-
apply:更新資源到期望狀態,比對YAML文件與集群狀態差異并應用更改。
kubectl apply -f my-deployment.yaml
-
set:修改資源的某些字段。
kubectl set image deployment/my-deployment my-container=image:v2 # 更新Deployment的容器鏡像
5. 刪除資源
- delete:刪除資源。
kubectl delete pod my-pod [-n <namespace>] # 刪除指定Pod kubectl delete deployment my-deployment # 刪除Deployment
6. 暴露服務
- expose:將一個資源(如Deployment)暴露為服務。
kubectl expose deployment my-deployment --type=LoadBalancer --port=80 # 將Deployment暴露為LoadBalancer服務
7. 狀態檢查與故障排查
-
logs:查看容器的日志。
kubectl logs my-pod [-n <namespace>] # 查看Pod的日志
-
exec:在容器內部執行命令。
kubectl exec -it my-pod -- bash [-n <namespace>] # 進入Pod的shell
-
top:查看資源使用情況。
kubectl top pods [-n <namespace>] # 查看Pod的CPU和內存使用情況
8. 擴縮容
- scale:調整資源副本數。
kubectl scale deployment my-deployment --replicas=5 # 將Deployment的副本數調整為5
9. 自動補全
- 在bash中設置kubectl自動補全:
source <(kubectl completion bash)
10. 上下文管理
- config:管理kubectl配置,如切換集群或命名空間。
kubectl config use-context my-cluster # 切換到另一個集群上下文 kubectl config set-context --current --namespace=my-namespace # 切換當前命名空間
11. 查看事件
- events:查看資源相關的事件。
kubectl get events [-n <namespace>] # 查看命名空間中的事件
12. 資源編輯
- edit:直接編輯資源的配置。
kubectl edit deployment my-deployment [-n <namespace>] # 直接編輯Deployment配置
以上命令只是 kubectl
功能的一部分,實際使用中還有更多高級功能和選項,包括資源的標簽(label)、注解(annotate)、資源等待(wait)、滾動更新(rollout)等。在操作 Kubernetes 集群時,熟悉這些命令能夠極大地提高工作效率。