Table of Contents
pod
查看对外开放pod和port
kubectl get svc --all-namespaces | grep -v ClusterIP
kubectl get svc --all-namespaces -o go-template='{{range .items}}{{ $save := . }}{{range.spec.ports}}{{if .nodePort}}{{$save.metadata.namespace}}{{"/"}}{{$save.metadata.name}}{{" - "}}{{.name}}{{": "}}{{.nodePort}}{{"\n"}}{{end}}{{end}}{{end}}'
清理所有状态为Failed或者Evicted的pod
#!/bin/bash kubectl get pods --all-namespaces -o go-template='{{range .items}} \ {{if eq .status.phase "Failed"}} {{if eq .status.reason "Evicted"}} {{.metadata.name}}{{" "}} {{.metadata.namespace}}{{"\n"}} \ {{end}} \ {{end}} \ {{end}}' | while read epod namespace; do kubectl -n $namespace delete pod $epod; done
查看pod id
kubectl get pods --all-namespaces -o custom-columns=PodName:.metadata.name,PodUID:.metadata.uid,NODE:.spec.nodeName
查看pod所在节点
kubectl get pod -o wide --all-namespaces # 或者 kubectl get pod -o=custom-columns=NODE:.spec.nodeName,NAME:.metadata.name --all-namespaces
孤立pod解决
找到所有运行中的pod id
kubectl get pods --all-namespaces -o custom-columns=PodUID:.metadata.uid | tail -n +2 > pods.txt
ls -d1 /var/lib/kubelet/pods/* | xargs -I % bash -c '[ ! -f %/etc-hosts ] && echo %'
cat /var/log/messages|grep -i 'Orphaned pod'|awk -F '"' '{print $2}'|uniq
kubectl get pods --all-namespaces -o custom-columns=PodName:.metadata.name,PodUID:.metadata.uid | egrep -f /tmp/pods.txt
节点
禁止节点调度
kubectl cordon master # 禁止节点调度
kubeclt uncordon master # 允许节点调度
Label添加删除和修改
-
查看
kubectl get node --show-labels
-
添加
kubectl label nodes <node-name> <label-key>=<label-value>
-
删除
kubectl label nodes <node-name> <label-key>-
-
修改
kubectl label nodes <node-name> <label-key>=<label-value> --overwrite