Kubernetes 常用指令
本文整理了 Kubernetes 日常管理中最常用的指令,幫助您快速掌握 kubectl 的基本操作。
基礎資源查詢
查看節點清單
使用以下指令查看叢集中的所有節點狀態:
1 | kubectl get nodes |
查看服務清單
查看當前命名空間中的所有服務:
1 | kubectl get services |
查看部署清單
顯示所有部署(Deployment)的狀態資訊:
1 | kubectl get deployments |
查看更完整的 Pod 資訊
當需要確認 Pod 所在節點、內部 IP 或其他更詳細欄位時,可以在查詢指令後加上 -o wide:
1 | kubectl get pods -A -o wide |
其中 -A 代表查詢所有命名空間,-o wide 則會顯示更多欄位,例如 Pod IP、所在節點與 Readiness Gates 等資訊。
部署管理操作
編輯部署配置
當需要修改部署配置時,可以使用以下指令:
1 | kubectl edit deployment $DEPLOYMENT_NAME |
系統預設會使用 vim 編輯器開啟部署的配置檔案,您可以直接在終端中進行修改:
刪除部署
若要移除特定的部署,請使用:
1 | kubectl delete deployment $DEPLOYMENT_NAME |
查看副本集清單
查看 ReplicaSet 的狀態,了解 Pod 副本的管理情況:
1 | kubectl get replicasets |
Pod 診斷與操作
查看 Pod 執行記錄
當需要檢查 Pod 的運行狀況時,可以查看其日誌輸出:
1 | kubectl logs $POD_NAME |
查看 Pod 詳細狀態
獲取 Pod 的詳細資訊,包括事件記錄和狀態描述:
1 | kubectl describe pod $POD_NAME |
進入 Pod 容器終端
需要直接操作容器內部時,可以開啟互動式終端:
1 | kubectl exec -it $POD_NAME -- /bin/bash |
[!NOTE]
--是分隔符號,用來區分 kubectl 指令參數與要在容器內執行的命令。這告訴 kubectl 後面的內容是要傳遞給容器執行的指令,而不是 kubectl 本身的參數。
使用 curl 測試服務連線
如果想快速確認 Service 是否能在叢集內被存取,可以建立一個臨時的 curl 測試 Pod:
1 | kubectl run curl-test --rm -it --image=curlimages/curl --restart=Never -- curl http://tomcat-service:8080 |
這個指令會使用 curlimages/curl 映像檔啟動名為 curl-test 的 Pod,執行 curl 後會透過 --rm 自動刪除測試 Pod,適合用來確認 Service 名稱、連線埠與應用程式回應是否正常。
使用 nslookup 測試 DNS 解析
若要確認 Service 名稱是否能被叢集 DNS 正確解析,可以使用 BusyBox 建立臨時測試 Pod:
1 | kubectl run dns-test --rm -it --image=busybox:1.36 --restart=Never -- nslookup tomcat-service |
這個指令會啟動名為 dns-test 的 Pod,並在容器中執行 nslookup tomcat-service。如果 DNS 解析正常,會看到 Service 對應的完整網域名稱與 ClusterIP。
配置檔案管理
套用配置檔案
使用 YAML 或 JSON 配置檔案來建立或更新 Kubernetes 資源:
1 | kubectl apply -f $CONFIG_FILE_NAME |
此指令會根據配置檔案的內容,自動建立新資源或更新現有資源的設定。
總結
以上指令涵蓋了 Kubernetes 日常管理的核心操作,從基礎的資源查詢到進階的 Pod 診斷,都是維運 Kubernetes 叢集時不可或缺的工具。熟練掌握這些指令,將大幅提升您的 Kubernetes 管理效率。