K8S故障排除方法 - 笃行之 - 博客园

标签: | 发表时间:2020-07-05 19:54 | 作者:
出处:https://www.cnblogs.com


1.查看pods哪些是有问题的,Runningg正常,其他异常;
/opt/kubernetes/bin/kubectl get pods --all-namespaces -owide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
default nginx-dbddb74b8-d78cd 1/1 Running 0 17m 172.17.90.3 192.168.18.148 <none>

2.查看异常pod的详情
/opt/kubernetes/bin/kubectl describe pods nginx-dbddb74b8-2hthr
我这边异常信息如下:
Warning FailedScheduling 32m (x2 over 32m) default-scheduler 0/2 nodes are available: 2 node(s) had taints that the pod didn't tolerate.
解决办法:参考:https://github.com/kubernetes-sigs/kubespray/issues/2798

3.查看异常服务的详情
/opt/kubernetes/bin/kubectl describe services nginx

4.查看集群node的状态
/opt/kubernetes/bin/kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
192.168.18.147 NotReady <none> 62m v1.12.1 192.168.18.147 <none> CentOS Linux 7 (Core) 3.10.0-862.el7.x86_64 docker://18.9.5

我这边是NotReady状态,经排查发现, node18.147上面的kubelet kube-proxy挂掉了,服务启来后就可以了


5.查看node的详情
/opt/kubernetes/bin/kubectl describe node 192.168.18.147

 

Warning FailedScheduling 32m (x2 over 32m) default-scheduler 0/2 nodes are available: 2 node(s) had taints that the pod didn't tolerate.
这个的具体解决方法:
我这边查看pod详情,Taints显示如下:
Taints: node.kubernetes.io/unreachable:NoSchedule

执下如下命令后即可
[root@master tmp]# /opt/kubernetes/bin/kubectl taint nodes --all node.kubernetes.io/unreachable-
node/192.168.18.147 untainted
node/192.168.18.148 untainted

 

 

6.查看集群组件状态
/opt/kubernetes/bin/kubectl get cs
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-1 Healthy {"health":"true"}
etcd-2 Healthy {"health":"true"}
etcd-0 Healthy {"health":"true"}


7.查看服务集群IP、端口、运行时长
/opt/kubernetes/bin/kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 4h51m
nginx NodePort 10.0.0.215 <none> 88:40675/TCP 92m

 

相关 [k8s 方法 博客] 推荐:

K8S故障排除方法 - 笃行之 - 博客园

- -
1.查看pods哪些是有问题的,Runningg正常,其他异常;. 解决办法:参考:https://github.com/kubernetes-sigs/kubespray/issues/2798. 我这边是NotReady状态,经排查发现, node18.147上面的kubelet kube-proxy挂掉了,服务启来后就可以了.

k8s docker集群搭建 - CSDN博客

- -
一、Kubernetes系列之介绍篇.     - 一次构建,到处运行. 2.什么是kubernetes.   首先,他是一个全新的基于容器技术的分布式架构领先方案. Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg). 在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性.

深入掌握K8S Pod - Yabea - 博客园

- -
K8S configmap介绍. Pod是k8s中最小的调度单元,包含了一个“根容器”和其它用户业务容器. 如果你使用过k8s的话,当然会了解pod的基本使用,但是为了更好的应用,你需要深入了解pod的配置、调度、升级和扩缩容等. pod包含一个或多个相对紧密耦合的容器,处于同一个pod中的容器共享同样的存储空间、IP地址和Port端口.

K8S 故障处理 - chalon - 博客园

- -
问题1:K8S集群服务访问失败. 原因分析:证书不能被识别,其原因为:自定义证书,过期等. 问题2:K8S集群服务访问失败. 原因分析:端口映射错误,服务正常工作,但不能提供服务. 解决方法:删除svc,重新映射端口即可. 问题3:K8S集群服务暴露失败. 解决方法:删除svc,重新映射端口即可. 问题4:外网无法访问K8S集群提供的服务.

实践k8s istio熔断 - fat_girl_spring - 博客园

- -
熔断主要是无感的处理服务异常并保证不会发生级联甚至雪崩的服务异常. 在微服务方面体现是对异常的服务情况进行快速失败,它对已经调用失败的服务不再会继续调用,如果仍需要调用此异常服务,它将立刻返回失败. 与此同时,它一直监控服务的健康状况,一旦服务恢复正常,则立刻恢复对此服务的正常访问. 这样的快速失败策略可以降低服务负载压力,很好地保护服务免受高负载的影响.

K8S部署SpringBoot应用_都超的博客-CSDN博客_k8s springboot

- -
K8S环境机器做部署用,推荐一主双从. Docker Harbor私有仓库,准备完成后在需要使用仓库的机器docker login. 开发机器需要Docker环境,build及push使用. 一、构建基本Springboot工程,本例所用版本及结构如下图. 创建测试代码,简单打印几行log. .

K8s网络插件flannel与calico - 小雨淅淅o0 - 博客园

- -
Kubernetes的网络通信问题:. 容器间通信: 即同一个Pod内多个容器间通信,通常使用loopback来实现. Pod间通信: K8s要求,Pod和Pod之间通信必须使用Pod-IP 直接访问另一个Pod-IP. Pod与Service通信: 即PodIP去访问ClusterIP,当然,clusterIP实际上是IPVS 或 iptables规则的虚拟IP,是没有TCP/IP协议栈支持的.

k8s网络原理之flannel - 渡边彻 - 博客园

- -
首先当你创建一个k8s集群后一般会存在三种IP分别是,Pod IP,Node IP,Cluster IP. (这部分的知识我们在docker网络当中有详细的讲解,不了解的同学可以查看之前的微博. 那么不同Node节点下的Pod又是如何进行通信的呢. 本文重点要讲的flannel网络插件就是用来解决这个问题的.

k8s网络之Flannel网络 - 金色旭光 - 博客园

- -
一、k8s网络之设计与实现. 二、k8s网络之Flannel网络. 三、k8s网络之Calico网络. Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址. 在默认的Docker配置中,每个节点上的Docker服务会分别负责所在节点容器的IP分配.

k8s资源需求和限制, 以及pod驱逐策略 - ainimore - 博客园

- -
requests:需求,最低保障, 保证被调度的节点上至少有的资源配额 limits:限制,硬限制, 容器可以分配到的最大资源配额. 如果Pod中所有Container的所有Resource的limit和request都相等且不为0,则这个Pod的QoS Class就是Guaranteed. 注意,如果一个容器只指明了limit,而未指明request,则表明request的值等于limit的值.