简介

Kubernetes集群主要通过kubectl命令行进行运维,OpenShift中使用oc命令行进行运维。两个命令行的参是相同的(OpenShift集群也提供kubectl命令行,但建议使用oc命令行)。

检查master

主要通过以下命令检查。

kubectl/oc 检查master状态

kubectl/oc get cs

通过以上方法,查看kube-scheduler,  kube-controller-manager,  etcd是否正常。在上图status列,Healthy表示健康,unhealthy表示有问题需要更详细的信息,可以使用 kubectl/oc describe cs,输出更详细的信息。

systemctl status calico.service

检查calico网络是否正常

systemctl status kube-apiserver.service

检查kube-apiserver 是否都是active状态

Active: active (running)

如果状态不正常,需要systemctl restart kube-apiserver

如果起不来,需要journalctl -xe查日志看下具体问题

kubectl/oc logs 检查master日志

kubectl/oc logs --tail 100 -f kube-apiserver -n kube-system
kubectl/oc logs --tail 100 -f kube-controllers -n kube-system
kubectl/oc logs --tail 100 -f kube-scheduler -n kube-system
kubectl/oc logs --tail 100 -f coredns -n kube-system

检查master服务日志是否正常

kubectl/oc logs --tail 100 -f calico-kube-controllers -n kube-system

检查calico是否正常

检查node

kubectl/oc检查node状态

kubectl/oc get node -n namespace

查看Node节点状态, STATUS Ready表示正常,NotReady不正常

注意version必须保持一致

如有NotReady问题,需要重启节点kubectl/oc,或者重启docker

如不能解决,需要reset节点后,k8s重新join该node(注意先执行kubectl/oc drain node --delete-lo-cal-data 驱离node)

systemctl status kubelet.service
systemctl status kube-proxy.service

检查状态是否是Active: active (running)

如果不正常,需要systemctl restart

如果起不来,需要journalctl -xe查日志看下具体问题

kubectl/oc logs检查node日志

kubectl/oc logs --tail 100 -f kube-proxy -n kube-system
kubectl/oc logs --tail 100 -f kebelet -n kube-system

检查node服务日志是否正常

kubectl/oc logs --tail 100 -f calico-node -n kube-system

检查calico节点是否正常

检查service

kubectl/oc get svc -o wide

查看k8s集群service信息

kubectl/oc get svc --all-namespaces -o wide

查看k8s所有service信息

TYPE是NodePort的service, k8s集群外部可以通过port访问

Service的TYPE包括 NodePort, ClusterIP, Loadbalance和ExternalName

检查pod

kubectl/oc检查pod状态

查看STATUS状态是否正常

以下是status list:

Running,Succeeded,Waiting,ContainerCreating,Failed,Pending,Terminating,unknown,CrashLoopBackOff,ErrImagePull,ImagePullBackOff

status定义说明:

  • 无标签