Kubernetes(K8s)是一個開源的容器編排系統,它提供了一系列的命令行工具 kubectl
來管理和操作集群中的資源。以下是一些常見的 kubectl
命令集錦:
-
kubectl get
:用于獲取集群中的資源對象信息,如pods、nodes、services等。可以指定資源類型、命名空間和輸出格式等。 -
kubectl describe
:用于查看資源對象的詳細信息,包括其狀態、事件歷史、容器狀態等。可以指定資源類型、名稱和命名空間等。 -
kubectl logs
:用于查看Pod中容器的日志。可以指定Pod名稱、容器名稱和日志選項等。 -
kubectl exec
:用于在Pod中的容器內執行命令。可以指定Pod名稱、容器名稱和要執行的命令等。 -
kubectl run
:用于在集群中創建一個新的資源對象,如Pod、Deployment、Service等。可以指定資源類型、名稱、鏡像等信息。 -
kubectl delete
:用于刪除集群中的資源對象。可以指定資源類型、名稱和命名空間等。 -
kubectl apply
:用于通過YAML或JSON文件應用配置到集群中。可以指定文件名和命名空間等。 -
kubectl create
:用于通過YAML或JSON文件創建資源對象。可以指定文件名和命名空間等。 -
kubectl label
:用于給資源對象添加或更新標簽。可以指定資源類型、名稱、標簽鍵和標簽值等。 -
kubectl annotate
:用于給資源對象添加或更新注解。可以指定資源類型、名稱、注解鍵和注解值等。 -
kubectl rollout
:用于管理Deployment、StatefulSet和DaemonSet等資源的滾動更新和回滾。可以指定資源類型、名稱和更新選項等。 -
kubectl cluster-info
:用于獲取集群的基本信息,如版本、API服務器地址等。 -
kubectl config
:用于管理kubectl的配置文件,如查看當前配置、設置上下文、切換集群等。 -
kubectl apply -f <filename>
: 應用一個配置文件到集群中。這個文件可以是一個或多個 Kubernetes 資源定義。 -
kubectl exec -it <pod-name> -- <command>
: 在一個正在運行的 Pod 中交互式地執行一個命令。 -
kubectl rolling-update <deployment-name> -f <new-deployment-file>
: 滾動更新一個 Deployment 的配置。 -
kubectl scale --replicas=<number> <deployment-name>
: 擴展或縮小一個 Deployment、ReplicaSet 或 ReplicationController 的副本數量。 -
kubectl expose <resource-type> <resource-name> --port=<port> --type=<type>
: 創建一個 Service 來暴露一個 Pod、Deployment 或其他資源。 -
kubectl cp <file-path> <namespace>/<pod-name>:<pod-file-path>
: 在本地和 Pod 之間復制文件。 -
kubectl port-forward <pod-name> <local-port>:<pod-port>
: 將本地端口轉發到 Pod 的端口。 -
kubectl proxy
: 運行一個代理服務器,用于訪問 Kubernetes API。 -
kubectl auth can-i <verb> <resource>
: 檢查當前用戶是否有權執行某個操作。 -
kubectl get events --namespace=<namespace>
: 獲取指定命名空間中的事件信息。 -
kubectl cluster-info dump
: 將集群的狀態信息輸出到一個文件中,用于調試和診斷。 -
kubectl describe <resource-type> <resource-name>
: 顯示資源的詳細信息,包括其狀態、配置和事件歷史。 -
kubectl label <resource-type> <resource-name> <key>=<value>
: 更新資源的標簽。 -
kubectl taint nodes <node-name> <key>=<value>
: 給節點添加或更新污點(taint),用于控制 Pod 的調度。 -
kubectl cordon <node-name>
: 標記節點為不可調度,阻止新的 Pod 被調度到該節點。 -
kubectl uncordon <node-name>
: 取消節點的不可調度狀態,允許新的 Pod 被調度到該節點。
這些命令只是 kubectl
的一部分,實際上 kubectl
提供了非常豐富的功能來管理和監控 Kubernetes 集群。您可以隨時查閱 Kubernetes 官方文檔或使用 kubectl --help
命令來獲取完整的命令列表和詳細的幫助信息。