k8s kubectl常用命令總結(jié)

查看所有 pod 列表, -n 后跟 namespace, 查看指定的命名空間
kubectl get pod
kubectl get pod -n kube

查看所有的命名空間
kubectl get ns

刪除某個(gè)節(jié)點(diǎn)
kubectl delete pod 節(jié)點(diǎn)名稱 -n 命名空間
查看 RC 和 service 列表, -o wide 查看詳細(xì)信息
kubectl get rc,svc
kubectl get pod,svc -o wide
kubectl get pod -o yaml

查看某個(gè)名稱空間下的所有節(jié)點(diǎn)以及ip
kubectl get pod -n 名稱空間名 -o wide

模擬用戶發(fā)起請求:
(模擬100個(gè)用戶同時(shí)發(fā)起100000條請求,后面跟著ip地址)
ab -c 100 -k 100000 http://23.23.23.1 -o wide

顯示 Node 的詳細(xì)信息
kubectl describe node 192.168.0.212

顯示 Pod 的詳細(xì)信息, 特別是查看 pod 無法創(chuàng)建的時(shí)候的日志
kubectl describe pod
eg:
kubectl describe pod redis-master-tqds9

根據(jù) yaml 創(chuàng)建資源, apply 可以重復(fù)執(zhí)行,create 不行
kubectl create -f pod.yaml
kubectl apply -f pod.yaml

基于 pod.yaml 定義的名稱刪除 pod
kubectl delete -f pod.yaml

刪除所有包含某個(gè) label 的pod 和 service
kubectl delete pod,svc -l name=

刪除所有 Pod
kubectl delete pod --all

查看 endpoint 列表
kubectl get endpoints

執(zhí)行 pod 的 date 命令
kubectl exec – date
kubectl exec – bash
kubectl exec – ping 10.24.51.9

通過bash獲得 pod 中某個(gè)容器的TTY,相當(dāng)于登錄容器
kubectl exec -it -c – bash
eg:
kubectl exec -it redis-master-cln81 – bash

查看容器的日志
kubectl logs
kubectl logs -f # 實(shí)時(shí)查看日志

詳細(xì)---------

查看所有namespace的pods運(yùn)行情況

kubectl get pods --all-namespaces

查看具體pods,記得后邊跟namespace名字哦

kubectl get pods kubernetes-dashboard-76479d66bb-nj8wr --namespace=kube-system

查看pods具體信息
kubectl get pods -o wide kubernetes-dashboard-76479d66bb-nj8wr --namespace=kube-system
查看集群健康狀態(tài)
kubectl get cs

獲取所有deployment
kubectl get deployment --all-namespaces

列出該 namespace 中的所有 pod 包括未初始化的
kubectl get pods --include-uninitialized

查看deployment()
kubectl get deployment nginx-app

查看rc和servers

kubectl get rc,services
查看pods結(jié)構(gòu)信息(重點(diǎn),通過這個(gè)看日志分析錯(cuò)誤)
對控制器和服務(wù),node同樣有效
kubectl describe pods xxxxpodsname --namespace=xxxnamespace
其他控制器類似吧,就是kubectl get 控制器 控制器具體名稱
查看pod日志
kubectl logs $POD_NAME
查看pod變量
kubectl exec my-nginx-5j8ok – printenv | grep SERVICE
集群
kubectl get cs # 集群健康情況
kubectl cluster-info # 集群核心組件運(yùn)行情況
kubectl get namespaces # 表空間名
kubectl version # 版本
kubectl api-versions # API
kubectl get events # 查看事件
kubectl get nodes //獲取全部節(jié)點(diǎn)
kubectl delete node k8s2 //刪除節(jié)點(diǎn)
kubectl rollout status deploy nginx-test
創(chuàng)建
kubectl create -f ./nginx.yaml # 創(chuàng)建資源
kubectl create -f . # 創(chuàng)建當(dāng)前目錄下的所有yaml資源
kubectl create -f ./nginx1.yaml -f ./mysql2.yaml # 使用多個(gè)文件創(chuàng)建資源
kubectl create -f ./dir # 使用目錄下的所有清單文件來創(chuàng)建資源
kubectl create -f https://git.io/vPieo # 使用 url 來創(chuàng)建資源
kubectl run -i --tty busybox --image=busybox ----創(chuàng)建帶有終端的pod
kubectl run nginx --image=nginx # 啟動一個(gè) nginx 實(shí)例
kubectl run mybusybox --image=busybox --replicas=5 ----啟動多個(gè)pod
kubectl explain pods,svc # 獲取 pod 和 svc 的文檔

更新

