k8s常用命令
阿新 • • 發佈:2020-09-15
簡介
master機器服務: - api Server - 提供叢集管理的REST API介面,包括認證授權、資料校驗以 及叢集狀態變更等 - 只有API Server才直接操作etcd - 其他模組通過API Server查詢或修改資料 - 提供其他模組之間的資料互動和通訊的樞紐 - scheduler - 負責分配排程Pod到叢集內的node節點 - 監聽kube-apiserver,查詢還未分配Node的Pod - 根據排程策略為這些Pod分配節點 - controller manager - 由一系列的控制器組成,它通過API Server監控整個 叢集的狀態,並確保叢集處於預期的工作狀態 - kubelet - kube-proxy - docker Node機器服務: - docker - kubelet - kube-proxy
常用命令
檢視Kubernates的版本
kubectl version
檢視istio-system映象
kubectl get pod -n istio-system
檢視k8基礎映象(kube-system)
kubectl get pod -n kube-system
修改node為準備狀態
kubectl uncordon (IP地址)
修改node為不可排程狀態
kubectl cordon (IP地址)
將某node機器上的pod平滑的趕到其它節點上
kubectl drain (IP地址)
臨時刪除node節點
kubectl delete nodes (IP地址)
解除安裝node節點
easzctl del-node (IP地址)
刪除node
kubectl delete node (IP地址)
新加node節點機器
easzctl add-node 機器ip
新加master節點機器
easzctl add-master 機器ip
檢視執行例項日誌
kubectl logs -f -n cloud(容器例項)-c(容器名稱)
檢視容器執行狀態
kubectl get pod -n cloud
顯示Pod的更多資訊
kubectl get pod -n cloud -o wide
檢視執行例項pod描述
kubectl describe pod -n cloud (容器例項) 例:kubectl describe pod -n cloud newstu-75cf556fdf-pcq2j
推送本地映象到映象倉庫
docker push 映象IP/cloud/映象名稱:版本號
例:docker push 192.168.111.18/cloud/auth-center:v1
儲存映象
docker save (映象名稱):(版本) -o (儲存映象的名稱)
例:docker save 222.30.194.226/cloud/app-manager:v1 -o app-manager.tar
刪除lod檔案
kubectl delete -f kubectl istio-svc-dpt.yaml
新增lod檔案
kubectl apply -f kubectl istio-svc-dpt.yaml
列出所有容器中的伺服器節點ip
kubectl get services
列出node節點
kubectl get nodes
獲取自動部署例項列表
kubectl get deployments -n cloud (獲取所有例項資訊)
例:kubectl get deployments redis -n cloud (獲取指定redis例項)
刪除pod自動部署例項資訊
kubectl delete deployments -n cloud (刪除所有pod例項,慎用)
kubectl delete deployments redis -n cloud (刪除指定redis例項)
獲取pod service資訊
kubectl get services -n cloud
修改映象名
docker tag 原映象名 新映象名
刪除映象例項
kubectl delete deployments -n cloud(容器名稱)
例:kubectl delete deployments -n cloud salary
強制刪除並自動重啟pod
kubectl delete pod -n cloud (pod名稱)
例:kubectl delete pod -n cloud newstu-75cf556fdf-pcq2j
進入容器內部
kubectl exec -it -n cloud(容器例項)-c (容器名稱)/bin/sh
例:kubectl exec -it -n cloud cas-686757cfcd-dxtxr -c cas /bin/sh
從pod裡面拷貝檔案到本地
kubectl cp -n cloud (pod例項):(要拷貝的檔案) -c (pod名稱) (拷貝的位置)
例:kubectl cp -n cloud pitcher-dash-5746cff75-429qd:app.jar -c pitcher-dash /opt
新增標籤
kubectl label nodes(節點) 192.168.0.74(所選節點) name=office
檢視node節點標籤
kubectl get nodes --show-labels
刪除node節點標籤
kubectl label nodes (node節點IP) 標籤-
例: kubectl label nodes 192.168.111.112 name-
檢視pod cpu、記憶體佔用情況
kubectl top pod --all-namespaces
清理殭屍pod
kubectl delete pod -n cloud --force --grace-period=0 podname
檢視pod使用記憶體
kubectl top pod -n cloud
docker批量刪除無tag標籤的無用映象
docker images|grep none|awk '{print $3}'|xargs docker rmi
問題處理
如pod無法下載出現以下問題
這個問題大概意思是說http返回值503無法探測此pod在node節點的狀態
原因是因為建立node節點或者是新新增node節點是建立了多餘的網絡卡 mynet0
ip link set mynet0 down
ip link delete mynet0
service kubelet restart
如沒有這個網絡卡重啟網路外掛即可flannel (多重啟幾次)
如閘道器檔案無法下載
這個問題是網路外掛導致重啟網路外掛flannel (多重啟幾次)