k8s常用命令


簡介

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 (多重啟幾次)

如網關文件無法下載

k8s-2

這個問題是網絡插件導致重啟網絡插件flannel (多重啟幾次)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM