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 管理效率。