kubectl rolling-update python-v1 -f python-v2.json # 滾動更新 pod frontend-v1
kubectl rolling-update python-v1 python-v2 --image=image:v2 # 更新資源名稱并更新鏡像
kubectl rolling-update python --image=image:v2 # 更新 frontend pod 中的鏡像
kubectl rolling-update python-v1 python-v2 --rollback # 退出已存在的進(jìn)行中的滾動更新
cat pod.json | kubectl replace -f - # 基于 stdin 輸入的 JSON 替換 pod
強(qiáng)制替換,刪除后重新創(chuàng)建資源。會導(dǎo)致服務(wù)中斷。
kubectl replace --force -f ./pod.json
為 nginx RC 創(chuàng)建服務(wù),啟用本地 80 端口連接到容器上的 8000 端口
kubectl expose rc nginx --port=80 --target-port=8000

更新單容器 pod 的鏡像版本(tag)到 v4
kubectl get pod nginx-pod -o yaml | sed ‘s/(image: myimage):.*$/\1:v4/’ | kubectl replace -f -
kubectl label pods nginx-pod new-label=awesome # 添加標(biāo)簽
kubectl annotate pods nginx-pod icon-url=http://goo.gl/XXBTWq # 添加注解
kubectl autoscale deployment foo --min=2 --max=10 # 自動擴(kuò)展 deployment “foo”
編輯資源
kubectl edit svc/docker-registry # 編輯名為 docker-registry 的 service
KUBE_EDITOR=“nano” kubectl edit svc/docker-registry # 使用其它編輯器
動態(tài)伸縮pod
kubectl scale --replicas=3 rs/foo # 將foo副本集變成3個(gè)
kubectl scale --replicas=3 -f foo.yaml # 縮放“foo”中指定的資源。
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # 將deployment/mysql從2個(gè)變成3個(gè)
kubectl scale --replicas=5 rc/foo rc/bar rc/baz # 變更多個(gè)控制器的數(shù)量
kubectl rollout status deploy deployment/mysql # 查看變更進(jìn)度

刪除

kubectl delete -f ./pod.json # 刪除 pod.json 文件中定義的類型和名稱的 pod
kubectl delete pod,service baz foo # 刪除名為“baz”的 pod 和名為“foo”的 service
kubectl delete pods,services -l name=myLabel # 刪除具有 name=myLabel 標(biāo)簽的 pod 和 serivce
kubectl delete pods,services -l name=myLabel --include-uninitialized # 刪除具有 name=myLabel 標(biāo)簽的 pod 和 service,包括尚未初始化的
kubectl -n my-ns delete po,svc --all # 刪除 my-ns namespace下的所有 pod 和 serivce,包括尚未初始化的
kubectl delete pods prometheus-7fcfcb9f89-qkkf7 --grace-period=0 --force 強(qiáng)制刪除

交互

kubectl logs nginx-pod # dump 輸出 pod 的日志(stdout)
kubectl logs nginx-pod -c my-container # dump 輸出 pod 中容器的日志(stdout,pod 中有多個(gè)容器的情況下使用)
kubectl logs -f nginx-pod # 流式輸出 pod 的日志(stdout)
kubectl logs -f nginx-pod -c my-container # 流式輸出 pod 中容器的日志(stdout,pod 中有多個(gè)容器的情況下使用)
kubectl run -i --tty busybox --image=busybox – sh # 交互式 shell 的方式運(yùn)行 pod
kubectl attach nginx-pod -i # 連接到運(yùn)行中的容器
kubectl port-forward nginx-pod 5000:6000 # 轉(zhuǎn)發(fā) pod 中的 6000 端口到本地的 5000 端口
kubectl exec nginx-pod – ls / # 在已存在的容器中執(zhí)行命令(只有一個(gè)容器的情況下)
kubectl exec nginx-pod -c my-container – ls / # 在已存在的容器中執(zhí)行命令(pod 中有多個(gè)容器的情況下)
kubectl top pod POD_NAME --containers # 顯示指定 pod和容器的指標(biāo)度量

調(diào)度配置

kubectl cordon k8s-node # 標(biāo)記 my-node 不可調(diào)度 kubectl drain k8s-node # 清空 my-node 以待維護(hù)
kubectl uncordon k8s-node # 標(biāo)記 my-node 可調(diào)度 kubectl top node k8s-node # 顯示 my-node 的指標(biāo)度量
kubectl cluster-info dump # 將當(dāng)前集群狀態(tài)輸出到 stdout kubectl cluster-info dump --output-directory=/path/to/cluster-state # 將當(dāng)前集群狀態(tài)輸出到 /path/to/cluster-state

如果該鍵和影響的污點(diǎn)(taint)已存在,則使用指定的值替換

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容