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去掉,然后就没了