kubectl常用命令
kubectl get pod -n dev
查看日志
kubectl logs -f --tail 100 -n dev xxxxxx
查看pod詳情
kubectl get pods -n dev -o wide
-o wide能看到更多信息,例如查詢pod列表時會有IP列表
kubectl get deployment -n dev xxxxxxx -o yaml
kubectl describe pod -n dev xxxxxxx
用describe子命令,能看到對象相關的event列表,為啥健康檢查不通過
刪除pod
kubectl delete pod -n dev
刪除job
kubectl get job -n dev
kubectl delete job -n dev
進入pod里面
kubectl exec -it podName -n uat bash
查看namespace
kubectl get namespaces
創建namespace
命名空間名稱滿足正則表達式a-z0-9?,最大長度為63位
kubectl create namespace xxxxxx
或
刪除namespace
kubectl delete namespaces xxxxxx
helm操作
helm list
刪除 pod
helm del —purge xxxxxxx
由於拉取鏡像庫需要用戶密碼,每多一個環境即多一個namespace,就需要創建一個docker image secret
kubectl create secret docker-registry regcred
--docker-server=域名加端口
--docker-username=xx
--docker-password=123
--docker-email=xxx@email.com
-n namespace名稱
故障排查
獲取當前pod的狀態和近期的事件列表
kubectl describe pods -n
查看Pod的狀態:
kubectl get pod cpu-demo-2 --namespace=cpu-example
這個輸出顯示Pod正處在Pending狀態,那是因為這個Pod並不會被調度到任何節點上,所以它會 一直保持這種狀態。
kubectl get pod cpu-demo-2 --namespace=cpu-example
NAME READY STATUS RESTARTS AGE
cpu-demo-2 0/1 Pending 0 7m
查看Pod的詳細信息,包括記錄的事件:
kubectl describe pod cpu-demo-2 --namespace=cpu-example
創建pod
kubectl create -f xxxx.yaml --namespace=xxxx
查看具體pod的yaml配置信息
kubectl get pod -n xxx(哪個namesapce的名字) xxxxpod -o=yaml
查看節點信息
kubectl get pod -n kube-system -l k8s-app=flannel -o wide
刪除節點信息:
kubectl delete pod -n kube-system 節點名稱
查看imgress
kubectl get ing -n uat
kubectl delete ing -n uat xxx
kubectl create --namespace uat -f yaml文件路徑
查看k8s監控Dashboard的token
kubectl -n kube-system get serviceaccount -l k8s-app=kubernetes-dashboard -o yaml
kubectl -n kube-system describe secrets secrets.name
強制刪除Terminating狀態的pod
先去對應節點查看已經沒有容器了
docker ps -a | grep POD xxx
然后再編輯pod
kubectl edit pod -n uat xxx
把finalizers去掉,然后就沒了