kubectl 常用命令
阿新 • • 發佈:2021-10-30
#檢視版本 kubectl version #檢視叢集資訊 kubectl cluster-info #kubeadm 初始化時會拉取一些 docker 映象,檢視fmd要的映象列表 kubeadm config images list # 檢視所有 pod 列表, -n 後跟 namespace, 檢視指定的名稱空間, -o wide 檢視詳細資訊 kubectl get pod kubectl get pod -n namespace kubectl get pod -o wide kubectl get pods --all-namespaces # 檢視所有 secret kubectl get secret --all-namespaces # 檢視 RC 和 service 列表 kubectl get rc,svc -n namespace #檢視全部節點 kubectl get nodes # 顯示 Node 的詳細資訊 kubectl describe node k8s-master # 顯示 Pod 的詳細資訊, 特別是檢視 pod 無法建立的時候的日誌 kubectl describe pod pod-name -n namespace # 根據 yaml 建立資源, apply 可以重複執行,create 不行 kubectl create -f pod.yaml kubectl apply -f pod.yaml # 基於 pod.yaml 定義的名稱刪除 pod kubectl delete -f pod.yaml # 刪除所有包含某個 label 的pod 和 service kubectl delete pod,svc -l name=<label-name> # 刪除所有 Pod kubectl delete pod --all # 檢視 endpoint 列表 kubectl get endpoints # 執行 pod 的 date 命令 kubectl exec <pod-name> -- date kubectl exec <pod-name> -- bash kubectl exec <pod-name> -- ping 10.24.51.9 # 通過bash獲得 pod 中某個容器的TTY,相當於登入容器 kubectl exec -it <pod-name> -c <container-name> -- bash eg: kubectl exec -it redis-master-cln81 -- bash # 檢視容器的日誌 kubectl logs <pod-name> kubectl logs -f <pod-name> # 實時檢視日誌 kubectl log <pod-name> -c <container_name> # 若 pod 只有一個容器,可以不加 -c kubectl logs -l app=frontend # 返回所有標記為 app=frontend 的 pod 的合併日誌。 #檢視k8s日誌 journalctl -f -u kubelet.service # 檢視註釋 kubectl explain pod kubectl explain pod.apiVersion # 檢視節點 labels kubectl get node --show-labels # 重啟 pod kubectl get pod <POD名稱> -n <NAMESPACE名稱> -o yaml | kubectl replace --force -f - # 修改網路型別 kubectl patch service istio-ingressgateway -n istio-system -p '{"spec":{"type":"NodePort"}}' # 伸縮 pod 副本 # 可用於將Deployment及其Pod縮小為零個副本,實際上殺死了所有副本。當您將其縮放回1/1時,將建立一個新的Pod,重新啟動您的應用程式。 kubectl scale deploy/nginx-1 --replicas=0 kubectl scale deploy/nginx-1 --replicas=1 # 檢視前一個 pod 的日誌,logs -p 選項 kubectl logs --tail 100 -p user-klvchen-v1.0-6f67dcc46b-5b4qb > pre.log #獲取該 Pod 的指標資料 kubectl top pod memory-demo -n namespace