kubectl常用命令總結

2022-06-06 19:03:09 字數 4813 閱讀 4193

檢視集群和版本相關資訊

kubectl version				//顯示客戶端和伺服器側版本資訊

kubectl api-versions //列出當前版本的kubernetes的伺服器端所支援的api版本資訊

kubectl cluster-info //獲取k8s集群資訊

kubectl config view //獲取k8s集群管理配置資訊,也就是 .kube/config 檔案內容

複製檔案到容器
kubectl cp filename podname:/filename	//複製檔案到pod的指定目錄,也可從容器中複製檔案到外部
獲取幫助詳細資訊
kubectl explain po			//檢視幫助資訊和help類似,尤其是資源清單的結構字段資訊

//檢視幫助資訊,資源下的cpu和memory等,每個配置項都有詳細的網頁手冊位址

kubectl explain deployment.spec.template.spec.containers.resources

常用獲取資源方式
kubectl get pods			//檢視pod資訊

kubectl get pods -wide //已監控方式檢視pod資訊,有新的建立和銷毀會立刻列印出來

kubectl get pods -o wide //檢視pod詳細資訊

kubectl get nodes -o wide //檢視node詳細資訊

kubectl get namespaces //列出所有的namespace

kubectl get rc,service //檢視rc和service列表

kubectl get deployment //獲取指定控制器pod資訊

kubectl get pods -n kube-system //檢視kube-system命名空間中pod資訊

kubectl get pods/podname -o yaml //檢視pod的yaml資訊

描述資源
kubectl describe node nodename 			//獲取詳細資源清單資訊(包括cpu和memory)

kubectl describe po podname //獲取詳細資源清單資訊(包括錯誤資訊和實時狀態)

檢視日誌
kubectl logs podname -f					//或者指定pod的日誌資訊
進入容器
kubectl exec -it podname sh				//進入pod容器,但是對許可權要求也較多

kubectl exec -it podname -c containername bash //通過bash獲得pod中某個容器的tty,相當於登入容器

kubectl attach podname //獲取實時的logs資訊

刪除資源

kubectl delete -f yamls/sonar.yaml 			//刪除指定pod 

kubectl delete -f yamls/ //刪除多個pod

kubectl delete pods podname //刪除指定pod

kubectl delete pod podname --force --grace-period=0 //強制刪除pod

kubectl delete deployment controllername //有控制器的pod不能直接刪除,需先刪除其控制器

kubectl delete pods,services -l name=labelname //刪除所有包含某個label的pod和service

kubectl delete pods --all //刪除所有pod

標籤匹配
kubectl get pods --show-labels

kubectl get pods --show-labels -l env=dev,tie=front //多個標籤同時滿足條件

kubectl get pods --show-labels -l 'env in (dev,test)' [in,notin]

kubectl label pods podname env=test //設定標籤 env=test

kubectl label pods podname env=test --overwrite //若env標籤存在,強制設定標籤 env=test

kubectl lable pods podname env- //刪除podname中env標籤

暴露服務,也就是建立service
kubectl expose pod podname [--port=80 --target-port=8000]

kubectl expose deployment deployname [--port=80 --target-port=8000]

[自動]擴縮容
kubectl scale deployment deployname --replicas=3               //執行擴縮容pod的操作

kubectl autoscale deployment deployname --min=2 --max=10 //設定pod數量在2到10之間

kubectl autoscale deployment deployname --max=5 --cpu-percent=80 //pod數量在1到5之間,目標cpu利用率為80%

kubectl set image deployment/nginx nginx=nginx:1.9.1    //設定nginx映象為1.9.1版本

kubectl edit deployment/nginx //編輯yaml檔案修改

kubectl rolling-update deployment deployname -f redis-rc.update.yaml //執行滾動公升級操作

#官網滾動更新圖

公升級和回滾操作
kubectl rollout history deployment deployname                //顯示deployment的詳情

kubectl rollout history deployment deployname --revision=3 //顯示版本3 deployment的詳情

kubectl rollout undo eployment/deployname //回滾到上乙個版本

kubectl rollout undo eployment/deployname --to-revision=3 //回滾到第3個版本

kubectl rollout undo --dry-run=true eployment/deployname //回滾到上乙個版本,除錯但不執行

管理多集群
kubectl cluster-info           //獲取k8s集群資訊

kubectl config view //獲取k8s集群管理配置資訊,也就是 .kube/config 檔案內容

kubectl config get-contexts //檢視集群名稱的context

kubectl config set-context 上下文名稱 --user=minikube --cluster=minikube --namespace=demo //設定上下文

kubectl config set current-context minikube //切換到名稱為 minikube 的集群中

kubectl config use-context minikube //切換到名稱為 minikube 的集群中

設定集群角色
kubectl label nodes test1 node-role.kubernetes.io/master=       //設定 test1 為 master 角色

kubectl label nodes 192.168.0.92 node-role.kubernetes.io/node= //設定 test2 為 node 角色

kubectl taint nodes test1 node-role.kubernetes.io/master=true:noschedule //設定 master 一般情況下不接受負載

kubectl taint nodes test1 node-role.kubernetes.io/master- //master執行pod

kubectl taint nodes test1 node-role.kubernetes.io/master=:noschedule //master不執行pod

設定kubectl shell命令自動補全

kubectl completion -h

sudo yum -y install bash-completion

source /usr/share/bash-completion/bash_completion

type _init_completion

echo 'source <(kubectl completion bash)' >> ~/.bashrc

source ~/.bashrc

kubectl 常用命令總結

檢視所有 pod 列表,n 後跟 namespace,檢視指定的命名空間 kubectl get pod kubectl get pod n kube kubectl get pod o wide 檢視 rc 和 service 列表,o wide 檢視詳細資訊 kubectl get rc,svc...

kubectl常用命令

檢視所有namespace kubectl get namespace 檢視預設的配置 kubectl config view 獲取集群裡的各種資源資訊,某些資源未指定namespace時,預設指定default 常見用法 kubectl get pods rc svc deployment nam...

Kubectl 常用命令

以下指令都需要在 controller 節點執行 檢視各服務資訊 kubectl get service 檢視集群中所有 pod 資訊 kubectl get pod all namespaces 檢視服務中元件資訊 kubectl get service n component 獲取各元件 pod...